diff --git a/clients/client-amplifybackend/AmplifyBackend.ts b/clients/client-amplifybackend/AmplifyBackend.ts index 4518096f6af1f..2e0f404686cc9 100644 --- a/clients/client-amplifybackend/AmplifyBackend.ts +++ b/clients/client-amplifybackend/AmplifyBackend.ts @@ -267,7 +267,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Generates a one time challenge code to authenticate a user into your Amplify Admin UI.

+ *

Generates a one-time challenge code to authenticate a user into your Amplify Admin UI.

*/ public createToken(args: CreateTokenCommandInput, options?: __HttpHandlerOptions): Promise; public createToken(args: CreateTokenCommandInput, cb: (err: any, data?: CreateTokenCommandOutput) => void): void; @@ -293,7 +293,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Removes an existing environment from your Ampify project.

+ *

Removes an existing environment from your Amplify project.

*/ public deleteBackend( args: DeleteBackendCommandInput, @@ -447,7 +447,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Provides project level details for your Amplify UI project.

+ *

Provides project-level details for your Amplify UI project.

*/ public getBackend(args: GetBackendCommandInput, options?: __HttpHandlerOptions): Promise; public getBackend(args: GetBackendCommandInput, cb: (err: any, data?: GetBackendCommandOutput) => void): void; @@ -473,7 +473,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Gets the details for a backend api.

+ *

Gets the details for a backend API.

*/ public getBackendAPI( args: GetBackendAPICommandInput, @@ -537,7 +537,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Gets a backend auth details.

+ *

Gets backend auth details.

*/ public getBackendAuth( args: GetBackendAuthCommandInput, @@ -691,7 +691,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Removes the AWS resources required to access the Amplify Admin UI.

+ *

Removes the AWS resources that are required to access the Amplify Admin UI.

*/ public removeBackendConfig( args: RemoveBackendConfigCommandInput, @@ -787,7 +787,7 @@ export class AmplifyBackend extends AmplifyBackendClient { } /** - *

Updates the AWS resources required to access the Amplify Admin UI.

+ *

Updates the AWS resources that are required to access the Amplify Admin UI.

*/ public updateBackendConfig( args: UpdateBackendConfigCommandInput, diff --git a/clients/client-amplifybackend/commands/CreateTokenCommand.ts b/clients/client-amplifybackend/commands/CreateTokenCommand.ts index 5fe9ee32fe274..18e76d2993ccc 100644 --- a/clients/client-amplifybackend/commands/CreateTokenCommand.ts +++ b/clients/client-amplifybackend/commands/CreateTokenCommand.ts @@ -21,7 +21,7 @@ export type CreateTokenCommandInput = CreateTokenRequest; export type CreateTokenCommandOutput = CreateTokenResponse & __MetadataBearer; /** - *

Generates a one time challenge code to authenticate a user into your Amplify Admin UI.

+ *

Generates a one-time challenge code to authenticate a user into your Amplify Admin UI.

*/ export class CreateTokenCommand extends $Command< CreateTokenCommandInput, diff --git a/clients/client-amplifybackend/commands/DeleteBackendCommand.ts b/clients/client-amplifybackend/commands/DeleteBackendCommand.ts index 78dcb15032953..fdc8df02cc776 100644 --- a/clients/client-amplifybackend/commands/DeleteBackendCommand.ts +++ b/clients/client-amplifybackend/commands/DeleteBackendCommand.ts @@ -21,7 +21,7 @@ export type DeleteBackendCommandInput = DeleteBackendRequest; export type DeleteBackendCommandOutput = DeleteBackendResponse & __MetadataBearer; /** - *

Removes an existing environment from your Ampify project.

+ *

Removes an existing environment from your Amplify project.

*/ export class DeleteBackendCommand extends $Command< DeleteBackendCommandInput, diff --git a/clients/client-amplifybackend/commands/GetBackendAPICommand.ts b/clients/client-amplifybackend/commands/GetBackendAPICommand.ts index 55031c3a3274d..653bf0293e081 100644 --- a/clients/client-amplifybackend/commands/GetBackendAPICommand.ts +++ b/clients/client-amplifybackend/commands/GetBackendAPICommand.ts @@ -21,7 +21,7 @@ export type GetBackendAPICommandInput = GetBackendAPIRequest; export type GetBackendAPICommandOutput = GetBackendAPIResponse & __MetadataBearer; /** - *

Gets the details for a backend api.

+ *

Gets the details for a backend API.

*/ export class GetBackendAPICommand extends $Command< GetBackendAPICommandInput, diff --git a/clients/client-amplifybackend/commands/GetBackendAuthCommand.ts b/clients/client-amplifybackend/commands/GetBackendAuthCommand.ts index 684eb18bba6ae..6829ec400a7ac 100644 --- a/clients/client-amplifybackend/commands/GetBackendAuthCommand.ts +++ b/clients/client-amplifybackend/commands/GetBackendAuthCommand.ts @@ -21,7 +21,7 @@ export type GetBackendAuthCommandInput = GetBackendAuthRequest; export type GetBackendAuthCommandOutput = GetBackendAuthResponse & __MetadataBearer; /** - *

Gets a backend auth details.

+ *

Gets backend auth details.

*/ export class GetBackendAuthCommand extends $Command< GetBackendAuthCommandInput, diff --git a/clients/client-amplifybackend/commands/GetBackendCommand.ts b/clients/client-amplifybackend/commands/GetBackendCommand.ts index 14b938ab21130..f8db2f167dbd3 100644 --- a/clients/client-amplifybackend/commands/GetBackendCommand.ts +++ b/clients/client-amplifybackend/commands/GetBackendCommand.ts @@ -21,7 +21,7 @@ export type GetBackendCommandInput = GetBackendRequest; export type GetBackendCommandOutput = GetBackendResponse & __MetadataBearer; /** - *

Provides project level details for your Amplify UI project.

+ *

Provides project-level details for your Amplify UI project.

*/ export class GetBackendCommand extends $Command< GetBackendCommandInput, diff --git a/clients/client-amplifybackend/commands/RemoveBackendConfigCommand.ts b/clients/client-amplifybackend/commands/RemoveBackendConfigCommand.ts index b10546f809afa..f044cfb578f42 100644 --- a/clients/client-amplifybackend/commands/RemoveBackendConfigCommand.ts +++ b/clients/client-amplifybackend/commands/RemoveBackendConfigCommand.ts @@ -21,7 +21,7 @@ export type RemoveBackendConfigCommandInput = RemoveBackendConfigRequest; export type RemoveBackendConfigCommandOutput = RemoveBackendConfigResponse & __MetadataBearer; /** - *

Removes the AWS resources required to access the Amplify Admin UI.

+ *

Removes the AWS resources that are required to access the Amplify Admin UI.

*/ export class RemoveBackendConfigCommand extends $Command< RemoveBackendConfigCommandInput, diff --git a/clients/client-amplifybackend/commands/UpdateBackendConfigCommand.ts b/clients/client-amplifybackend/commands/UpdateBackendConfigCommand.ts index 7e633ab3635a1..8f8cfe66ef875 100644 --- a/clients/client-amplifybackend/commands/UpdateBackendConfigCommand.ts +++ b/clients/client-amplifybackend/commands/UpdateBackendConfigCommand.ts @@ -21,7 +21,7 @@ export type UpdateBackendConfigCommandInput = UpdateBackendConfigRequest; export type UpdateBackendConfigCommandOutput = UpdateBackendConfigResponse & __MetadataBearer; /** - *

Updates the AWS resources required to access the Amplify Admin UI.

+ *

Updates the AWS resources that are required to access the Amplify Admin UI.

*/ export class UpdateBackendConfigCommand extends $Command< UpdateBackendConfigCommandInput, diff --git a/clients/client-amplifybackend/models/models_0.ts b/clients/client-amplifybackend/models/models_0.ts index 6abbc5a0b439a..e1460c40ffcb9 100644 --- a/clients/client-amplifybackend/models/models_0.ts +++ b/clients/client-amplifybackend/models/models_0.ts @@ -15,7 +15,7 @@ export interface BadRequestException extends __SmithyException, $MetadataBearer name: "BadRequestException"; $fault: "client"; /** - *

An error message to inform that the request has failed.

+ *

An error message to inform that the request failed.

*/ Message?: string; } @@ -97,7 +97,7 @@ export interface GatewayTimeoutException extends __SmithyException, $MetadataBea name: "GatewayTimeoutException"; $fault: "server"; /** - *

An error message to inform that the request has failed.

+ *

An error message to inform that the request failed.

*/ Message?: string; } @@ -115,7 +115,7 @@ export interface NotFoundException extends __SmithyException, $MetadataBearer { name: "NotFoundException"; $fault: "client"; /** - *

An error message to inform that the request has failed.

+ *

An error message to inform that the request failed.

*/ Message?: string; @@ -132,7 +132,7 @@ export namespace NotFoundException { } /** - *

An error that is returned when a limit of a specific type has been exceeded.

+ *

An error that is returned when a limit of a specific type is exceeded.

*/ export interface TooManyRequestsException extends __SmithyException, $MetadataBearer { name: "TooManyRequestsException"; @@ -143,7 +143,7 @@ export interface TooManyRequestsException extends __SmithyException, $MetadataBe LimitType?: string; /** - *

An error message to inform that the request has failed.

+ *

An error message to inform that the request failed.

*/ Message?: string; } @@ -185,7 +185,7 @@ export interface CreateBackendRequest { BackendEnvironmentName: string | undefined; /** - *

The resource configuration for the create backend request.

+ *

The resource configuration for the backend creation request.

*/ ResourceConfig?: ResourceConfig; @@ -251,17 +251,17 @@ export enum Mode { */ export interface BackendAPIAppSyncAuthSettings { /** - *

The Amazon Cognito user pool id, if Amazon Cognito was used as an authentication setting to access your data models.

+ *

The Amazon Cognito user pool ID, if Amazon Cognito is used as an authentication setting to access your data models.

*/ CognitoUserPoolId?: string; /** - *

The api key description for API_KEY, if it was used as an authentication mechanism to access your data models.

+ *

The API key description for API_KEY, if it is used as an authentication mechanism to access your data models.

*/ Description?: string; /** - *

The api key expiration time for API_KEY, if it was used as an authentication mechanism to access your data models.

+ *

The API key expiration time for API_KEY, if it is used as an authentication mechanism to access your data models.

*/ ExpirationTime?: number; @@ -271,7 +271,7 @@ export interface BackendAPIAppSyncAuthSettings { OpenIDAuthTTL?: string; /** - *

The clientID for openID, if openID was used as an authentication setting to access your data models.

+ *

The clientID for openID, if openID is used as an authentication setting to access your data models.

*/ OpenIDClientId?: string; @@ -281,12 +281,12 @@ export interface BackendAPIAppSyncAuthSettings { OpenIDIatTTL?: string; /** - *

The openID issuer URL, if openID was used as an authentication setting to access your data models.

+ *

The openID issuer URL, if openID is used as an authentication setting to access your data models.

*/ OpenIDIssueURL?: string; /** - *

The open id provider name, if openID was used as an authentication mechanism to access your data models.

+ *

The openID provider name, if openID is used as an authentication mechanism to access your data models.

*/ OpenIDProviderName?: string; } @@ -326,7 +326,7 @@ export enum ResolutionStrategy { } /** - *

Describes the conflict resolution configuration for your data model configured in your Amplify project.

+ *

Describes the conflict resolution configuration for the data model configured in your Amplify project.

*/ export interface BackendAPIConflictResolution { /** @@ -342,26 +342,26 @@ export namespace BackendAPIConflictResolution { } /** - *

The resource config for the data model,configured as a part of the Amplify project.

+ *

The resource configuration for the data model, configured as a part of the Amplify project.

*/ export interface BackendAPIResourceConfig { /** - *

Addition authentication methods used to interact with your data models.

+ *

Additional authentication methods used to interact with your data models.

*/ AdditionalAuthTypes?: BackendAPIAuthType[]; /** - *

The API name used to interact with the data model, configured as a part of the amplify project.

+ *

The API name used to interact with the data model, configured as a part of the Amplify project.

*/ ApiName?: string; /** - *

The conflict resoultion strategy for your data stored in the data models.

+ *

The conflict resolution strategy for your data stored in the data models.

*/ ConflictResolution?: BackendAPIConflictResolution; /** - *

The default authentication type for interacting with the configured data models in your amplify project.

+ *

The default authentication type for interacting with the configured data models in your Amplify project.

*/ DefaultAuthType?: BackendAPIAuthType; @@ -371,7 +371,7 @@ export interface BackendAPIResourceConfig { Service?: string; /** - *

The definition of the data model in the annotated transform of the graphql schema.

+ *

The definition of the data model in the annotated transform of the GraphQL schema.

*/ TransformSchema?: string; } @@ -457,7 +457,7 @@ export enum AuthResources { } /** - *

Describes authorization configurations for the auth resources, configures as a part of your Amplify project.

+ *

Describes authorization configurations for the auth resources, configured as a part of your Amplify project.

*/ export interface CreateBackendAuthIdentityPoolConfig { /** @@ -524,11 +524,11 @@ export namespace SmsSettings { } /** - *

Describes the forgot password policy for authenticating into the Amlify app.

+ *

Describes the forgot password policy for authenticating into the Amplify app.

*/ export interface CreateBackendAuthForgotPasswordConfig { /** - *

Describes which mode to use (either SMS or email) to deliver messages to app users that want to recover their password.

+ *

Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.

*/ DeliveryMethod: DeliveryMethod | string | undefined; @@ -565,7 +565,7 @@ export enum MfaTypesElement { */ export interface Settings { /** - *

The supported MFA types

+ *

The supported MFA types.

*/ MfaTypes?: (MfaTypesElement | string)[]; @@ -582,11 +582,11 @@ export namespace Settings { } /** - *

Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

+ *

Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

*/ export interface CreateBackendAuthMFAConfig { /** - *

Describes whether MFA should be [ON, OFF, OPTIONAL] for authentication in your Amplify project.

+ *

Describes whether MFA should be [ON, OFF, or OPTIONAL] for authentication in your Amplify project.

*/ MFAMode: MFAMode | string | undefined; @@ -616,16 +616,16 @@ export enum OAuthScopesElement { } /** - *

Describes third party social federation configurations for allowing your app users to sign in using OAuth.

+ *

Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

*/ export interface BackendAuthSocialProviderConfig { /** - *

Describes the client_id which can be obtained from the third party social federation provider.

+ *

Describes the client_id that can be obtained from the third-party social federation provider.

*/ ClientId?: string; /** - *

Describes the client_secret which can be obtained from third party social federation providers.

+ *

Describes the client_secret that can be obtained from third-party social federation providers.

*/ ClientSecret?: string; } @@ -637,21 +637,21 @@ export namespace BackendAuthSocialProviderConfig { } /** - *

The settings for using the social providers for access to your Amplify app.

+ *

The settings for using the social identity providers for access to your Amplify app.

*/ export interface SocialProviderSettings { /** - *

Describes third party social federation configurations for allowing your app users to sign in using OAuth.

+ *

Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

*/ Facebook?: BackendAuthSocialProviderConfig; /** - *

Describes third party social federation configurations for allowing your app users to sign in using OAuth.

+ *

Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

*/ Google?: BackendAuthSocialProviderConfig; /** - *

Describes third party social federation configurations for allowing your app users to sign in using OAuth.

+ *

Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

*/ LoginWithAmazon?: BackendAuthSocialProviderConfig; } @@ -672,27 +672,27 @@ export interface CreateBackendAuthOAuthConfig { DomainPrefix?: string; /** - *

The OAuth grant type which you use to allow app users to authenticate from your Amplify app.

+ *

The OAuth grant type that you use to allow app users to authenticate from your Amplify app.

*/ OAuthGrantType: OAuthGrantType | string | undefined; /** - *

List of OAuth related flows which use to allow your app users to authenticate from your Amplify app.

+ *

List of OAuth-related flows that allow your app users to authenticate from your Amplify app.

*/ OAuthScopes: (OAuthScopesElement | string)[] | undefined; /** - *

The redirected URI for sigining into your Amplify app.

+ *

The redirected URI for signing in to your Amplify app.

*/ RedirectSignInURIs: string[] | undefined; /** - *

Redirect URLs used by OAuth when a user signs out of an Amplify app.

+ *

Redirect URLs that OAuth uses when a user signs out of an Amplify app.

*/ RedirectSignOutURIs: string[] | undefined; /** - *

The settings for using the social providers for access to your Amplify app.

+ *

The settings for using social identity providers for access to your Amplify app.

*/ SocialProviderSettings?: SocialProviderSettings; } @@ -704,16 +704,16 @@ export namespace CreateBackendAuthOAuthConfig { } /** - *

The password policy configuration for the backend to your Amplify project.

+ *

The password policy configuration for the backend of your Amplify project.

*/ export interface CreateBackendAuthPasswordPolicyConfig { /** - *

Additional constraints for the pasword used to access the backend of your Amplify project.

+ *

Additional constraints for the password used to access the backend of your Amplify project.

*/ AdditionalConstraints?: (AdditionalConstraintsElement | string)[]; /** - *

The minimum length of password used to access the backend of your Amplify project.

+ *

The minimum length of the password used to access the backend of your Amplify project.

*/ MinimumLength: number | undefined; } @@ -761,7 +761,7 @@ export interface CreateBackendAuthUserPoolConfig { ForgotPassword?: CreateBackendAuthForgotPasswordConfig; /** - *

Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

+ *

Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

*/ Mfa?: CreateBackendAuthMFAConfig; @@ -776,12 +776,12 @@ export interface CreateBackendAuthUserPoolConfig { PasswordPolicy?: CreateBackendAuthPasswordPolicyConfig; /** - *

The required attributes to sign up new users in the user pool.

+ *

The required attributes to sign up new users in the Amazon Cognito user pool.

*/ RequiredSignUpAttributes: (RequiredSignUpAttributesElement | string)[] | undefined; /** - *

Describes the sign-in methods that your Amplify app users to login using the Amazon Cognito user pool, configured as a part of your Amplify project.

+ *

Describes the sign-in methods that your Amplify app users to log in using the Amazon Cognito user pool that's configured as a part of your Amplify project.

*/ SignInMethod: SignInMethod | string | undefined; @@ -807,7 +807,7 @@ export interface CreateBackendAuthResourceConfig { AuthResources: AuthResources | string | undefined; /** - *

Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.

+ *

Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.

*/ IdentityPoolConfigs?: CreateBackendAuthIdentityPoolConfig; @@ -817,7 +817,7 @@ export interface CreateBackendAuthResourceConfig { Service: Service | string | undefined; /** - *

Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.

+ *

Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.

*/ UserPoolConfigs: CreateBackendAuthUserPoolConfig | undefined; } @@ -966,17 +966,17 @@ export interface CreateTokenResponse { AppId?: string; /** - *

One time challenge code for authenticating into Amplify Admin UI.

+ *

One-time challenge code for authenticating into the Amplify Admin UI.

*/ ChallengeCode?: string; /** - *

A unique identifier provided when creating a new challenge token.

+ *

A unique ID provided when creating a new challenge token.

*/ SessionId?: string; /** - *

The expiry time for the one time generated token code.

+ *

The expiry time for the one-time generated token code.

*/ Ttl?: string; } @@ -1183,7 +1183,7 @@ export interface DeleteTokenRequest { AppId: string | undefined; /** - *

The session Id.

+ *

The session ID.

*/ SessionId: string | undefined; } @@ -1294,7 +1294,7 @@ export namespace GetBackendRequest { export interface GetBackendResponse { /** - *

A stringified version of the current configs for your Amplify project.

+ *

A stringified version of the current configurations for your Amplify project.

*/ AmplifyMetaConfig?: string; @@ -1427,7 +1427,7 @@ export enum Status { export interface GetBackendAPIModelsResponse { /** - *

Stringified JSON of the datastore model.

+ *

Stringified JSON of the DataStore model.

*/ Models?: string; @@ -1580,7 +1580,7 @@ export interface GetTokenRequest { AppId: string | undefined; /** - *

The session Id.

+ *

The session ID.

*/ SessionId: string | undefined; } @@ -1598,17 +1598,17 @@ export interface GetTokenResponse { AppId?: string; /** - *

The one time challenge code for authenticating into Amplify Admin UI.

+ *

The one-time challenge code for authenticating into the Amplify Admin UI.

*/ ChallengeCode?: string; /** - *

A unique identifier provided when creating a new challenge token.

+ *

A unique ID provided when creating a new challenge token.

*/ SessionId?: string; /** - *

The expiry time for the one time generated token code.

+ *

The expiry time for the one-time generated token code.

*/ Ttl?: string; } @@ -1639,7 +1639,7 @@ export interface ListBackendJobsRequest { JobId?: string; /** - *

The maximum number of results you want in the response.

+ *

The maximum number of results that you want in the response.

*/ MaxResults?: number; @@ -1649,12 +1649,12 @@ export interface ListBackendJobsRequest { NextToken?: string; /** - *

Filters the list of response objects to only include those with the specified operation name.

+ *

Filters the list of response objects to include only those with the specified operation name.

*/ Operation?: string; /** - *

Filters the list of response objects to only include those with the specified status.

+ *

Filters the list of response objects to include only those with the specified status.

*/ Status?: string; } @@ -1888,7 +1888,7 @@ export namespace UpdateBackendAPIResponse { */ export interface UpdateBackendAuthIdentityPoolConfig { /** - *

A boolean value which can be set to allow or disallow guest level authorization into your Amplify app.

+ *

A Boolean value that you can set to allow or disallow guest-level authorization into your Amplify app.

*/ UnauthenticatedLogin?: boolean; } @@ -1900,11 +1900,11 @@ export namespace UpdateBackendAuthIdentityPoolConfig { } /** - *

Describes the forgot password policy for authenticating into the Amlify app.

+ *

Describes the forgot password policy for authenticating into the Amplify app.

*/ export interface UpdateBackendAuthForgotPasswordConfig { /** - *

Describes which mode to use (either SMS or email) to deliver messages to app users that want to recover their password.

+ *

Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.

*/ DeliveryMethod?: DeliveryMethod | string; @@ -1961,22 +1961,22 @@ export interface UpdateBackendAuthOAuthConfig { OAuthGrantType?: OAuthGrantType | string; /** - *

The list of OAuth related flows which can allow users to authenticate from your Amplify app.

+ *

The list of OAuth-related flows that can allow users to authenticate from your Amplify app.

*/ OAuthScopes?: (OAuthScopesElement | string)[]; /** - *

Redirect URLs used by OAuth when a user signs in to an Amplify app.

+ *

Redirect URLs that OAuth uses when a user signs in to an Amplify app.

*/ RedirectSignInURIs?: string[]; /** - *

Redirect URLs used by OAuth when a user signs out of an Amplify app.

+ *

Redirect URLs that OAuth uses when a user signs out of an Amplify app.

*/ RedirectSignOutURIs?: string[]; /** - *

Describes third party social federation configurations for allowing your users to sign in with OAuth.

+ *

Describes third-party social federation configurations for allowing your users to sign in with OAuth.

*/ SocialProviderSettings?: SocialProviderSettings; } @@ -1988,16 +1988,16 @@ export namespace UpdateBackendAuthOAuthConfig { } /** - *

Describes the password policy for your Amazon Cognito user pool configured as a part of your Amplify project.

+ *

Describes the password policy for your Amazon Cognito user pool that's configured as a part of your Amplify project.

*/ export interface UpdateBackendAuthPasswordPolicyConfig { /** - *

Describes additional constrains on password requirements to sign in into the auth resource, configured as a part of your Ampify project.

+ *

Describes additional constrains on the password requirements to sign in to the auth resource, configured as a part of your Amplify project.

*/ AdditionalConstraints?: (AdditionalConstraintsElement | string)[]; /** - *

Describes the minimum length of password required to sign in into the auth resource, configured as a part of your Ampify project.

+ *

Describes the minimum length of the password required to sign in to the auth resource, configured as a part of your Amplify project.

*/ MinimumLength?: number; } @@ -2009,7 +2009,7 @@ export namespace UpdateBackendAuthPasswordPolicyConfig { } /** - *

Describes the Amazon Cognito user pool configuration for the authorization resource to be configured for your Amplify project on an update.

+ *

Describes the Amazon Cognito user pool configuration to configure the authorization resource for your Amplify project on an update.

*/ export interface UpdateBackendAuthUserPoolConfig { /** @@ -2018,7 +2018,7 @@ export interface UpdateBackendAuthUserPoolConfig { ForgotPassword?: UpdateBackendAuthForgotPasswordConfig; /** - *

Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

+ *

Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

*/ Mfa?: UpdateBackendAuthMFAConfig; @@ -2049,7 +2049,7 @@ export interface UpdateBackendAuthResourceConfig { AuthResources: AuthResources | string | undefined; /** - *

Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.

+ *

Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.

*/ IdentityPoolConfigs?: UpdateBackendAuthIdentityPoolConfig; @@ -2059,7 +2059,7 @@ export interface UpdateBackendAuthResourceConfig { Service: Service | string | undefined; /** - *

Describes the authentication configuration for the Amazon Cognito userpool, provisioned as a part of your auth resource in the Amplify project.

+ *

Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.

*/ UserPoolConfigs: UpdateBackendAuthUserPoolConfig | undefined; } @@ -2144,22 +2144,22 @@ export namespace UpdateBackendAuthResponse { */ export interface LoginAuthConfigReqObj { /** - *

Amazon Cognito identitypool id used for the Amplify Admin UI login authorization.

+ *

The Amazon Cognito identity pool ID used for Amplify Admin UI login authorization.

*/ AwsCognitoIdentityPoolId?: string; /** - *

The AWS Region for the the Amplify Admin login.

+ *

The AWS Region for the Amplify Admin UI login.

*/ AwsCognitoRegion?: string; /** - *

The Amazon Cognito userpool id used for Amplify Admin UI login authentication.

+ *

The Amazon Cognito user pool ID used for Amplify Admin UI login authentication.

*/ AwsUserPoolsId?: string; /** - *

The web client ID for the Amazon Cognito userpools.

+ *

The web client ID for the Amazon Cognito user pools.

*/ AwsUserPoolsWebClientId?: string; } @@ -2208,7 +2208,7 @@ export interface UpdateBackendConfigResponse { Error?: string; /** - *

Describes the Amazon Cognito configurations for the Admin UI auth resource to login with.

+ *

Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with.

*/ LoginAuthConfig?: LoginAuthConfigReqObj; } @@ -2239,12 +2239,12 @@ export interface UpdateBackendJobRequest { JobId: string | undefined; /** - *

Filters the list of response objects to only include those with the specified operation name.

+ *

Filters the list of response objects to include only those with the specified operation name.

*/ Operation?: string; /** - *

Filters the list of response objects to only include those with the specified status.

+ *

Filters the list of response objects to include only those with the specified status.

*/ Status?: string; } diff --git a/clients/client-auditmanager/.gitignore b/clients/client-auditmanager/.gitignore new file mode 100644 index 0000000000000..b41c05b597c42 --- /dev/null +++ b/clients/client-auditmanager/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-auditmanager/.npmignore b/clients/client-auditmanager/.npmignore new file mode 100644 index 0000000000000..b7ff81137c4ad --- /dev/null +++ b/clients/client-auditmanager/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-auditmanager/AuditManager.ts b/clients/client-auditmanager/AuditManager.ts new file mode 100644 index 0000000000000..35b27cc849d2d --- /dev/null +++ b/clients/client-auditmanager/AuditManager.ts @@ -0,0 +1,1995 @@ +import { AuditManagerClient } from "./AuditManagerClient"; +import { + AssociateAssessmentReportEvidenceFolderCommand, + AssociateAssessmentReportEvidenceFolderCommandInput, + AssociateAssessmentReportEvidenceFolderCommandOutput, +} from "./commands/AssociateAssessmentReportEvidenceFolderCommand"; +import { + BatchAssociateAssessmentReportEvidenceCommand, + BatchAssociateAssessmentReportEvidenceCommandInput, + BatchAssociateAssessmentReportEvidenceCommandOutput, +} from "./commands/BatchAssociateAssessmentReportEvidenceCommand"; +import { + BatchCreateDelegationByAssessmentCommand, + BatchCreateDelegationByAssessmentCommandInput, + BatchCreateDelegationByAssessmentCommandOutput, +} from "./commands/BatchCreateDelegationByAssessmentCommand"; +import { + BatchDeleteDelegationByAssessmentCommand, + BatchDeleteDelegationByAssessmentCommandInput, + BatchDeleteDelegationByAssessmentCommandOutput, +} from "./commands/BatchDeleteDelegationByAssessmentCommand"; +import { + BatchDisassociateAssessmentReportEvidenceCommand, + BatchDisassociateAssessmentReportEvidenceCommandInput, + BatchDisassociateAssessmentReportEvidenceCommandOutput, +} from "./commands/BatchDisassociateAssessmentReportEvidenceCommand"; +import { + BatchImportEvidenceToAssessmentControlCommand, + BatchImportEvidenceToAssessmentControlCommandInput, + BatchImportEvidenceToAssessmentControlCommandOutput, +} from "./commands/BatchImportEvidenceToAssessmentControlCommand"; +import { + CreateAssessmentCommand, + CreateAssessmentCommandInput, + CreateAssessmentCommandOutput, +} from "./commands/CreateAssessmentCommand"; +import { + CreateAssessmentFrameworkCommand, + CreateAssessmentFrameworkCommandInput, + CreateAssessmentFrameworkCommandOutput, +} from "./commands/CreateAssessmentFrameworkCommand"; +import { + CreateAssessmentReportCommand, + CreateAssessmentReportCommandInput, + CreateAssessmentReportCommandOutput, +} from "./commands/CreateAssessmentReportCommand"; +import { + CreateControlCommand, + CreateControlCommandInput, + CreateControlCommandOutput, +} from "./commands/CreateControlCommand"; +import { + DeleteAssessmentCommand, + DeleteAssessmentCommandInput, + DeleteAssessmentCommandOutput, +} from "./commands/DeleteAssessmentCommand"; +import { + DeleteAssessmentFrameworkCommand, + DeleteAssessmentFrameworkCommandInput, + DeleteAssessmentFrameworkCommandOutput, +} from "./commands/DeleteAssessmentFrameworkCommand"; +import { + DeleteAssessmentReportCommand, + DeleteAssessmentReportCommandInput, + DeleteAssessmentReportCommandOutput, +} from "./commands/DeleteAssessmentReportCommand"; +import { + DeleteControlCommand, + DeleteControlCommandInput, + DeleteControlCommandOutput, +} from "./commands/DeleteControlCommand"; +import { + DeregisterAccountCommand, + DeregisterAccountCommandInput, + DeregisterAccountCommandOutput, +} from "./commands/DeregisterAccountCommand"; +import { + DeregisterOrganizationAdminAccountCommand, + DeregisterOrganizationAdminAccountCommandInput, + DeregisterOrganizationAdminAccountCommandOutput, +} from "./commands/DeregisterOrganizationAdminAccountCommand"; +import { + DisassociateAssessmentReportEvidenceFolderCommand, + DisassociateAssessmentReportEvidenceFolderCommandInput, + DisassociateAssessmentReportEvidenceFolderCommandOutput, +} from "./commands/DisassociateAssessmentReportEvidenceFolderCommand"; +import { + GetAccountStatusCommand, + GetAccountStatusCommandInput, + GetAccountStatusCommandOutput, +} from "./commands/GetAccountStatusCommand"; +import { + GetAssessmentCommand, + GetAssessmentCommandInput, + GetAssessmentCommandOutput, +} from "./commands/GetAssessmentCommand"; +import { + GetAssessmentFrameworkCommand, + GetAssessmentFrameworkCommandInput, + GetAssessmentFrameworkCommandOutput, +} from "./commands/GetAssessmentFrameworkCommand"; +import { + GetAssessmentReportUrlCommand, + GetAssessmentReportUrlCommandInput, + GetAssessmentReportUrlCommandOutput, +} from "./commands/GetAssessmentReportUrlCommand"; +import { + GetChangeLogsCommand, + GetChangeLogsCommandInput, + GetChangeLogsCommandOutput, +} from "./commands/GetChangeLogsCommand"; +import { GetControlCommand, GetControlCommandInput, GetControlCommandOutput } from "./commands/GetControlCommand"; +import { + GetDelegationsCommand, + GetDelegationsCommandInput, + GetDelegationsCommandOutput, +} from "./commands/GetDelegationsCommand"; +import { + GetEvidenceByEvidenceFolderCommand, + GetEvidenceByEvidenceFolderCommandInput, + GetEvidenceByEvidenceFolderCommandOutput, +} from "./commands/GetEvidenceByEvidenceFolderCommand"; +import { GetEvidenceCommand, GetEvidenceCommandInput, GetEvidenceCommandOutput } from "./commands/GetEvidenceCommand"; +import { + GetEvidenceFolderCommand, + GetEvidenceFolderCommandInput, + GetEvidenceFolderCommandOutput, +} from "./commands/GetEvidenceFolderCommand"; +import { + GetEvidenceFoldersByAssessmentCommand, + GetEvidenceFoldersByAssessmentCommandInput, + GetEvidenceFoldersByAssessmentCommandOutput, +} from "./commands/GetEvidenceFoldersByAssessmentCommand"; +import { + GetEvidenceFoldersByAssessmentControlCommand, + GetEvidenceFoldersByAssessmentControlCommandInput, + GetEvidenceFoldersByAssessmentControlCommandOutput, +} from "./commands/GetEvidenceFoldersByAssessmentControlCommand"; +import { + GetOrganizationAdminAccountCommand, + GetOrganizationAdminAccountCommandInput, + GetOrganizationAdminAccountCommandOutput, +} from "./commands/GetOrganizationAdminAccountCommand"; +import { + GetServicesInScopeCommand, + GetServicesInScopeCommandInput, + GetServicesInScopeCommandOutput, +} from "./commands/GetServicesInScopeCommand"; +import { GetSettingsCommand, GetSettingsCommandInput, GetSettingsCommandOutput } from "./commands/GetSettingsCommand"; +import { + ListAssessmentFrameworksCommand, + ListAssessmentFrameworksCommandInput, + ListAssessmentFrameworksCommandOutput, +} from "./commands/ListAssessmentFrameworksCommand"; +import { + ListAssessmentReportsCommand, + ListAssessmentReportsCommandInput, + ListAssessmentReportsCommandOutput, +} from "./commands/ListAssessmentReportsCommand"; +import { + ListAssessmentsCommand, + ListAssessmentsCommandInput, + ListAssessmentsCommandOutput, +} from "./commands/ListAssessmentsCommand"; +import { + ListControlsCommand, + ListControlsCommandInput, + ListControlsCommandOutput, +} from "./commands/ListControlsCommand"; +import { + ListKeywordsForDataSourceCommand, + ListKeywordsForDataSourceCommandInput, + ListKeywordsForDataSourceCommandOutput, +} from "./commands/ListKeywordsForDataSourceCommand"; +import { + ListNotificationsCommand, + ListNotificationsCommandInput, + ListNotificationsCommandOutput, +} from "./commands/ListNotificationsCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + RegisterAccountCommand, + RegisterAccountCommandInput, + RegisterAccountCommandOutput, +} from "./commands/RegisterAccountCommand"; +import { + RegisterOrganizationAdminAccountCommand, + RegisterOrganizationAdminAccountCommandInput, + RegisterOrganizationAdminAccountCommandOutput, +} from "./commands/RegisterOrganizationAdminAccountCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; +import { + UpdateAssessmentCommand, + UpdateAssessmentCommandInput, + UpdateAssessmentCommandOutput, +} from "./commands/UpdateAssessmentCommand"; +import { + UpdateAssessmentControlCommand, + UpdateAssessmentControlCommandInput, + UpdateAssessmentControlCommandOutput, +} from "./commands/UpdateAssessmentControlCommand"; +import { + UpdateAssessmentControlSetStatusCommand, + UpdateAssessmentControlSetStatusCommandInput, + UpdateAssessmentControlSetStatusCommandOutput, +} from "./commands/UpdateAssessmentControlSetStatusCommand"; +import { + UpdateAssessmentFrameworkCommand, + UpdateAssessmentFrameworkCommandInput, + UpdateAssessmentFrameworkCommandOutput, +} from "./commands/UpdateAssessmentFrameworkCommand"; +import { + UpdateAssessmentStatusCommand, + UpdateAssessmentStatusCommandInput, + UpdateAssessmentStatusCommandOutput, +} from "./commands/UpdateAssessmentStatusCommand"; +import { + UpdateControlCommand, + UpdateControlCommandInput, + UpdateControlCommandOutput, +} from "./commands/UpdateControlCommand"; +import { + UpdateSettingsCommand, + UpdateSettingsCommandInput, + UpdateSettingsCommandOutput, +} from "./commands/UpdateSettingsCommand"; +import { + ValidateAssessmentReportIntegrityCommand, + ValidateAssessmentReportIntegrityCommandInput, + ValidateAssessmentReportIntegrityCommandOutput, +} from "./commands/ValidateAssessmentReportIntegrityCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + *

Welcome to the AWS Audit Manager API reference. This guide is for developers who need detailed information about the AWS Audit Manager API operations, data types, and errors.

+ *

AWS Audit Manager is a service that provides automated evidence collection so that you + * can continuously audit your AWS usage, and assess the effectiveness of your controls to + * better manage risk and simplify compliance.

+ *

AWS Audit Manager provides pre-built frameworks that structure and automate assessments + * for a given compliance standard. Frameworks include a pre-built collection of controls with + * descriptions and testing procedures, which are grouped according to the requirements of the + * specified compliance standard or regulation. You can also customize frameworks and controls + * to support internal audits with unique requirements.

+ * + *

Use the following links to get started with the AWS Audit Manager API:

+ * + * + *

If you're new to AWS Audit Manager, we recommend that you review the AWS Audit Manager User Guide.

+ */ +export class AuditManager extends AuditManagerClient { + /** + *

+ * Associates an evidence folder to the specified assessment report in AWS Audit Manager. + *

+ */ + public associateAssessmentReportEvidenceFolder( + args: AssociateAssessmentReportEvidenceFolderCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public associateAssessmentReportEvidenceFolder( + args: AssociateAssessmentReportEvidenceFolderCommandInput, + cb: (err: any, data?: AssociateAssessmentReportEvidenceFolderCommandOutput) => void + ): void; + public associateAssessmentReportEvidenceFolder( + args: AssociateAssessmentReportEvidenceFolderCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AssociateAssessmentReportEvidenceFolderCommandOutput) => void + ): void; + public associateAssessmentReportEvidenceFolder( + args: AssociateAssessmentReportEvidenceFolderCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: AssociateAssessmentReportEvidenceFolderCommandOutput) => void), + cb?: (err: any, data?: AssociateAssessmentReportEvidenceFolderCommandOutput) => void + ): Promise | void { + const command = new AssociateAssessmentReportEvidenceFolderCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Associates a list of evidence to an assessment report in an AWS Audit Manager assessment. + *

+ */ + public batchAssociateAssessmentReportEvidence( + args: BatchAssociateAssessmentReportEvidenceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public batchAssociateAssessmentReportEvidence( + args: BatchAssociateAssessmentReportEvidenceCommandInput, + cb: (err: any, data?: BatchAssociateAssessmentReportEvidenceCommandOutput) => void + ): void; + public batchAssociateAssessmentReportEvidence( + args: BatchAssociateAssessmentReportEvidenceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchAssociateAssessmentReportEvidenceCommandOutput) => void + ): void; + public batchAssociateAssessmentReportEvidence( + args: BatchAssociateAssessmentReportEvidenceCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: BatchAssociateAssessmentReportEvidenceCommandOutput) => void), + cb?: (err: any, data?: BatchAssociateAssessmentReportEvidenceCommandOutput) => void + ): Promise | void { + const command = new BatchAssociateAssessmentReportEvidenceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Create a batch of delegations for a specified assessment in AWS Audit Manager. + *

+ */ + public batchCreateDelegationByAssessment( + args: BatchCreateDelegationByAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public batchCreateDelegationByAssessment( + args: BatchCreateDelegationByAssessmentCommandInput, + cb: (err: any, data?: BatchCreateDelegationByAssessmentCommandOutput) => void + ): void; + public batchCreateDelegationByAssessment( + args: BatchCreateDelegationByAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchCreateDelegationByAssessmentCommandOutput) => void + ): void; + public batchCreateDelegationByAssessment( + args: BatchCreateDelegationByAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: BatchCreateDelegationByAssessmentCommandOutput) => void), + cb?: (err: any, data?: BatchCreateDelegationByAssessmentCommandOutput) => void + ): Promise | void { + const command = new BatchCreateDelegationByAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deletes the delegations in the specified AWS Audit Manager assessment. + *

+ */ + public batchDeleteDelegationByAssessment( + args: BatchDeleteDelegationByAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public batchDeleteDelegationByAssessment( + args: BatchDeleteDelegationByAssessmentCommandInput, + cb: (err: any, data?: BatchDeleteDelegationByAssessmentCommandOutput) => void + ): void; + public batchDeleteDelegationByAssessment( + args: BatchDeleteDelegationByAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchDeleteDelegationByAssessmentCommandOutput) => void + ): void; + public batchDeleteDelegationByAssessment( + args: BatchDeleteDelegationByAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: BatchDeleteDelegationByAssessmentCommandOutput) => void), + cb?: (err: any, data?: BatchDeleteDelegationByAssessmentCommandOutput) => void + ): Promise | void { + const command = new BatchDeleteDelegationByAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. + *

+ */ + public batchDisassociateAssessmentReportEvidence( + args: BatchDisassociateAssessmentReportEvidenceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public batchDisassociateAssessmentReportEvidence( + args: BatchDisassociateAssessmentReportEvidenceCommandInput, + cb: (err: any, data?: BatchDisassociateAssessmentReportEvidenceCommandOutput) => void + ): void; + public batchDisassociateAssessmentReportEvidence( + args: BatchDisassociateAssessmentReportEvidenceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchDisassociateAssessmentReportEvidenceCommandOutput) => void + ): void; + public batchDisassociateAssessmentReportEvidence( + args: BatchDisassociateAssessmentReportEvidenceCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: BatchDisassociateAssessmentReportEvidenceCommandOutput) => void), + cb?: (err: any, data?: BatchDisassociateAssessmentReportEvidenceCommandOutput) => void + ): Promise | void { + const command = new BatchDisassociateAssessmentReportEvidenceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager. + *

+ */ + public batchImportEvidenceToAssessmentControl( + args: BatchImportEvidenceToAssessmentControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public batchImportEvidenceToAssessmentControl( + args: BatchImportEvidenceToAssessmentControlCommandInput, + cb: (err: any, data?: BatchImportEvidenceToAssessmentControlCommandOutput) => void + ): void; + public batchImportEvidenceToAssessmentControl( + args: BatchImportEvidenceToAssessmentControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchImportEvidenceToAssessmentControlCommandOutput) => void + ): void; + public batchImportEvidenceToAssessmentControl( + args: BatchImportEvidenceToAssessmentControlCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: BatchImportEvidenceToAssessmentControlCommandOutput) => void), + cb?: (err: any, data?: BatchImportEvidenceToAssessmentControlCommandOutput) => void + ): Promise | void { + const command = new BatchImportEvidenceToAssessmentControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Creates an assessment in AWS Audit Manager. + *

+ */ + public createAssessment( + args: CreateAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createAssessment( + args: CreateAssessmentCommandInput, + cb: (err: any, data?: CreateAssessmentCommandOutput) => void + ): void; + public createAssessment( + args: CreateAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateAssessmentCommandOutput) => void + ): void; + public createAssessment( + args: CreateAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateAssessmentCommandOutput) => void), + cb?: (err: any, data?: CreateAssessmentCommandOutput) => void + ): Promise | void { + const command = new CreateAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Creates a custom framework in AWS Audit Manager. + *

+ */ + public createAssessmentFramework( + args: CreateAssessmentFrameworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createAssessmentFramework( + args: CreateAssessmentFrameworkCommandInput, + cb: (err: any, data?: CreateAssessmentFrameworkCommandOutput) => void + ): void; + public createAssessmentFramework( + args: CreateAssessmentFrameworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateAssessmentFrameworkCommandOutput) => void + ): void; + public createAssessmentFramework( + args: CreateAssessmentFrameworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateAssessmentFrameworkCommandOutput) => void), + cb?: (err: any, data?: CreateAssessmentFrameworkCommandOutput) => void + ): Promise | void { + const command = new CreateAssessmentFrameworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Creates an assessment report for the specified assessment. + *

+ */ + public createAssessmentReport( + args: CreateAssessmentReportCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createAssessmentReport( + args: CreateAssessmentReportCommandInput, + cb: (err: any, data?: CreateAssessmentReportCommandOutput) => void + ): void; + public createAssessmentReport( + args: CreateAssessmentReportCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateAssessmentReportCommandOutput) => void + ): void; + public createAssessmentReport( + args: CreateAssessmentReportCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateAssessmentReportCommandOutput) => void), + cb?: (err: any, data?: CreateAssessmentReportCommandOutput) => void + ): Promise | void { + const command = new CreateAssessmentReportCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Creates a new custom control in AWS Audit Manager. + *

+ */ + public createControl( + args: CreateControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createControl( + args: CreateControlCommandInput, + cb: (err: any, data?: CreateControlCommandOutput) => void + ): void; + public createControl( + args: CreateControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateControlCommandOutput) => void + ): void; + public createControl( + args: CreateControlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateControlCommandOutput) => void), + cb?: (err: any, data?: CreateControlCommandOutput) => void + ): Promise | void { + const command = new CreateControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deletes an assessment in AWS Audit Manager. + *

+ */ + public deleteAssessment( + args: DeleteAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteAssessment( + args: DeleteAssessmentCommandInput, + cb: (err: any, data?: DeleteAssessmentCommandOutput) => void + ): void; + public deleteAssessment( + args: DeleteAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAssessmentCommandOutput) => void + ): void; + public deleteAssessment( + args: DeleteAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteAssessmentCommandOutput) => void), + cb?: (err: any, data?: DeleteAssessmentCommandOutput) => void + ): Promise | void { + const command = new DeleteAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deletes a custom framework in AWS Audit Manager. + *

+ */ + public deleteAssessmentFramework( + args: DeleteAssessmentFrameworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteAssessmentFramework( + args: DeleteAssessmentFrameworkCommandInput, + cb: (err: any, data?: DeleteAssessmentFrameworkCommandOutput) => void + ): void; + public deleteAssessmentFramework( + args: DeleteAssessmentFrameworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAssessmentFrameworkCommandOutput) => void + ): void; + public deleteAssessmentFramework( + args: DeleteAssessmentFrameworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteAssessmentFrameworkCommandOutput) => void), + cb?: (err: any, data?: DeleteAssessmentFrameworkCommandOutput) => void + ): Promise | void { + const command = new DeleteAssessmentFrameworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deletes an assessment report from an assessment in AWS Audit Manager. + *

+ */ + public deleteAssessmentReport( + args: DeleteAssessmentReportCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteAssessmentReport( + args: DeleteAssessmentReportCommandInput, + cb: (err: any, data?: DeleteAssessmentReportCommandOutput) => void + ): void; + public deleteAssessmentReport( + args: DeleteAssessmentReportCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAssessmentReportCommandOutput) => void + ): void; + public deleteAssessmentReport( + args: DeleteAssessmentReportCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteAssessmentReportCommandOutput) => void), + cb?: (err: any, data?: DeleteAssessmentReportCommandOutput) => void + ): Promise | void { + const command = new DeleteAssessmentReportCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deletes a custom control in AWS Audit Manager. + *

+ */ + public deleteControl( + args: DeleteControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteControl( + args: DeleteControlCommandInput, + cb: (err: any, data?: DeleteControlCommandOutput) => void + ): void; + public deleteControl( + args: DeleteControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteControlCommandOutput) => void + ): void; + public deleteControl( + args: DeleteControlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteControlCommandOutput) => void), + cb?: (err: any, data?: DeleteControlCommandOutput) => void + ): Promise | void { + const command = new DeleteControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deregisters an account in AWS Audit Manager. + *

+ */ + public deregisterAccount( + args: DeregisterAccountCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deregisterAccount( + args: DeregisterAccountCommandInput, + cb: (err: any, data?: DeregisterAccountCommandOutput) => void + ): void; + public deregisterAccount( + args: DeregisterAccountCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeregisterAccountCommandOutput) => void + ): void; + public deregisterAccount( + args: DeregisterAccountCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeregisterAccountCommandOutput) => void), + cb?: (err: any, data?: DeregisterAccountCommandOutput) => void + ): Promise | void { + const command = new DeregisterAccountCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Deregisters the delegated AWS administrator account from the AWS organization. + *

+ */ + public deregisterOrganizationAdminAccount( + args: DeregisterOrganizationAdminAccountCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deregisterOrganizationAdminAccount( + args: DeregisterOrganizationAdminAccountCommandInput, + cb: (err: any, data?: DeregisterOrganizationAdminAccountCommandOutput) => void + ): void; + public deregisterOrganizationAdminAccount( + args: DeregisterOrganizationAdminAccountCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeregisterOrganizationAdminAccountCommandOutput) => void + ): void; + public deregisterOrganizationAdminAccount( + args: DeregisterOrganizationAdminAccountCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeregisterOrganizationAdminAccountCommandOutput) => void), + cb?: (err: any, data?: DeregisterOrganizationAdminAccountCommandOutput) => void + ): Promise | void { + const command = new DeregisterOrganizationAdminAccountCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. + *

+ */ + public disassociateAssessmentReportEvidenceFolder( + args: DisassociateAssessmentReportEvidenceFolderCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public disassociateAssessmentReportEvidenceFolder( + args: DisassociateAssessmentReportEvidenceFolderCommandInput, + cb: (err: any, data?: DisassociateAssessmentReportEvidenceFolderCommandOutput) => void + ): void; + public disassociateAssessmentReportEvidenceFolder( + args: DisassociateAssessmentReportEvidenceFolderCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateAssessmentReportEvidenceFolderCommandOutput) => void + ): void; + public disassociateAssessmentReportEvidenceFolder( + args: DisassociateAssessmentReportEvidenceFolderCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: DisassociateAssessmentReportEvidenceFolderCommandOutput) => void), + cb?: (err: any, data?: DisassociateAssessmentReportEvidenceFolderCommandOutput) => void + ): Promise | void { + const command = new DisassociateAssessmentReportEvidenceFolderCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns the registration status of an account in AWS Audit Manager. + *

+ */ + public getAccountStatus( + args: GetAccountStatusCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getAccountStatus( + args: GetAccountStatusCommandInput, + cb: (err: any, data?: GetAccountStatusCommandOutput) => void + ): void; + public getAccountStatus( + args: GetAccountStatusCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAccountStatusCommandOutput) => void + ): void; + public getAccountStatus( + args: GetAccountStatusCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetAccountStatusCommandOutput) => void), + cb?: (err: any, data?: GetAccountStatusCommandOutput) => void + ): Promise | void { + const command = new GetAccountStatusCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns an assessment from AWS Audit Manager. + *

+ */ + public getAssessment( + args: GetAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getAssessment( + args: GetAssessmentCommandInput, + cb: (err: any, data?: GetAssessmentCommandOutput) => void + ): void; + public getAssessment( + args: GetAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAssessmentCommandOutput) => void + ): void; + public getAssessment( + args: GetAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetAssessmentCommandOutput) => void), + cb?: (err: any, data?: GetAssessmentCommandOutput) => void + ): Promise | void { + const command = new GetAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a framework from AWS Audit Manager. + *

+ */ + public getAssessmentFramework( + args: GetAssessmentFrameworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getAssessmentFramework( + args: GetAssessmentFrameworkCommandInput, + cb: (err: any, data?: GetAssessmentFrameworkCommandOutput) => void + ): void; + public getAssessmentFramework( + args: GetAssessmentFrameworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAssessmentFrameworkCommandOutput) => void + ): void; + public getAssessmentFramework( + args: GetAssessmentFrameworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetAssessmentFrameworkCommandOutput) => void), + cb?: (err: any, data?: GetAssessmentFrameworkCommandOutput) => void + ): Promise | void { + const command = new GetAssessmentFrameworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns the URL of a specified assessment report in AWS Audit Manager. + *

+ */ + public getAssessmentReportUrl( + args: GetAssessmentReportUrlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getAssessmentReportUrl( + args: GetAssessmentReportUrlCommandInput, + cb: (err: any, data?: GetAssessmentReportUrlCommandOutput) => void + ): void; + public getAssessmentReportUrl( + args: GetAssessmentReportUrlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAssessmentReportUrlCommandOutput) => void + ): void; + public getAssessmentReportUrl( + args: GetAssessmentReportUrlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetAssessmentReportUrlCommandOutput) => void), + cb?: (err: any, data?: GetAssessmentReportUrlCommandOutput) => void + ): Promise | void { + const command = new GetAssessmentReportUrlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of changelogs from AWS Audit Manager. + *

+ */ + public getChangeLogs( + args: GetChangeLogsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getChangeLogs( + args: GetChangeLogsCommandInput, + cb: (err: any, data?: GetChangeLogsCommandOutput) => void + ): void; + public getChangeLogs( + args: GetChangeLogsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetChangeLogsCommandOutput) => void + ): void; + public getChangeLogs( + args: GetChangeLogsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetChangeLogsCommandOutput) => void), + cb?: (err: any, data?: GetChangeLogsCommandOutput) => void + ): Promise | void { + const command = new GetChangeLogsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a control from AWS Audit Manager. + *

+ */ + public getControl(args: GetControlCommandInput, options?: __HttpHandlerOptions): Promise; + public getControl(args: GetControlCommandInput, cb: (err: any, data?: GetControlCommandOutput) => void): void; + public getControl( + args: GetControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetControlCommandOutput) => void + ): void; + public getControl( + args: GetControlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetControlCommandOutput) => void), + cb?: (err: any, data?: GetControlCommandOutput) => void + ): Promise | void { + const command = new GetControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of delegations from an audit owner to a delegate. + *

+ */ + public getDelegations( + args: GetDelegationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getDelegations( + args: GetDelegationsCommandInput, + cb: (err: any, data?: GetDelegationsCommandOutput) => void + ): void; + public getDelegations( + args: GetDelegationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetDelegationsCommandOutput) => void + ): void; + public getDelegations( + args: GetDelegationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetDelegationsCommandOutput) => void), + cb?: (err: any, data?: GetDelegationsCommandOutput) => void + ): Promise | void { + const command = new GetDelegationsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns evidence from AWS Audit Manager. + *

+ */ + public getEvidence(args: GetEvidenceCommandInput, options?: __HttpHandlerOptions): Promise; + public getEvidence(args: GetEvidenceCommandInput, cb: (err: any, data?: GetEvidenceCommandOutput) => void): void; + public getEvidence( + args: GetEvidenceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEvidenceCommandOutput) => void + ): void; + public getEvidence( + args: GetEvidenceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetEvidenceCommandOutput) => void), + cb?: (err: any, data?: GetEvidenceCommandOutput) => void + ): Promise | void { + const command = new GetEvidenceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns all evidence from a specified evidence folder in AWS Audit Manager. + *

+ */ + public getEvidenceByEvidenceFolder( + args: GetEvidenceByEvidenceFolderCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getEvidenceByEvidenceFolder( + args: GetEvidenceByEvidenceFolderCommandInput, + cb: (err: any, data?: GetEvidenceByEvidenceFolderCommandOutput) => void + ): void; + public getEvidenceByEvidenceFolder( + args: GetEvidenceByEvidenceFolderCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEvidenceByEvidenceFolderCommandOutput) => void + ): void; + public getEvidenceByEvidenceFolder( + args: GetEvidenceByEvidenceFolderCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetEvidenceByEvidenceFolderCommandOutput) => void), + cb?: (err: any, data?: GetEvidenceByEvidenceFolderCommandOutput) => void + ): Promise | void { + const command = new GetEvidenceByEvidenceFolderCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns an evidence folder from the specified assessment in AWS Audit Manager. + *

+ */ + public getEvidenceFolder( + args: GetEvidenceFolderCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getEvidenceFolder( + args: GetEvidenceFolderCommandInput, + cb: (err: any, data?: GetEvidenceFolderCommandOutput) => void + ): void; + public getEvidenceFolder( + args: GetEvidenceFolderCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEvidenceFolderCommandOutput) => void + ): void; + public getEvidenceFolder( + args: GetEvidenceFolderCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetEvidenceFolderCommandOutput) => void), + cb?: (err: any, data?: GetEvidenceFolderCommandOutput) => void + ): Promise | void { + const command = new GetEvidenceFolderCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns the evidence folders from a specified assessment in AWS Audit Manager. + *

+ */ + public getEvidenceFoldersByAssessment( + args: GetEvidenceFoldersByAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getEvidenceFoldersByAssessment( + args: GetEvidenceFoldersByAssessmentCommandInput, + cb: (err: any, data?: GetEvidenceFoldersByAssessmentCommandOutput) => void + ): void; + public getEvidenceFoldersByAssessment( + args: GetEvidenceFoldersByAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEvidenceFoldersByAssessmentCommandOutput) => void + ): void; + public getEvidenceFoldersByAssessment( + args: GetEvidenceFoldersByAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetEvidenceFoldersByAssessmentCommandOutput) => void), + cb?: (err: any, data?: GetEvidenceFoldersByAssessmentCommandOutput) => void + ): Promise | void { + const command = new GetEvidenceFoldersByAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager. + *

+ */ + public getEvidenceFoldersByAssessmentControl( + args: GetEvidenceFoldersByAssessmentControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getEvidenceFoldersByAssessmentControl( + args: GetEvidenceFoldersByAssessmentControlCommandInput, + cb: (err: any, data?: GetEvidenceFoldersByAssessmentControlCommandOutput) => void + ): void; + public getEvidenceFoldersByAssessmentControl( + args: GetEvidenceFoldersByAssessmentControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEvidenceFoldersByAssessmentControlCommandOutput) => void + ): void; + public getEvidenceFoldersByAssessmentControl( + args: GetEvidenceFoldersByAssessmentControlCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: GetEvidenceFoldersByAssessmentControlCommandOutput) => void), + cb?: (err: any, data?: GetEvidenceFoldersByAssessmentControlCommandOutput) => void + ): Promise | void { + const command = new GetEvidenceFoldersByAssessmentControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns the name of the delegated AWS administrator account for the AWS organization. + *

+ */ + public getOrganizationAdminAccount( + args: GetOrganizationAdminAccountCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getOrganizationAdminAccount( + args: GetOrganizationAdminAccountCommandInput, + cb: (err: any, data?: GetOrganizationAdminAccountCommandOutput) => void + ): void; + public getOrganizationAdminAccount( + args: GetOrganizationAdminAccountCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetOrganizationAdminAccountCommandOutput) => void + ): void; + public getOrganizationAdminAccount( + args: GetOrganizationAdminAccountCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetOrganizationAdminAccountCommandOutput) => void), + cb?: (err: any, data?: GetOrganizationAdminAccountCommandOutput) => void + ): Promise | void { + const command = new GetOrganizationAdminAccountCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of the in-scope AWS services for the specified assessment. + *

+ */ + public getServicesInScope( + args: GetServicesInScopeCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getServicesInScope( + args: GetServicesInScopeCommandInput, + cb: (err: any, data?: GetServicesInScopeCommandOutput) => void + ): void; + public getServicesInScope( + args: GetServicesInScopeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetServicesInScopeCommandOutput) => void + ): void; + public getServicesInScope( + args: GetServicesInScopeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetServicesInScopeCommandOutput) => void), + cb?: (err: any, data?: GetServicesInScopeCommandOutput) => void + ): Promise | void { + const command = new GetServicesInScopeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns the settings for the specified AWS account. + *

+ */ + public getSettings(args: GetSettingsCommandInput, options?: __HttpHandlerOptions): Promise; + public getSettings(args: GetSettingsCommandInput, cb: (err: any, data?: GetSettingsCommandOutput) => void): void; + public getSettings( + args: GetSettingsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSettingsCommandOutput) => void + ): void; + public getSettings( + args: GetSettingsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetSettingsCommandOutput) => void), + cb?: (err: any, data?: GetSettingsCommandOutput) => void + ): Promise | void { + const command = new GetSettingsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of the frameworks available in the AWS Audit Manager framework library. + *

+ */ + public listAssessmentFrameworks( + args: ListAssessmentFrameworksCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAssessmentFrameworks( + args: ListAssessmentFrameworksCommandInput, + cb: (err: any, data?: ListAssessmentFrameworksCommandOutput) => void + ): void; + public listAssessmentFrameworks( + args: ListAssessmentFrameworksCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAssessmentFrameworksCommandOutput) => void + ): void; + public listAssessmentFrameworks( + args: ListAssessmentFrameworksCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAssessmentFrameworksCommandOutput) => void), + cb?: (err: any, data?: ListAssessmentFrameworksCommandOutput) => void + ): Promise | void { + const command = new ListAssessmentFrameworksCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of assessment reports created in AWS Audit Manager. + *

+ */ + public listAssessmentReports( + args: ListAssessmentReportsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAssessmentReports( + args: ListAssessmentReportsCommandInput, + cb: (err: any, data?: ListAssessmentReportsCommandOutput) => void + ): void; + public listAssessmentReports( + args: ListAssessmentReportsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAssessmentReportsCommandOutput) => void + ): void; + public listAssessmentReports( + args: ListAssessmentReportsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAssessmentReportsCommandOutput) => void), + cb?: (err: any, data?: ListAssessmentReportsCommandOutput) => void + ): Promise | void { + const command = new ListAssessmentReportsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of current and past assessments from AWS Audit Manager. + *

+ */ + public listAssessments( + args: ListAssessmentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAssessments( + args: ListAssessmentsCommandInput, + cb: (err: any, data?: ListAssessmentsCommandOutput) => void + ): void; + public listAssessments( + args: ListAssessmentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAssessmentsCommandOutput) => void + ): void; + public listAssessments( + args: ListAssessmentsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAssessmentsCommandOutput) => void), + cb?: (err: any, data?: ListAssessmentsCommandOutput) => void + ): Promise | void { + const command = new ListAssessmentsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of controls from AWS Audit Manager. + *

+ */ + public listControls( + args: ListControlsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listControls(args: ListControlsCommandInput, cb: (err: any, data?: ListControlsCommandOutput) => void): void; + public listControls( + args: ListControlsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListControlsCommandOutput) => void + ): void; + public listControls( + args: ListControlsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListControlsCommandOutput) => void), + cb?: (err: any, data?: ListControlsCommandOutput) => void + ): Promise | void { + const command = new ListControlsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of keywords that pre-mapped to the specified control data source. + *

+ */ + public listKeywordsForDataSource( + args: ListKeywordsForDataSourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listKeywordsForDataSource( + args: ListKeywordsForDataSourceCommandInput, + cb: (err: any, data?: ListKeywordsForDataSourceCommandOutput) => void + ): void; + public listKeywordsForDataSource( + args: ListKeywordsForDataSourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListKeywordsForDataSourceCommandOutput) => void + ): void; + public listKeywordsForDataSource( + args: ListKeywordsForDataSourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListKeywordsForDataSourceCommandOutput) => void), + cb?: (err: any, data?: ListKeywordsForDataSourceCommandOutput) => void + ): Promise | void { + const command = new ListKeywordsForDataSourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of all AWS Audit Manager notifications. + *

+ */ + public listNotifications( + args: ListNotificationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listNotifications( + args: ListNotificationsCommandInput, + cb: (err: any, data?: ListNotificationsCommandOutput) => void + ): void; + public listNotifications( + args: ListNotificationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListNotificationsCommandOutput) => void + ): void; + public listNotifications( + args: ListNotificationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListNotificationsCommandOutput) => void), + cb?: (err: any, data?: ListNotificationsCommandOutput) => void + ): Promise | void { + const command = new ListNotificationsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Returns a list of tags for the specified resource in AWS Audit Manager. + *

+ */ + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTagsForResourceCommandOutput) => void), + cb?: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): Promise | void { + const command = new ListTagsForResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Enables AWS Audit Manager for the specified AWS account. + *

+ */ + public registerAccount( + args: RegisterAccountCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public registerAccount( + args: RegisterAccountCommandInput, + cb: (err: any, data?: RegisterAccountCommandOutput) => void + ): void; + public registerAccount( + args: RegisterAccountCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RegisterAccountCommandOutput) => void + ): void; + public registerAccount( + args: RegisterAccountCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RegisterAccountCommandOutput) => void), + cb?: (err: any, data?: RegisterAccountCommandOutput) => void + ): Promise | void { + const command = new RegisterAccountCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager. + *

+ */ + public registerOrganizationAdminAccount( + args: RegisterOrganizationAdminAccountCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public registerOrganizationAdminAccount( + args: RegisterOrganizationAdminAccountCommandInput, + cb: (err: any, data?: RegisterOrganizationAdminAccountCommandOutput) => void + ): void; + public registerOrganizationAdminAccount( + args: RegisterOrganizationAdminAccountCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RegisterOrganizationAdminAccountCommandOutput) => void + ): void; + public registerOrganizationAdminAccount( + args: RegisterOrganizationAdminAccountCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RegisterOrganizationAdminAccountCommandOutput) => void), + cb?: (err: any, data?: RegisterOrganizationAdminAccountCommandOutput) => void + ): Promise | void { + const command = new RegisterOrganizationAdminAccountCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Tags the specified resource in AWS Audit Manager. + *

+ */ + public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + public tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + public tagResource( + args: TagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: TagResourceCommandOutput) => void), + cb?: (err: any, data?: TagResourceCommandOutput) => void + ): Promise | void { + const command = new TagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Removes a tag from a resource in AWS Audit Manager. + *

+ */ + public untagResource( + args: UntagResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public untagResource( + args: UntagResourceCommandInput, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UntagResourceCommandOutput) => void), + cb?: (err: any, data?: UntagResourceCommandOutput) => void + ): Promise | void { + const command = new UntagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Edits an AWS Audit Manager assessment. + *

+ */ + public updateAssessment( + args: UpdateAssessmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAssessment( + args: UpdateAssessmentCommandInput, + cb: (err: any, data?: UpdateAssessmentCommandOutput) => void + ): void; + public updateAssessment( + args: UpdateAssessmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAssessmentCommandOutput) => void + ): void; + public updateAssessment( + args: UpdateAssessmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAssessmentCommandOutput) => void), + cb?: (err: any, data?: UpdateAssessmentCommandOutput) => void + ): Promise | void { + const command = new UpdateAssessmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates a control within an assessment in AWS Audit Manager. + *

+ */ + public updateAssessmentControl( + args: UpdateAssessmentControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAssessmentControl( + args: UpdateAssessmentControlCommandInput, + cb: (err: any, data?: UpdateAssessmentControlCommandOutput) => void + ): void; + public updateAssessmentControl( + args: UpdateAssessmentControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAssessmentControlCommandOutput) => void + ): void; + public updateAssessmentControl( + args: UpdateAssessmentControlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAssessmentControlCommandOutput) => void), + cb?: (err: any, data?: UpdateAssessmentControlCommandOutput) => void + ): Promise | void { + const command = new UpdateAssessmentControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates the status of a control set in an AWS Audit Manager assessment. + *

+ */ + public updateAssessmentControlSetStatus( + args: UpdateAssessmentControlSetStatusCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAssessmentControlSetStatus( + args: UpdateAssessmentControlSetStatusCommandInput, + cb: (err: any, data?: UpdateAssessmentControlSetStatusCommandOutput) => void + ): void; + public updateAssessmentControlSetStatus( + args: UpdateAssessmentControlSetStatusCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAssessmentControlSetStatusCommandOutput) => void + ): void; + public updateAssessmentControlSetStatus( + args: UpdateAssessmentControlSetStatusCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAssessmentControlSetStatusCommandOutput) => void), + cb?: (err: any, data?: UpdateAssessmentControlSetStatusCommandOutput) => void + ): Promise | void { + const command = new UpdateAssessmentControlSetStatusCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates a custom framework in AWS Audit Manager. + *

+ */ + public updateAssessmentFramework( + args: UpdateAssessmentFrameworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAssessmentFramework( + args: UpdateAssessmentFrameworkCommandInput, + cb: (err: any, data?: UpdateAssessmentFrameworkCommandOutput) => void + ): void; + public updateAssessmentFramework( + args: UpdateAssessmentFrameworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAssessmentFrameworkCommandOutput) => void + ): void; + public updateAssessmentFramework( + args: UpdateAssessmentFrameworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAssessmentFrameworkCommandOutput) => void), + cb?: (err: any, data?: UpdateAssessmentFrameworkCommandOutput) => void + ): Promise | void { + const command = new UpdateAssessmentFrameworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates the status of an assessment in AWS Audit Manager. + *

+ */ + public updateAssessmentStatus( + args: UpdateAssessmentStatusCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAssessmentStatus( + args: UpdateAssessmentStatusCommandInput, + cb: (err: any, data?: UpdateAssessmentStatusCommandOutput) => void + ): void; + public updateAssessmentStatus( + args: UpdateAssessmentStatusCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAssessmentStatusCommandOutput) => void + ): void; + public updateAssessmentStatus( + args: UpdateAssessmentStatusCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAssessmentStatusCommandOutput) => void), + cb?: (err: any, data?: UpdateAssessmentStatusCommandOutput) => void + ): Promise | void { + const command = new UpdateAssessmentStatusCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates a custom control in AWS Audit Manager. + *

+ */ + public updateControl( + args: UpdateControlCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateControl( + args: UpdateControlCommandInput, + cb: (err: any, data?: UpdateControlCommandOutput) => void + ): void; + public updateControl( + args: UpdateControlCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateControlCommandOutput) => void + ): void; + public updateControl( + args: UpdateControlCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateControlCommandOutput) => void), + cb?: (err: any, data?: UpdateControlCommandOutput) => void + ): Promise | void { + const command = new UpdateControlCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Updates AWS Audit Manager settings for the current user account. + *

+ */ + public updateSettings( + args: UpdateSettingsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateSettings( + args: UpdateSettingsCommandInput, + cb: (err: any, data?: UpdateSettingsCommandOutput) => void + ): void; + public updateSettings( + args: UpdateSettingsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateSettingsCommandOutput) => void + ): void; + public updateSettings( + args: UpdateSettingsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateSettingsCommandOutput) => void), + cb?: (err: any, data?: UpdateSettingsCommandOutput) => void + ): Promise | void { + const command = new UpdateSettingsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

+ * Validates the integrity of an assessment report in AWS Audit Manager. + *

+ */ + public validateAssessmentReportIntegrity( + args: ValidateAssessmentReportIntegrityCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public validateAssessmentReportIntegrity( + args: ValidateAssessmentReportIntegrityCommandInput, + cb: (err: any, data?: ValidateAssessmentReportIntegrityCommandOutput) => void + ): void; + public validateAssessmentReportIntegrity( + args: ValidateAssessmentReportIntegrityCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ValidateAssessmentReportIntegrityCommandOutput) => void + ): void; + public validateAssessmentReportIntegrity( + args: ValidateAssessmentReportIntegrityCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ValidateAssessmentReportIntegrityCommandOutput) => void), + cb?: (err: any, data?: ValidateAssessmentReportIntegrityCommandOutput) => void + ): Promise | void { + const command = new ValidateAssessmentReportIntegrityCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-auditmanager/AuditManagerClient.ts b/clients/client-auditmanager/AuditManagerClient.ts new file mode 100644 index 0000000000000..e0d1b7b4e9647 --- /dev/null +++ b/clients/client-auditmanager/AuditManagerClient.ts @@ -0,0 +1,468 @@ +import { + AssociateAssessmentReportEvidenceFolderCommandInput, + AssociateAssessmentReportEvidenceFolderCommandOutput, +} from "./commands/AssociateAssessmentReportEvidenceFolderCommand"; +import { + BatchAssociateAssessmentReportEvidenceCommandInput, + BatchAssociateAssessmentReportEvidenceCommandOutput, +} from "./commands/BatchAssociateAssessmentReportEvidenceCommand"; +import { + BatchCreateDelegationByAssessmentCommandInput, + BatchCreateDelegationByAssessmentCommandOutput, +} from "./commands/BatchCreateDelegationByAssessmentCommand"; +import { + BatchDeleteDelegationByAssessmentCommandInput, + BatchDeleteDelegationByAssessmentCommandOutput, +} from "./commands/BatchDeleteDelegationByAssessmentCommand"; +import { + BatchDisassociateAssessmentReportEvidenceCommandInput, + BatchDisassociateAssessmentReportEvidenceCommandOutput, +} from "./commands/BatchDisassociateAssessmentReportEvidenceCommand"; +import { + BatchImportEvidenceToAssessmentControlCommandInput, + BatchImportEvidenceToAssessmentControlCommandOutput, +} from "./commands/BatchImportEvidenceToAssessmentControlCommand"; +import { CreateAssessmentCommandInput, CreateAssessmentCommandOutput } from "./commands/CreateAssessmentCommand"; +import { + CreateAssessmentFrameworkCommandInput, + CreateAssessmentFrameworkCommandOutput, +} from "./commands/CreateAssessmentFrameworkCommand"; +import { + CreateAssessmentReportCommandInput, + CreateAssessmentReportCommandOutput, +} from "./commands/CreateAssessmentReportCommand"; +import { CreateControlCommandInput, CreateControlCommandOutput } from "./commands/CreateControlCommand"; +import { DeleteAssessmentCommandInput, DeleteAssessmentCommandOutput } from "./commands/DeleteAssessmentCommand"; +import { + DeleteAssessmentFrameworkCommandInput, + DeleteAssessmentFrameworkCommandOutput, +} from "./commands/DeleteAssessmentFrameworkCommand"; +import { + DeleteAssessmentReportCommandInput, + DeleteAssessmentReportCommandOutput, +} from "./commands/DeleteAssessmentReportCommand"; +import { DeleteControlCommandInput, DeleteControlCommandOutput } from "./commands/DeleteControlCommand"; +import { DeregisterAccountCommandInput, DeregisterAccountCommandOutput } from "./commands/DeregisterAccountCommand"; +import { + DeregisterOrganizationAdminAccountCommandInput, + DeregisterOrganizationAdminAccountCommandOutput, +} from "./commands/DeregisterOrganizationAdminAccountCommand"; +import { + DisassociateAssessmentReportEvidenceFolderCommandInput, + DisassociateAssessmentReportEvidenceFolderCommandOutput, +} from "./commands/DisassociateAssessmentReportEvidenceFolderCommand"; +import { GetAccountStatusCommandInput, GetAccountStatusCommandOutput } from "./commands/GetAccountStatusCommand"; +import { GetAssessmentCommandInput, GetAssessmentCommandOutput } from "./commands/GetAssessmentCommand"; +import { + GetAssessmentFrameworkCommandInput, + GetAssessmentFrameworkCommandOutput, +} from "./commands/GetAssessmentFrameworkCommand"; +import { + GetAssessmentReportUrlCommandInput, + GetAssessmentReportUrlCommandOutput, +} from "./commands/GetAssessmentReportUrlCommand"; +import { GetChangeLogsCommandInput, GetChangeLogsCommandOutput } from "./commands/GetChangeLogsCommand"; +import { GetControlCommandInput, GetControlCommandOutput } from "./commands/GetControlCommand"; +import { GetDelegationsCommandInput, GetDelegationsCommandOutput } from "./commands/GetDelegationsCommand"; +import { + GetEvidenceByEvidenceFolderCommandInput, + GetEvidenceByEvidenceFolderCommandOutput, +} from "./commands/GetEvidenceByEvidenceFolderCommand"; +import { GetEvidenceCommandInput, GetEvidenceCommandOutput } from "./commands/GetEvidenceCommand"; +import { GetEvidenceFolderCommandInput, GetEvidenceFolderCommandOutput } from "./commands/GetEvidenceFolderCommand"; +import { + GetEvidenceFoldersByAssessmentCommandInput, + GetEvidenceFoldersByAssessmentCommandOutput, +} from "./commands/GetEvidenceFoldersByAssessmentCommand"; +import { + GetEvidenceFoldersByAssessmentControlCommandInput, + GetEvidenceFoldersByAssessmentControlCommandOutput, +} from "./commands/GetEvidenceFoldersByAssessmentControlCommand"; +import { + GetOrganizationAdminAccountCommandInput, + GetOrganizationAdminAccountCommandOutput, +} from "./commands/GetOrganizationAdminAccountCommand"; +import { GetServicesInScopeCommandInput, GetServicesInScopeCommandOutput } from "./commands/GetServicesInScopeCommand"; +import { GetSettingsCommandInput, GetSettingsCommandOutput } from "./commands/GetSettingsCommand"; +import { + ListAssessmentFrameworksCommandInput, + ListAssessmentFrameworksCommandOutput, +} from "./commands/ListAssessmentFrameworksCommand"; +import { + ListAssessmentReportsCommandInput, + ListAssessmentReportsCommandOutput, +} from "./commands/ListAssessmentReportsCommand"; +import { ListAssessmentsCommandInput, ListAssessmentsCommandOutput } from "./commands/ListAssessmentsCommand"; +import { ListControlsCommandInput, ListControlsCommandOutput } from "./commands/ListControlsCommand"; +import { + ListKeywordsForDataSourceCommandInput, + ListKeywordsForDataSourceCommandOutput, +} from "./commands/ListKeywordsForDataSourceCommand"; +import { ListNotificationsCommandInput, ListNotificationsCommandOutput } from "./commands/ListNotificationsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { RegisterAccountCommandInput, RegisterAccountCommandOutput } from "./commands/RegisterAccountCommand"; +import { + RegisterOrganizationAdminAccountCommandInput, + RegisterOrganizationAdminAccountCommandOutput, +} from "./commands/RegisterOrganizationAdminAccountCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; +import { UpdateAssessmentCommandInput, UpdateAssessmentCommandOutput } from "./commands/UpdateAssessmentCommand"; +import { + UpdateAssessmentControlCommandInput, + UpdateAssessmentControlCommandOutput, +} from "./commands/UpdateAssessmentControlCommand"; +import { + UpdateAssessmentControlSetStatusCommandInput, + UpdateAssessmentControlSetStatusCommandOutput, +} from "./commands/UpdateAssessmentControlSetStatusCommand"; +import { + UpdateAssessmentFrameworkCommandInput, + UpdateAssessmentFrameworkCommandOutput, +} from "./commands/UpdateAssessmentFrameworkCommand"; +import { + UpdateAssessmentStatusCommandInput, + UpdateAssessmentStatusCommandOutput, +} from "./commands/UpdateAssessmentStatusCommand"; +import { UpdateControlCommandInput, UpdateControlCommandOutput } from "./commands/UpdateControlCommand"; +import { UpdateSettingsCommandInput, UpdateSettingsCommandOutput } from "./commands/UpdateSettingsCommand"; +import { + ValidateAssessmentReportIntegrityCommandInput, + ValidateAssessmentReportIntegrityCommandOutput, +} from "./commands/ValidateAssessmentReportIntegrityCommand"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, +} from "@aws-sdk/types"; + +export type ServiceInputTypes = + | AssociateAssessmentReportEvidenceFolderCommandInput + | BatchAssociateAssessmentReportEvidenceCommandInput + | BatchCreateDelegationByAssessmentCommandInput + | BatchDeleteDelegationByAssessmentCommandInput + | BatchDisassociateAssessmentReportEvidenceCommandInput + | BatchImportEvidenceToAssessmentControlCommandInput + | CreateAssessmentCommandInput + | CreateAssessmentFrameworkCommandInput + | CreateAssessmentReportCommandInput + | CreateControlCommandInput + | DeleteAssessmentCommandInput + | DeleteAssessmentFrameworkCommandInput + | DeleteAssessmentReportCommandInput + | DeleteControlCommandInput + | DeregisterAccountCommandInput + | DeregisterOrganizationAdminAccountCommandInput + | DisassociateAssessmentReportEvidenceFolderCommandInput + | GetAccountStatusCommandInput + | GetAssessmentCommandInput + | GetAssessmentFrameworkCommandInput + | GetAssessmentReportUrlCommandInput + | GetChangeLogsCommandInput + | GetControlCommandInput + | GetDelegationsCommandInput + | GetEvidenceByEvidenceFolderCommandInput + | GetEvidenceCommandInput + | GetEvidenceFolderCommandInput + | GetEvidenceFoldersByAssessmentCommandInput + | GetEvidenceFoldersByAssessmentControlCommandInput + | GetOrganizationAdminAccountCommandInput + | GetServicesInScopeCommandInput + | GetSettingsCommandInput + | ListAssessmentFrameworksCommandInput + | ListAssessmentReportsCommandInput + | ListAssessmentsCommandInput + | ListControlsCommandInput + | ListKeywordsForDataSourceCommandInput + | ListNotificationsCommandInput + | ListTagsForResourceCommandInput + | RegisterAccountCommandInput + | RegisterOrganizationAdminAccountCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput + | UpdateAssessmentCommandInput + | UpdateAssessmentControlCommandInput + | UpdateAssessmentControlSetStatusCommandInput + | UpdateAssessmentFrameworkCommandInput + | UpdateAssessmentStatusCommandInput + | UpdateControlCommandInput + | UpdateSettingsCommandInput + | ValidateAssessmentReportIntegrityCommandInput; + +export type ServiceOutputTypes = + | AssociateAssessmentReportEvidenceFolderCommandOutput + | BatchAssociateAssessmentReportEvidenceCommandOutput + | BatchCreateDelegationByAssessmentCommandOutput + | BatchDeleteDelegationByAssessmentCommandOutput + | BatchDisassociateAssessmentReportEvidenceCommandOutput + | BatchImportEvidenceToAssessmentControlCommandOutput + | CreateAssessmentCommandOutput + | CreateAssessmentFrameworkCommandOutput + | CreateAssessmentReportCommandOutput + | CreateControlCommandOutput + | DeleteAssessmentCommandOutput + | DeleteAssessmentFrameworkCommandOutput + | DeleteAssessmentReportCommandOutput + | DeleteControlCommandOutput + | DeregisterAccountCommandOutput + | DeregisterOrganizationAdminAccountCommandOutput + | DisassociateAssessmentReportEvidenceFolderCommandOutput + | GetAccountStatusCommandOutput + | GetAssessmentCommandOutput + | GetAssessmentFrameworkCommandOutput + | GetAssessmentReportUrlCommandOutput + | GetChangeLogsCommandOutput + | GetControlCommandOutput + | GetDelegationsCommandOutput + | GetEvidenceByEvidenceFolderCommandOutput + | GetEvidenceCommandOutput + | GetEvidenceFolderCommandOutput + | GetEvidenceFoldersByAssessmentCommandOutput + | GetEvidenceFoldersByAssessmentControlCommandOutput + | GetOrganizationAdminAccountCommandOutput + | GetServicesInScopeCommandOutput + | GetSettingsCommandOutput + | ListAssessmentFrameworksCommandOutput + | ListAssessmentReportsCommandOutput + | ListAssessmentsCommandOutput + | ListControlsCommandOutput + | ListKeywordsForDataSourceCommandOutput + | ListNotificationsCommandOutput + | ListTagsForResourceCommandOutput + | RegisterAccountCommandOutput + | RegisterOrganizationAdminAccountCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput + | UpdateAssessmentCommandOutput + | UpdateAssessmentControlCommandOutput + | UpdateAssessmentControlSetStatusCommandOutput + | UpdateAssessmentFrameworkCommandOutput + | UpdateAssessmentStatusCommandOutput + | UpdateControlCommandOutput + | UpdateSettingsCommandOutput + | ValidateAssessmentReportIntegrityCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type AuditManagerClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type AuditManagerClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + *

Welcome to the AWS Audit Manager API reference. This guide is for developers who need detailed information about the AWS Audit Manager API operations, data types, and errors.

+ *

AWS Audit Manager is a service that provides automated evidence collection so that you + * can continuously audit your AWS usage, and assess the effectiveness of your controls to + * better manage risk and simplify compliance.

+ *

AWS Audit Manager provides pre-built frameworks that structure and automate assessments + * for a given compliance standard. Frameworks include a pre-built collection of controls with + * descriptions and testing procedures, which are grouped according to the requirements of the + * specified compliance standard or regulation. You can also customize frameworks and controls + * to support internal audits with unique requirements.

+ * + *

Use the following links to get started with the AWS Audit Manager API:

+ *
    + *
  • + *

    + * Actions: An alphabetical list of all AWS Audit Manager API operations.

    + *
  • + *
  • + *

    + * Data types: An alphabetical list of all AWS Audit Manager data types.

    + *
  • + *
  • + *

    + * Common parameters: Parameters that all Query operations can use.

    + *
  • + *
  • + *

    + * Common errors: Client and server errors that all operations can return.

    + *
  • + *
+ * + *

If you're new to AWS Audit Manager, we recommend that you review the AWS Audit Manager User Guide.

+ */ +export class AuditManagerClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + AuditManagerClientResolvedConfig +> { + readonly config: AuditManagerClientResolvedConfig; + + constructor(configuration: AuditManagerClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration, + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + } + + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-auditmanager/LICENSE b/clients/client-auditmanager/LICENSE new file mode 100644 index 0000000000000..dd65ae06be7a9 --- /dev/null +++ b/clients/client-auditmanager/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/clients/client-auditmanager/README.md b/clients/client-auditmanager/README.md new file mode 100644 index 0000000000000..532c8c7adc2fb --- /dev/null +++ b/clients/client-auditmanager/README.md @@ -0,0 +1,6 @@ +# @aws-sdk/client-auditmanager + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-auditmanager/rc.svg)](https://www.npmjs.com/package/@aws-sdk/client-auditmanager) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-auditmanager.svg)](https://www.npmjs.com/package/@aws-sdk/client-auditmanager) + +For SDK usage, please step to [SDK readme](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-auditmanager/commands/AssociateAssessmentReportEvidenceFolderCommand.ts b/clients/client-auditmanager/commands/AssociateAssessmentReportEvidenceFolderCommand.ts new file mode 100644 index 0000000000000..25635ea2a9383 --- /dev/null +++ b/clients/client-auditmanager/commands/AssociateAssessmentReportEvidenceFolderCommand.ts @@ -0,0 +1,103 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + AssociateAssessmentReportEvidenceFolderRequest, + AssociateAssessmentReportEvidenceFolderResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand, + serializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type AssociateAssessmentReportEvidenceFolderCommandInput = AssociateAssessmentReportEvidenceFolderRequest; +export type AssociateAssessmentReportEvidenceFolderCommandOutput = AssociateAssessmentReportEvidenceFolderResponse & + __MetadataBearer; + +/** + *

+ * Associates an evidence folder to the specified assessment report in AWS Audit Manager. + *

+ */ +export class AssociateAssessmentReportEvidenceFolderCommand extends $Command< + AssociateAssessmentReportEvidenceFolderCommandInput, + AssociateAssessmentReportEvidenceFolderCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AssociateAssessmentReportEvidenceFolderCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + AssociateAssessmentReportEvidenceFolderCommandInput, + AssociateAssessmentReportEvidenceFolderCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "AssociateAssessmentReportEvidenceFolderCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AssociateAssessmentReportEvidenceFolderRequest.filterSensitiveLog, + outputFilterSensitiveLog: AssociateAssessmentReportEvidenceFolderResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: AssociateAssessmentReportEvidenceFolderCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/BatchAssociateAssessmentReportEvidenceCommand.ts b/clients/client-auditmanager/commands/BatchAssociateAssessmentReportEvidenceCommand.ts new file mode 100644 index 0000000000000..7f093256a7dbc --- /dev/null +++ b/clients/client-auditmanager/commands/BatchAssociateAssessmentReportEvidenceCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + BatchAssociateAssessmentReportEvidenceRequest, + BatchAssociateAssessmentReportEvidenceResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand, + serializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type BatchAssociateAssessmentReportEvidenceCommandInput = BatchAssociateAssessmentReportEvidenceRequest; +export type BatchAssociateAssessmentReportEvidenceCommandOutput = BatchAssociateAssessmentReportEvidenceResponse & + __MetadataBearer; + +/** + *

+ * Associates a list of evidence to an assessment report in an AWS Audit Manager assessment. + *

+ */ +export class BatchAssociateAssessmentReportEvidenceCommand extends $Command< + BatchAssociateAssessmentReportEvidenceCommandInput, + BatchAssociateAssessmentReportEvidenceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: BatchAssociateAssessmentReportEvidenceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "BatchAssociateAssessmentReportEvidenceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: BatchAssociateAssessmentReportEvidenceRequest.filterSensitiveLog, + outputFilterSensitiveLog: BatchAssociateAssessmentReportEvidenceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: BatchAssociateAssessmentReportEvidenceCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/BatchCreateDelegationByAssessmentCommand.ts b/clients/client-auditmanager/commands/BatchCreateDelegationByAssessmentCommand.ts new file mode 100644 index 0000000000000..001f8277f6ecf --- /dev/null +++ b/clients/client-auditmanager/commands/BatchCreateDelegationByAssessmentCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + BatchCreateDelegationByAssessmentRequest, + BatchCreateDelegationByAssessmentResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1BatchCreateDelegationByAssessmentCommand, + serializeAws_restJson1BatchCreateDelegationByAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type BatchCreateDelegationByAssessmentCommandInput = BatchCreateDelegationByAssessmentRequest; +export type BatchCreateDelegationByAssessmentCommandOutput = BatchCreateDelegationByAssessmentResponse & + __MetadataBearer; + +/** + *

+ * Create a batch of delegations for a specified assessment in AWS Audit Manager. + *

+ */ +export class BatchCreateDelegationByAssessmentCommand extends $Command< + BatchCreateDelegationByAssessmentCommandInput, + BatchCreateDelegationByAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: BatchCreateDelegationByAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "BatchCreateDelegationByAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: BatchCreateDelegationByAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: BatchCreateDelegationByAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: BatchCreateDelegationByAssessmentCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1BatchCreateDelegationByAssessmentCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1BatchCreateDelegationByAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/BatchDeleteDelegationByAssessmentCommand.ts b/clients/client-auditmanager/commands/BatchDeleteDelegationByAssessmentCommand.ts new file mode 100644 index 0000000000000..95ac9b8d067c5 --- /dev/null +++ b/clients/client-auditmanager/commands/BatchDeleteDelegationByAssessmentCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + BatchDeleteDelegationByAssessmentRequest, + BatchDeleteDelegationByAssessmentResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1BatchDeleteDelegationByAssessmentCommand, + serializeAws_restJson1BatchDeleteDelegationByAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type BatchDeleteDelegationByAssessmentCommandInput = BatchDeleteDelegationByAssessmentRequest; +export type BatchDeleteDelegationByAssessmentCommandOutput = BatchDeleteDelegationByAssessmentResponse & + __MetadataBearer; + +/** + *

+ * Deletes the delegations in the specified AWS Audit Manager assessment. + *

+ */ +export class BatchDeleteDelegationByAssessmentCommand extends $Command< + BatchDeleteDelegationByAssessmentCommandInput, + BatchDeleteDelegationByAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: BatchDeleteDelegationByAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "BatchDeleteDelegationByAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: BatchDeleteDelegationByAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: BatchDeleteDelegationByAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: BatchDeleteDelegationByAssessmentCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1BatchDeleteDelegationByAssessmentCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1BatchDeleteDelegationByAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/BatchDisassociateAssessmentReportEvidenceCommand.ts b/clients/client-auditmanager/commands/BatchDisassociateAssessmentReportEvidenceCommand.ts new file mode 100644 index 0000000000000..8c4e797cca7f5 --- /dev/null +++ b/clients/client-auditmanager/commands/BatchDisassociateAssessmentReportEvidenceCommand.ts @@ -0,0 +1,103 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + BatchDisassociateAssessmentReportEvidenceRequest, + BatchDisassociateAssessmentReportEvidenceResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand, + serializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type BatchDisassociateAssessmentReportEvidenceCommandInput = BatchDisassociateAssessmentReportEvidenceRequest; +export type BatchDisassociateAssessmentReportEvidenceCommandOutput = BatchDisassociateAssessmentReportEvidenceResponse & + __MetadataBearer; + +/** + *

+ * Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. + *

+ */ +export class BatchDisassociateAssessmentReportEvidenceCommand extends $Command< + BatchDisassociateAssessmentReportEvidenceCommandInput, + BatchDisassociateAssessmentReportEvidenceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: BatchDisassociateAssessmentReportEvidenceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + BatchDisassociateAssessmentReportEvidenceCommandInput, + BatchDisassociateAssessmentReportEvidenceCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "BatchDisassociateAssessmentReportEvidenceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: BatchDisassociateAssessmentReportEvidenceRequest.filterSensitiveLog, + outputFilterSensitiveLog: BatchDisassociateAssessmentReportEvidenceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: BatchDisassociateAssessmentReportEvidenceCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/BatchImportEvidenceToAssessmentControlCommand.ts b/clients/client-auditmanager/commands/BatchImportEvidenceToAssessmentControlCommand.ts new file mode 100644 index 0000000000000..a21c59fe73841 --- /dev/null +++ b/clients/client-auditmanager/commands/BatchImportEvidenceToAssessmentControlCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + BatchImportEvidenceToAssessmentControlRequest, + BatchImportEvidenceToAssessmentControlResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand, + serializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type BatchImportEvidenceToAssessmentControlCommandInput = BatchImportEvidenceToAssessmentControlRequest; +export type BatchImportEvidenceToAssessmentControlCommandOutput = BatchImportEvidenceToAssessmentControlResponse & + __MetadataBearer; + +/** + *

+ * Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager. + *

+ */ +export class BatchImportEvidenceToAssessmentControlCommand extends $Command< + BatchImportEvidenceToAssessmentControlCommandInput, + BatchImportEvidenceToAssessmentControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: BatchImportEvidenceToAssessmentControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "BatchImportEvidenceToAssessmentControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: BatchImportEvidenceToAssessmentControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: BatchImportEvidenceToAssessmentControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: BatchImportEvidenceToAssessmentControlCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/CreateAssessmentCommand.ts b/clients/client-auditmanager/commands/CreateAssessmentCommand.ts new file mode 100644 index 0000000000000..212055098f181 --- /dev/null +++ b/clients/client-auditmanager/commands/CreateAssessmentCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { CreateAssessmentRequest, CreateAssessmentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateAssessmentCommand, + serializeAws_restJson1CreateAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateAssessmentCommandInput = CreateAssessmentRequest; +export type CreateAssessmentCommandOutput = CreateAssessmentResponse & __MetadataBearer; + +/** + *

+ * Creates an assessment in AWS Audit Manager. + *

+ */ +export class CreateAssessmentCommand extends $Command< + CreateAssessmentCommandInput, + CreateAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "CreateAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateAssessmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateAssessmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/CreateAssessmentFrameworkCommand.ts b/clients/client-auditmanager/commands/CreateAssessmentFrameworkCommand.ts new file mode 100644 index 0000000000000..bc926c6941650 --- /dev/null +++ b/clients/client-auditmanager/commands/CreateAssessmentFrameworkCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { CreateAssessmentFrameworkRequest, CreateAssessmentFrameworkResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateAssessmentFrameworkCommand, + serializeAws_restJson1CreateAssessmentFrameworkCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateAssessmentFrameworkCommandInput = CreateAssessmentFrameworkRequest; +export type CreateAssessmentFrameworkCommandOutput = CreateAssessmentFrameworkResponse & __MetadataBearer; + +/** + *

+ * Creates a custom framework in AWS Audit Manager. + *

+ */ +export class CreateAssessmentFrameworkCommand extends $Command< + CreateAssessmentFrameworkCommandInput, + CreateAssessmentFrameworkCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateAssessmentFrameworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "CreateAssessmentFrameworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateAssessmentFrameworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateAssessmentFrameworkResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateAssessmentFrameworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateAssessmentFrameworkCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1CreateAssessmentFrameworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/CreateAssessmentReportCommand.ts b/clients/client-auditmanager/commands/CreateAssessmentReportCommand.ts new file mode 100644 index 0000000000000..b436f821fc516 --- /dev/null +++ b/clients/client-auditmanager/commands/CreateAssessmentReportCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { CreateAssessmentReportRequest, CreateAssessmentReportResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateAssessmentReportCommand, + serializeAws_restJson1CreateAssessmentReportCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateAssessmentReportCommandInput = CreateAssessmentReportRequest; +export type CreateAssessmentReportCommandOutput = CreateAssessmentReportResponse & __MetadataBearer; + +/** + *

+ * Creates an assessment report for the specified assessment. + *

+ */ +export class CreateAssessmentReportCommand extends $Command< + CreateAssessmentReportCommandInput, + CreateAssessmentReportCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateAssessmentReportCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "CreateAssessmentReportCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateAssessmentReportRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateAssessmentReportResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateAssessmentReportCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateAssessmentReportCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateAssessmentReportCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/CreateControlCommand.ts b/clients/client-auditmanager/commands/CreateControlCommand.ts new file mode 100644 index 0000000000000..6c3b144a4538d --- /dev/null +++ b/clients/client-auditmanager/commands/CreateControlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { CreateControlRequest, CreateControlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateControlCommand, + serializeAws_restJson1CreateControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateControlCommandInput = CreateControlRequest; +export type CreateControlCommandOutput = CreateControlResponse & __MetadataBearer; + +/** + *

+ * Creates a new custom control in AWS Audit Manager. + *

+ */ +export class CreateControlCommand extends $Command< + CreateControlCommandInput, + CreateControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "CreateControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateControlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeleteAssessmentCommand.ts b/clients/client-auditmanager/commands/DeleteAssessmentCommand.ts new file mode 100644 index 0000000000000..354c5bd578716 --- /dev/null +++ b/clients/client-auditmanager/commands/DeleteAssessmentCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { DeleteAssessmentRequest, DeleteAssessmentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteAssessmentCommand, + serializeAws_restJson1DeleteAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteAssessmentCommandInput = DeleteAssessmentRequest; +export type DeleteAssessmentCommandOutput = DeleteAssessmentResponse & __MetadataBearer; + +/** + *

+ * Deletes an assessment in AWS Audit Manager. + *

+ */ +export class DeleteAssessmentCommand extends $Command< + DeleteAssessmentCommandInput, + DeleteAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeleteAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteAssessmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteAssessmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeleteAssessmentFrameworkCommand.ts b/clients/client-auditmanager/commands/DeleteAssessmentFrameworkCommand.ts new file mode 100644 index 0000000000000..03381fd3463cc --- /dev/null +++ b/clients/client-auditmanager/commands/DeleteAssessmentFrameworkCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { DeleteAssessmentFrameworkRequest, DeleteAssessmentFrameworkResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteAssessmentFrameworkCommand, + serializeAws_restJson1DeleteAssessmentFrameworkCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteAssessmentFrameworkCommandInput = DeleteAssessmentFrameworkRequest; +export type DeleteAssessmentFrameworkCommandOutput = DeleteAssessmentFrameworkResponse & __MetadataBearer; + +/** + *

+ * Deletes a custom framework in AWS Audit Manager. + *

+ */ +export class DeleteAssessmentFrameworkCommand extends $Command< + DeleteAssessmentFrameworkCommandInput, + DeleteAssessmentFrameworkCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteAssessmentFrameworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeleteAssessmentFrameworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteAssessmentFrameworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteAssessmentFrameworkResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteAssessmentFrameworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteAssessmentFrameworkCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1DeleteAssessmentFrameworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeleteAssessmentReportCommand.ts b/clients/client-auditmanager/commands/DeleteAssessmentReportCommand.ts new file mode 100644 index 0000000000000..2db16a66f0604 --- /dev/null +++ b/clients/client-auditmanager/commands/DeleteAssessmentReportCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { DeleteAssessmentReportRequest, DeleteAssessmentReportResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteAssessmentReportCommand, + serializeAws_restJson1DeleteAssessmentReportCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteAssessmentReportCommandInput = DeleteAssessmentReportRequest; +export type DeleteAssessmentReportCommandOutput = DeleteAssessmentReportResponse & __MetadataBearer; + +/** + *

+ * Deletes an assessment report from an assessment in AWS Audit Manager. + *

+ */ +export class DeleteAssessmentReportCommand extends $Command< + DeleteAssessmentReportCommandInput, + DeleteAssessmentReportCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteAssessmentReportCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeleteAssessmentReportCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteAssessmentReportRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteAssessmentReportResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteAssessmentReportCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteAssessmentReportCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteAssessmentReportCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeleteControlCommand.ts b/clients/client-auditmanager/commands/DeleteControlCommand.ts new file mode 100644 index 0000000000000..d620eb998012e --- /dev/null +++ b/clients/client-auditmanager/commands/DeleteControlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { DeleteControlRequest, DeleteControlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteControlCommand, + serializeAws_restJson1DeleteControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteControlCommandInput = DeleteControlRequest; +export type DeleteControlCommandOutput = DeleteControlResponse & __MetadataBearer; + +/** + *

+ * Deletes a custom control in AWS Audit Manager. + *

+ */ +export class DeleteControlCommand extends $Command< + DeleteControlCommandInput, + DeleteControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeleteControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteControlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeregisterAccountCommand.ts b/clients/client-auditmanager/commands/DeregisterAccountCommand.ts new file mode 100644 index 0000000000000..0de11f1cda7fb --- /dev/null +++ b/clients/client-auditmanager/commands/DeregisterAccountCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { DeregisterAccountRequest, DeregisterAccountResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeregisterAccountCommand, + serializeAws_restJson1DeregisterAccountCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeregisterAccountCommandInput = DeregisterAccountRequest; +export type DeregisterAccountCommandOutput = DeregisterAccountResponse & __MetadataBearer; + +/** + *

+ * Deregisters an account in AWS Audit Manager. + *

+ */ +export class DeregisterAccountCommand extends $Command< + DeregisterAccountCommandInput, + DeregisterAccountCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeregisterAccountCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeregisterAccountCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeregisterAccountRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeregisterAccountResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeregisterAccountCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeregisterAccountCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeregisterAccountCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DeregisterOrganizationAdminAccountCommand.ts b/clients/client-auditmanager/commands/DeregisterOrganizationAdminAccountCommand.ts new file mode 100644 index 0000000000000..3de3dc3bc9f1b --- /dev/null +++ b/clients/client-auditmanager/commands/DeregisterOrganizationAdminAccountCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + DeregisterOrganizationAdminAccountRequest, + DeregisterOrganizationAdminAccountResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1DeregisterOrganizationAdminAccountCommand, + serializeAws_restJson1DeregisterOrganizationAdminAccountCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeregisterOrganizationAdminAccountCommandInput = DeregisterOrganizationAdminAccountRequest; +export type DeregisterOrganizationAdminAccountCommandOutput = DeregisterOrganizationAdminAccountResponse & + __MetadataBearer; + +/** + *

+ * Deregisters the delegated AWS administrator account from the AWS organization. + *

+ */ +export class DeregisterOrganizationAdminAccountCommand extends $Command< + DeregisterOrganizationAdminAccountCommandInput, + DeregisterOrganizationAdminAccountCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeregisterOrganizationAdminAccountCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DeregisterOrganizationAdminAccountCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeregisterOrganizationAdminAccountRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeregisterOrganizationAdminAccountResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeregisterOrganizationAdminAccountCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1DeregisterOrganizationAdminAccountCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1DeregisterOrganizationAdminAccountCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/DisassociateAssessmentReportEvidenceFolderCommand.ts b/clients/client-auditmanager/commands/DisassociateAssessmentReportEvidenceFolderCommand.ts new file mode 100644 index 0000000000000..e6b653d353eeb --- /dev/null +++ b/clients/client-auditmanager/commands/DisassociateAssessmentReportEvidenceFolderCommand.ts @@ -0,0 +1,103 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + DisassociateAssessmentReportEvidenceFolderRequest, + DisassociateAssessmentReportEvidenceFolderResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand, + serializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DisassociateAssessmentReportEvidenceFolderCommandInput = DisassociateAssessmentReportEvidenceFolderRequest; +export type DisassociateAssessmentReportEvidenceFolderCommandOutput = DisassociateAssessmentReportEvidenceFolderResponse & + __MetadataBearer; + +/** + *

+ * Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. + *

+ */ +export class DisassociateAssessmentReportEvidenceFolderCommand extends $Command< + DisassociateAssessmentReportEvidenceFolderCommandInput, + DisassociateAssessmentReportEvidenceFolderCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DisassociateAssessmentReportEvidenceFolderCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DisassociateAssessmentReportEvidenceFolderCommandInput, + DisassociateAssessmentReportEvidenceFolderCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "DisassociateAssessmentReportEvidenceFolderCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DisassociateAssessmentReportEvidenceFolderRequest.filterSensitiveLog, + outputFilterSensitiveLog: DisassociateAssessmentReportEvidenceFolderResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DisassociateAssessmentReportEvidenceFolderCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetAccountStatusCommand.ts b/clients/client-auditmanager/commands/GetAccountStatusCommand.ts new file mode 100644 index 0000000000000..68ae76628e5c9 --- /dev/null +++ b/clients/client-auditmanager/commands/GetAccountStatusCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetAccountStatusRequest, GetAccountStatusResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetAccountStatusCommand, + serializeAws_restJson1GetAccountStatusCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetAccountStatusCommandInput = GetAccountStatusRequest; +export type GetAccountStatusCommandOutput = GetAccountStatusResponse & __MetadataBearer; + +/** + *

+ * Returns the registration status of an account in AWS Audit Manager. + *

+ */ +export class GetAccountStatusCommand extends $Command< + GetAccountStatusCommandInput, + GetAccountStatusCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetAccountStatusCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetAccountStatusCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetAccountStatusRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetAccountStatusResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetAccountStatusCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetAccountStatusCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetAccountStatusCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetAssessmentCommand.ts b/clients/client-auditmanager/commands/GetAssessmentCommand.ts new file mode 100644 index 0000000000000..d072b34a363fb --- /dev/null +++ b/clients/client-auditmanager/commands/GetAssessmentCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetAssessmentRequest, GetAssessmentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetAssessmentCommand, + serializeAws_restJson1GetAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetAssessmentCommandInput = GetAssessmentRequest; +export type GetAssessmentCommandOutput = GetAssessmentResponse & __MetadataBearer; + +/** + *

+ * Returns an assessment from AWS Audit Manager. + *

+ */ +export class GetAssessmentCommand extends $Command< + GetAssessmentCommandInput, + GetAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetAssessmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetAssessmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetAssessmentFrameworkCommand.ts b/clients/client-auditmanager/commands/GetAssessmentFrameworkCommand.ts new file mode 100644 index 0000000000000..6fe4cc195784a --- /dev/null +++ b/clients/client-auditmanager/commands/GetAssessmentFrameworkCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetAssessmentFrameworkRequest, GetAssessmentFrameworkResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetAssessmentFrameworkCommand, + serializeAws_restJson1GetAssessmentFrameworkCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetAssessmentFrameworkCommandInput = GetAssessmentFrameworkRequest; +export type GetAssessmentFrameworkCommandOutput = GetAssessmentFrameworkResponse & __MetadataBearer; + +/** + *

+ * Returns a framework from AWS Audit Manager. + *

+ */ +export class GetAssessmentFrameworkCommand extends $Command< + GetAssessmentFrameworkCommandInput, + GetAssessmentFrameworkCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetAssessmentFrameworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetAssessmentFrameworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetAssessmentFrameworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetAssessmentFrameworkResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetAssessmentFrameworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetAssessmentFrameworkCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetAssessmentFrameworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetAssessmentReportUrlCommand.ts b/clients/client-auditmanager/commands/GetAssessmentReportUrlCommand.ts new file mode 100644 index 0000000000000..c491fbb061cf7 --- /dev/null +++ b/clients/client-auditmanager/commands/GetAssessmentReportUrlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetAssessmentReportUrlRequest, GetAssessmentReportUrlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetAssessmentReportUrlCommand, + serializeAws_restJson1GetAssessmentReportUrlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetAssessmentReportUrlCommandInput = GetAssessmentReportUrlRequest; +export type GetAssessmentReportUrlCommandOutput = GetAssessmentReportUrlResponse & __MetadataBearer; + +/** + *

+ * Returns the URL of a specified assessment report in AWS Audit Manager. + *

+ */ +export class GetAssessmentReportUrlCommand extends $Command< + GetAssessmentReportUrlCommandInput, + GetAssessmentReportUrlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetAssessmentReportUrlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetAssessmentReportUrlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetAssessmentReportUrlRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetAssessmentReportUrlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetAssessmentReportUrlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetAssessmentReportUrlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetAssessmentReportUrlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetChangeLogsCommand.ts b/clients/client-auditmanager/commands/GetChangeLogsCommand.ts new file mode 100644 index 0000000000000..16f37b40575d4 --- /dev/null +++ b/clients/client-auditmanager/commands/GetChangeLogsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetChangeLogsRequest, GetChangeLogsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetChangeLogsCommand, + serializeAws_restJson1GetChangeLogsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetChangeLogsCommandInput = GetChangeLogsRequest; +export type GetChangeLogsCommandOutput = GetChangeLogsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of changelogs from AWS Audit Manager. + *

+ */ +export class GetChangeLogsCommand extends $Command< + GetChangeLogsCommandInput, + GetChangeLogsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetChangeLogsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetChangeLogsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetChangeLogsRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetChangeLogsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetChangeLogsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetChangeLogsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetChangeLogsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetControlCommand.ts b/clients/client-auditmanager/commands/GetControlCommand.ts new file mode 100644 index 0000000000000..70270b7c9cbc4 --- /dev/null +++ b/clients/client-auditmanager/commands/GetControlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetControlRequest, GetControlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetControlCommand, + serializeAws_restJson1GetControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetControlCommandInput = GetControlRequest; +export type GetControlCommandOutput = GetControlResponse & __MetadataBearer; + +/** + *

+ * Returns a control from AWS Audit Manager. + *

+ */ +export class GetControlCommand extends $Command< + GetControlCommandInput, + GetControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetControlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetDelegationsCommand.ts b/clients/client-auditmanager/commands/GetDelegationsCommand.ts new file mode 100644 index 0000000000000..9acd0fa81b409 --- /dev/null +++ b/clients/client-auditmanager/commands/GetDelegationsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetDelegationsRequest, GetDelegationsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetDelegationsCommand, + serializeAws_restJson1GetDelegationsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetDelegationsCommandInput = GetDelegationsRequest; +export type GetDelegationsCommandOutput = GetDelegationsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of delegations from an audit owner to a delegate. + *

+ */ +export class GetDelegationsCommand extends $Command< + GetDelegationsCommandInput, + GetDelegationsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetDelegationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetDelegationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetDelegationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetDelegationsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetDelegationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetDelegationsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetDelegationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetEvidenceByEvidenceFolderCommand.ts b/clients/client-auditmanager/commands/GetEvidenceByEvidenceFolderCommand.ts new file mode 100644 index 0000000000000..38710bf1c592e --- /dev/null +++ b/clients/client-auditmanager/commands/GetEvidenceByEvidenceFolderCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetEvidenceByEvidenceFolderRequest, GetEvidenceByEvidenceFolderResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetEvidenceByEvidenceFolderCommand, + serializeAws_restJson1GetEvidenceByEvidenceFolderCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEvidenceByEvidenceFolderCommandInput = GetEvidenceByEvidenceFolderRequest; +export type GetEvidenceByEvidenceFolderCommandOutput = GetEvidenceByEvidenceFolderResponse & __MetadataBearer; + +/** + *

+ * Returns all evidence from a specified evidence folder in AWS Audit Manager. + *

+ */ +export class GetEvidenceByEvidenceFolderCommand extends $Command< + GetEvidenceByEvidenceFolderCommandInput, + GetEvidenceByEvidenceFolderCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEvidenceByEvidenceFolderCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetEvidenceByEvidenceFolderCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEvidenceByEvidenceFolderRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEvidenceByEvidenceFolderResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetEvidenceByEvidenceFolderCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetEvidenceByEvidenceFolderCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetEvidenceByEvidenceFolderCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetEvidenceCommand.ts b/clients/client-auditmanager/commands/GetEvidenceCommand.ts new file mode 100644 index 0000000000000..1c8c9c1aed00b --- /dev/null +++ b/clients/client-auditmanager/commands/GetEvidenceCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetEvidenceRequest, GetEvidenceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetEvidenceCommand, + serializeAws_restJson1GetEvidenceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEvidenceCommandInput = GetEvidenceRequest; +export type GetEvidenceCommandOutput = GetEvidenceResponse & __MetadataBearer; + +/** + *

+ * Returns evidence from AWS Audit Manager. + *

+ */ +export class GetEvidenceCommand extends $Command< + GetEvidenceCommandInput, + GetEvidenceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEvidenceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetEvidenceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEvidenceRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEvidenceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetEvidenceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetEvidenceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetEvidenceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetEvidenceFolderCommand.ts b/clients/client-auditmanager/commands/GetEvidenceFolderCommand.ts new file mode 100644 index 0000000000000..22ea537219f68 --- /dev/null +++ b/clients/client-auditmanager/commands/GetEvidenceFolderCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetEvidenceFolderRequest, GetEvidenceFolderResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetEvidenceFolderCommand, + serializeAws_restJson1GetEvidenceFolderCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEvidenceFolderCommandInput = GetEvidenceFolderRequest; +export type GetEvidenceFolderCommandOutput = GetEvidenceFolderResponse & __MetadataBearer; + +/** + *

+ * Returns an evidence folder from the specified assessment in AWS Audit Manager. + *

+ */ +export class GetEvidenceFolderCommand extends $Command< + GetEvidenceFolderCommandInput, + GetEvidenceFolderCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEvidenceFolderCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetEvidenceFolderCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEvidenceFolderRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEvidenceFolderResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetEvidenceFolderCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetEvidenceFolderCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetEvidenceFolderCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentCommand.ts b/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentCommand.ts new file mode 100644 index 0000000000000..aac3e029c3938 --- /dev/null +++ b/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentCommand.ts @@ -0,0 +1,96 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetEvidenceFoldersByAssessmentRequest, GetEvidenceFoldersByAssessmentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetEvidenceFoldersByAssessmentCommand, + serializeAws_restJson1GetEvidenceFoldersByAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEvidenceFoldersByAssessmentCommandInput = GetEvidenceFoldersByAssessmentRequest; +export type GetEvidenceFoldersByAssessmentCommandOutput = GetEvidenceFoldersByAssessmentResponse & __MetadataBearer; + +/** + *

+ * Returns the evidence folders from a specified assessment in AWS Audit Manager. + *

+ */ +export class GetEvidenceFoldersByAssessmentCommand extends $Command< + GetEvidenceFoldersByAssessmentCommandInput, + GetEvidenceFoldersByAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEvidenceFoldersByAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetEvidenceFoldersByAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEvidenceFoldersByAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEvidenceFoldersByAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: GetEvidenceFoldersByAssessmentCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1GetEvidenceFoldersByAssessmentCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetEvidenceFoldersByAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentControlCommand.ts b/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentControlCommand.ts new file mode 100644 index 0000000000000..cce1ce2c1e8d3 --- /dev/null +++ b/clients/client-auditmanager/commands/GetEvidenceFoldersByAssessmentControlCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + GetEvidenceFoldersByAssessmentControlRequest, + GetEvidenceFoldersByAssessmentControlResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand, + serializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEvidenceFoldersByAssessmentControlCommandInput = GetEvidenceFoldersByAssessmentControlRequest; +export type GetEvidenceFoldersByAssessmentControlCommandOutput = GetEvidenceFoldersByAssessmentControlResponse & + __MetadataBearer; + +/** + *

+ * Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager. + *

+ */ +export class GetEvidenceFoldersByAssessmentControlCommand extends $Command< + GetEvidenceFoldersByAssessmentControlCommandInput, + GetEvidenceFoldersByAssessmentControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEvidenceFoldersByAssessmentControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetEvidenceFoldersByAssessmentControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEvidenceFoldersByAssessmentControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEvidenceFoldersByAssessmentControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: GetEvidenceFoldersByAssessmentControlCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetOrganizationAdminAccountCommand.ts b/clients/client-auditmanager/commands/GetOrganizationAdminAccountCommand.ts new file mode 100644 index 0000000000000..52dca02efac74 --- /dev/null +++ b/clients/client-auditmanager/commands/GetOrganizationAdminAccountCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetOrganizationAdminAccountRequest, GetOrganizationAdminAccountResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetOrganizationAdminAccountCommand, + serializeAws_restJson1GetOrganizationAdminAccountCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetOrganizationAdminAccountCommandInput = GetOrganizationAdminAccountRequest; +export type GetOrganizationAdminAccountCommandOutput = GetOrganizationAdminAccountResponse & __MetadataBearer; + +/** + *

+ * Returns the name of the delegated AWS administrator account for the AWS organization. + *

+ */ +export class GetOrganizationAdminAccountCommand extends $Command< + GetOrganizationAdminAccountCommandInput, + GetOrganizationAdminAccountCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetOrganizationAdminAccountCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetOrganizationAdminAccountCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetOrganizationAdminAccountRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetOrganizationAdminAccountResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetOrganizationAdminAccountCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetOrganizationAdminAccountCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetOrganizationAdminAccountCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetServicesInScopeCommand.ts b/clients/client-auditmanager/commands/GetServicesInScopeCommand.ts new file mode 100644 index 0000000000000..848eef447bf0e --- /dev/null +++ b/clients/client-auditmanager/commands/GetServicesInScopeCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetServicesInScopeRequest, GetServicesInScopeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetServicesInScopeCommand, + serializeAws_restJson1GetServicesInScopeCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetServicesInScopeCommandInput = GetServicesInScopeRequest; +export type GetServicesInScopeCommandOutput = GetServicesInScopeResponse & __MetadataBearer; + +/** + *

+ * Returns a list of the in-scope AWS services for the specified assessment. + *

+ */ +export class GetServicesInScopeCommand extends $Command< + GetServicesInScopeCommandInput, + GetServicesInScopeCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetServicesInScopeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetServicesInScopeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetServicesInScopeRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetServicesInScopeResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetServicesInScopeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetServicesInScopeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetServicesInScopeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/GetSettingsCommand.ts b/clients/client-auditmanager/commands/GetSettingsCommand.ts new file mode 100644 index 0000000000000..b75f1b27cc045 --- /dev/null +++ b/clients/client-auditmanager/commands/GetSettingsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { GetSettingsRequest, GetSettingsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetSettingsCommand, + serializeAws_restJson1GetSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetSettingsCommandInput = GetSettingsRequest; +export type GetSettingsCommandOutput = GetSettingsResponse & __MetadataBearer; + +/** + *

+ * Returns the settings for the specified AWS account. + *

+ */ +export class GetSettingsCommand extends $Command< + GetSettingsCommandInput, + GetSettingsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetSettingsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "GetSettingsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetSettingsRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetSettingsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetSettingsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetSettingsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetSettingsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListAssessmentFrameworksCommand.ts b/clients/client-auditmanager/commands/ListAssessmentFrameworksCommand.ts new file mode 100644 index 0000000000000..e92cd8e1dcbac --- /dev/null +++ b/clients/client-auditmanager/commands/ListAssessmentFrameworksCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListAssessmentFrameworksRequest, ListAssessmentFrameworksResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListAssessmentFrameworksCommand, + serializeAws_restJson1ListAssessmentFrameworksCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListAssessmentFrameworksCommandInput = ListAssessmentFrameworksRequest; +export type ListAssessmentFrameworksCommandOutput = ListAssessmentFrameworksResponse & __MetadataBearer; + +/** + *

+ * Returns a list of the frameworks available in the AWS Audit Manager framework library. + *

+ */ +export class ListAssessmentFrameworksCommand extends $Command< + ListAssessmentFrameworksCommandInput, + ListAssessmentFrameworksCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAssessmentFrameworksCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListAssessmentFrameworksCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAssessmentFrameworksRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAssessmentFrameworksResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAssessmentFrameworksCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListAssessmentFrameworksCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListAssessmentFrameworksCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListAssessmentReportsCommand.ts b/clients/client-auditmanager/commands/ListAssessmentReportsCommand.ts new file mode 100644 index 0000000000000..1a6a42d48af59 --- /dev/null +++ b/clients/client-auditmanager/commands/ListAssessmentReportsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListAssessmentReportsRequest, ListAssessmentReportsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListAssessmentReportsCommand, + serializeAws_restJson1ListAssessmentReportsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListAssessmentReportsCommandInput = ListAssessmentReportsRequest; +export type ListAssessmentReportsCommandOutput = ListAssessmentReportsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of assessment reports created in AWS Audit Manager. + *

+ */ +export class ListAssessmentReportsCommand extends $Command< + ListAssessmentReportsCommandInput, + ListAssessmentReportsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAssessmentReportsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListAssessmentReportsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAssessmentReportsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAssessmentReportsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAssessmentReportsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListAssessmentReportsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListAssessmentReportsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListAssessmentsCommand.ts b/clients/client-auditmanager/commands/ListAssessmentsCommand.ts new file mode 100644 index 0000000000000..240cd776235b8 --- /dev/null +++ b/clients/client-auditmanager/commands/ListAssessmentsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListAssessmentsRequest, ListAssessmentsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListAssessmentsCommand, + serializeAws_restJson1ListAssessmentsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListAssessmentsCommandInput = ListAssessmentsRequest; +export type ListAssessmentsCommandOutput = ListAssessmentsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of current and past assessments from AWS Audit Manager. + *

+ */ +export class ListAssessmentsCommand extends $Command< + ListAssessmentsCommandInput, + ListAssessmentsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAssessmentsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListAssessmentsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAssessmentsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAssessmentsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAssessmentsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListAssessmentsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListAssessmentsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListControlsCommand.ts b/clients/client-auditmanager/commands/ListControlsCommand.ts new file mode 100644 index 0000000000000..8c86b7ed80642 --- /dev/null +++ b/clients/client-auditmanager/commands/ListControlsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListControlsRequest, ListControlsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListControlsCommand, + serializeAws_restJson1ListControlsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListControlsCommandInput = ListControlsRequest; +export type ListControlsCommandOutput = ListControlsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of controls from AWS Audit Manager. + *

+ */ +export class ListControlsCommand extends $Command< + ListControlsCommandInput, + ListControlsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListControlsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListControlsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListControlsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListControlsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListControlsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListControlsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListControlsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListKeywordsForDataSourceCommand.ts b/clients/client-auditmanager/commands/ListKeywordsForDataSourceCommand.ts new file mode 100644 index 0000000000000..7351b90c8a44f --- /dev/null +++ b/clients/client-auditmanager/commands/ListKeywordsForDataSourceCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListKeywordsForDataSourceRequest, ListKeywordsForDataSourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListKeywordsForDataSourceCommand, + serializeAws_restJson1ListKeywordsForDataSourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListKeywordsForDataSourceCommandInput = ListKeywordsForDataSourceRequest; +export type ListKeywordsForDataSourceCommandOutput = ListKeywordsForDataSourceResponse & __MetadataBearer; + +/** + *

+ * Returns a list of keywords that pre-mapped to the specified control data source. + *

+ */ +export class ListKeywordsForDataSourceCommand extends $Command< + ListKeywordsForDataSourceCommandInput, + ListKeywordsForDataSourceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListKeywordsForDataSourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListKeywordsForDataSourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListKeywordsForDataSourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListKeywordsForDataSourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListKeywordsForDataSourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListKeywordsForDataSourceCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ListKeywordsForDataSourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListNotificationsCommand.ts b/clients/client-auditmanager/commands/ListNotificationsCommand.ts new file mode 100644 index 0000000000000..0600e82de95fb --- /dev/null +++ b/clients/client-auditmanager/commands/ListNotificationsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListNotificationsRequest, ListNotificationsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListNotificationsCommand, + serializeAws_restJson1ListNotificationsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListNotificationsCommandInput = ListNotificationsRequest; +export type ListNotificationsCommandOutput = ListNotificationsResponse & __MetadataBearer; + +/** + *

+ * Returns a list of all AWS Audit Manager notifications. + *

+ */ +export class ListNotificationsCommand extends $Command< + ListNotificationsCommandInput, + ListNotificationsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListNotificationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListNotificationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListNotificationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListNotificationsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListNotificationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListNotificationsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListNotificationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ListTagsForResourceCommand.ts b/clients/client-auditmanager/commands/ListTagsForResourceCommand.ts new file mode 100644 index 0000000000000..1ce31a91c7037 --- /dev/null +++ b/clients/client-auditmanager/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListTagsForResourceCommand, + serializeAws_restJson1ListTagsForResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; +export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; + +/** + *

+ * Returns a list of tags for the specified resource in AWS Audit Manager. + *

+ */ +export class ListTagsForResourceCommand extends $Command< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTagsForResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ListTagsForResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTagsForResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTagsForResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTagsForResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListTagsForResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListTagsForResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/RegisterAccountCommand.ts b/clients/client-auditmanager/commands/RegisterAccountCommand.ts new file mode 100644 index 0000000000000..7ea319c47f65f --- /dev/null +++ b/clients/client-auditmanager/commands/RegisterAccountCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { RegisterAccountRequest, RegisterAccountResponse } from "../models/models_0"; +import { + deserializeAws_restJson1RegisterAccountCommand, + serializeAws_restJson1RegisterAccountCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type RegisterAccountCommandInput = RegisterAccountRequest; +export type RegisterAccountCommandOutput = RegisterAccountResponse & __MetadataBearer; + +/** + *

+ * Enables AWS Audit Manager for the specified AWS account. + *

+ */ +export class RegisterAccountCommand extends $Command< + RegisterAccountCommandInput, + RegisterAccountCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RegisterAccountCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "RegisterAccountCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RegisterAccountRequest.filterSensitiveLog, + outputFilterSensitiveLog: RegisterAccountResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RegisterAccountCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1RegisterAccountCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1RegisterAccountCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/RegisterOrganizationAdminAccountCommand.ts b/clients/client-auditmanager/commands/RegisterOrganizationAdminAccountCommand.ts new file mode 100644 index 0000000000000..517bb1b747558 --- /dev/null +++ b/clients/client-auditmanager/commands/RegisterOrganizationAdminAccountCommand.ts @@ -0,0 +1,96 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { RegisterOrganizationAdminAccountRequest, RegisterOrganizationAdminAccountResponse } from "../models/models_0"; +import { + deserializeAws_restJson1RegisterOrganizationAdminAccountCommand, + serializeAws_restJson1RegisterOrganizationAdminAccountCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type RegisterOrganizationAdminAccountCommandInput = RegisterOrganizationAdminAccountRequest; +export type RegisterOrganizationAdminAccountCommandOutput = RegisterOrganizationAdminAccountResponse & __MetadataBearer; + +/** + *

+ * Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager. + *

+ */ +export class RegisterOrganizationAdminAccountCommand extends $Command< + RegisterOrganizationAdminAccountCommandInput, + RegisterOrganizationAdminAccountCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RegisterOrganizationAdminAccountCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "RegisterOrganizationAdminAccountCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RegisterOrganizationAdminAccountRequest.filterSensitiveLog, + outputFilterSensitiveLog: RegisterOrganizationAdminAccountResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: RegisterOrganizationAdminAccountCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1RegisterOrganizationAdminAccountCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1RegisterOrganizationAdminAccountCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/TagResourceCommand.ts b/clients/client-auditmanager/commands/TagResourceCommand.ts new file mode 100644 index 0000000000000..976e8eb6a518e --- /dev/null +++ b/clients/client-auditmanager/commands/TagResourceCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1TagResourceCommand, + serializeAws_restJson1TagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type TagResourceCommandInput = TagResourceRequest; +export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; + +/** + *

+ * Tags the specified resource in AWS Audit Manager. + *

+ */ +export class TagResourceCommand extends $Command< + TagResourceCommandInput, + TagResourceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: TagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "TagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: TagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: TagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: TagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1TagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1TagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UntagResourceCommand.ts b/clients/client-auditmanager/commands/UntagResourceCommand.ts new file mode 100644 index 0000000000000..9223b9c2fceb9 --- /dev/null +++ b/clients/client-auditmanager/commands/UntagResourceCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UntagResourceCommand, + serializeAws_restJson1UntagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UntagResourceCommandInput = UntagResourceRequest; +export type UntagResourceCommandOutput = UntagResourceResponse & __MetadataBearer; + +/** + *

+ * Removes a tag from a resource in AWS Audit Manager. + *

+ */ +export class UntagResourceCommand extends $Command< + UntagResourceCommandInput, + UntagResourceCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UntagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UntagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UntagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: UntagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UntagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UntagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UntagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateAssessmentCommand.ts b/clients/client-auditmanager/commands/UpdateAssessmentCommand.ts new file mode 100644 index 0000000000000..e8d0b75b4fdc9 --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateAssessmentCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateAssessmentRequest, UpdateAssessmentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateAssessmentCommand, + serializeAws_restJson1UpdateAssessmentCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateAssessmentCommandInput = UpdateAssessmentRequest; +export type UpdateAssessmentCommandOutput = UpdateAssessmentResponse & __MetadataBearer; + +/** + *

+ * Edits an AWS Audit Manager assessment. + *

+ */ +export class UpdateAssessmentCommand extends $Command< + UpdateAssessmentCommandInput, + UpdateAssessmentCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAssessmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateAssessmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAssessmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateAssessmentResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateAssessmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateAssessmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateAssessmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateAssessmentControlCommand.ts b/clients/client-auditmanager/commands/UpdateAssessmentControlCommand.ts new file mode 100644 index 0000000000000..6f47cad4e9acb --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateAssessmentControlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateAssessmentControlRequest, UpdateAssessmentControlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateAssessmentControlCommand, + serializeAws_restJson1UpdateAssessmentControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateAssessmentControlCommandInput = UpdateAssessmentControlRequest; +export type UpdateAssessmentControlCommandOutput = UpdateAssessmentControlResponse & __MetadataBearer; + +/** + *

+ * Updates a control within an assessment in AWS Audit Manager. + *

+ */ +export class UpdateAssessmentControlCommand extends $Command< + UpdateAssessmentControlCommandInput, + UpdateAssessmentControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAssessmentControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateAssessmentControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAssessmentControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateAssessmentControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateAssessmentControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateAssessmentControlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateAssessmentControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateAssessmentControlSetStatusCommand.ts b/clients/client-auditmanager/commands/UpdateAssessmentControlSetStatusCommand.ts new file mode 100644 index 0000000000000..931203a1aed81 --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateAssessmentControlSetStatusCommand.ts @@ -0,0 +1,96 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateAssessmentControlSetStatusRequest, UpdateAssessmentControlSetStatusResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateAssessmentControlSetStatusCommand, + serializeAws_restJson1UpdateAssessmentControlSetStatusCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateAssessmentControlSetStatusCommandInput = UpdateAssessmentControlSetStatusRequest; +export type UpdateAssessmentControlSetStatusCommandOutput = UpdateAssessmentControlSetStatusResponse & __MetadataBearer; + +/** + *

+ * Updates the status of a control set in an AWS Audit Manager assessment. + *

+ */ +export class UpdateAssessmentControlSetStatusCommand extends $Command< + UpdateAssessmentControlSetStatusCommandInput, + UpdateAssessmentControlSetStatusCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAssessmentControlSetStatusCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateAssessmentControlSetStatusCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAssessmentControlSetStatusRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateAssessmentControlSetStatusResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: UpdateAssessmentControlSetStatusCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateAssessmentControlSetStatusCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1UpdateAssessmentControlSetStatusCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateAssessmentFrameworkCommand.ts b/clients/client-auditmanager/commands/UpdateAssessmentFrameworkCommand.ts new file mode 100644 index 0000000000000..11d4bb0c04c3a --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateAssessmentFrameworkCommand.ts @@ -0,0 +1,93 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateAssessmentFrameworkRequest, UpdateAssessmentFrameworkResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateAssessmentFrameworkCommand, + serializeAws_restJson1UpdateAssessmentFrameworkCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateAssessmentFrameworkCommandInput = UpdateAssessmentFrameworkRequest; +export type UpdateAssessmentFrameworkCommandOutput = UpdateAssessmentFrameworkResponse & __MetadataBearer; + +/** + *

+ * Updates a custom framework in AWS Audit Manager. + *

+ */ +export class UpdateAssessmentFrameworkCommand extends $Command< + UpdateAssessmentFrameworkCommandInput, + UpdateAssessmentFrameworkCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAssessmentFrameworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateAssessmentFrameworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAssessmentFrameworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateAssessmentFrameworkResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateAssessmentFrameworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateAssessmentFrameworkCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1UpdateAssessmentFrameworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateAssessmentStatusCommand.ts b/clients/client-auditmanager/commands/UpdateAssessmentStatusCommand.ts new file mode 100644 index 0000000000000..a7dcaa500d005 --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateAssessmentStatusCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateAssessmentStatusRequest, UpdateAssessmentStatusResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateAssessmentStatusCommand, + serializeAws_restJson1UpdateAssessmentStatusCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateAssessmentStatusCommandInput = UpdateAssessmentStatusRequest; +export type UpdateAssessmentStatusCommandOutput = UpdateAssessmentStatusResponse & __MetadataBearer; + +/** + *

+ * Updates the status of an assessment in AWS Audit Manager. + *

+ */ +export class UpdateAssessmentStatusCommand extends $Command< + UpdateAssessmentStatusCommandInput, + UpdateAssessmentStatusCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAssessmentStatusCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateAssessmentStatusCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAssessmentStatusRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateAssessmentStatusResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateAssessmentStatusCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateAssessmentStatusCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateAssessmentStatusCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateControlCommand.ts b/clients/client-auditmanager/commands/UpdateControlCommand.ts new file mode 100644 index 0000000000000..4af1508e3d401 --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateControlCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateControlRequest, UpdateControlResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateControlCommand, + serializeAws_restJson1UpdateControlCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateControlCommandInput = UpdateControlRequest; +export type UpdateControlCommandOutput = UpdateControlResponse & __MetadataBearer; + +/** + *

+ * Updates a custom control in AWS Audit Manager. + *

+ */ +export class UpdateControlCommand extends $Command< + UpdateControlCommandInput, + UpdateControlCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateControlCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateControlCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateControlRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateControlResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateControlCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateControlCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/UpdateSettingsCommand.ts b/clients/client-auditmanager/commands/UpdateSettingsCommand.ts new file mode 100644 index 0000000000000..16c330033ded7 --- /dev/null +++ b/clients/client-auditmanager/commands/UpdateSettingsCommand.ts @@ -0,0 +1,90 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { UpdateSettingsRequest, UpdateSettingsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateSettingsCommand, + serializeAws_restJson1UpdateSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateSettingsCommandInput = UpdateSettingsRequest; +export type UpdateSettingsCommandOutput = UpdateSettingsResponse & __MetadataBearer; + +/** + *

+ * Updates AWS Audit Manager settings for the current user account. + *

+ */ +export class UpdateSettingsCommand extends $Command< + UpdateSettingsCommandInput, + UpdateSettingsCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateSettingsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "UpdateSettingsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateSettingsRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateSettingsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateSettingsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateSettingsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateSettingsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/commands/ValidateAssessmentReportIntegrityCommand.ts b/clients/client-auditmanager/commands/ValidateAssessmentReportIntegrityCommand.ts new file mode 100644 index 0000000000000..1ae79c62e81a0 --- /dev/null +++ b/clients/client-auditmanager/commands/ValidateAssessmentReportIntegrityCommand.ts @@ -0,0 +1,100 @@ +import { AuditManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AuditManagerClient"; +import { + ValidateAssessmentReportIntegrityRequest, + ValidateAssessmentReportIntegrityResponse, +} from "../models/models_0"; +import { + deserializeAws_restJson1ValidateAssessmentReportIntegrityCommand, + serializeAws_restJson1ValidateAssessmentReportIntegrityCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ValidateAssessmentReportIntegrityCommandInput = ValidateAssessmentReportIntegrityRequest; +export type ValidateAssessmentReportIntegrityCommandOutput = ValidateAssessmentReportIntegrityResponse & + __MetadataBearer; + +/** + *

+ * Validates the integrity of an assessment report in AWS Audit Manager. + *

+ */ +export class ValidateAssessmentReportIntegrityCommand extends $Command< + ValidateAssessmentReportIntegrityCommandInput, + ValidateAssessmentReportIntegrityCommandOutput, + AuditManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ValidateAssessmentReportIntegrityCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AuditManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AuditManagerClient"; + const commandName = "ValidateAssessmentReportIntegrityCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ValidateAssessmentReportIntegrityRequest.filterSensitiveLog, + outputFilterSensitiveLog: ValidateAssessmentReportIntegrityResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ValidateAssessmentReportIntegrityCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1ValidateAssessmentReportIntegrityCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ValidateAssessmentReportIntegrityCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-auditmanager/endpoints.ts b/clients/client-auditmanager/endpoints.ts new file mode 100644 index 0000000000000..ee50420b6b7c5 --- /dev/null +++ b/clients/client-auditmanager/endpoints.ts @@ -0,0 +1,81 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "auditmanager.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "auditmanager.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "auditmanager.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "auditmanager.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "auditmanager.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-east-1", "us-gov-west-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region), + partition: "aws-cn", + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region), + partition: "aws-iso", + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), + partition: "aws-iso-b", + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), + partition: "aws-us-gov", + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-auditmanager/index.ts b/clients/client-auditmanager/index.ts new file mode 100644 index 0000000000000..57d965dde336b --- /dev/null +++ b/clients/client-auditmanager/index.ts @@ -0,0 +1,66 @@ +export * from "./AuditManagerClient"; +export * from "./AuditManager"; +export * from "./commands/AssociateAssessmentReportEvidenceFolderCommand"; +export * from "./commands/BatchAssociateAssessmentReportEvidenceCommand"; +export * from "./commands/BatchCreateDelegationByAssessmentCommand"; +export * from "./commands/BatchDeleteDelegationByAssessmentCommand"; +export * from "./commands/BatchDisassociateAssessmentReportEvidenceCommand"; +export * from "./commands/BatchImportEvidenceToAssessmentControlCommand"; +export * from "./commands/CreateAssessmentCommand"; +export * from "./commands/CreateAssessmentFrameworkCommand"; +export * from "./commands/CreateAssessmentReportCommand"; +export * from "./commands/CreateControlCommand"; +export * from "./commands/DeleteAssessmentCommand"; +export * from "./commands/DeleteAssessmentFrameworkCommand"; +export * from "./commands/DeleteAssessmentReportCommand"; +export * from "./commands/DeleteControlCommand"; +export * from "./commands/DeregisterAccountCommand"; +export * from "./commands/DeregisterOrganizationAdminAccountCommand"; +export * from "./commands/DisassociateAssessmentReportEvidenceFolderCommand"; +export * from "./commands/GetAccountStatusCommand"; +export * from "./commands/GetAssessmentCommand"; +export * from "./commands/GetAssessmentFrameworkCommand"; +export * from "./commands/GetAssessmentReportUrlCommand"; +export * from "./commands/GetChangeLogsCommand"; +export * from "./pagination/GetChangeLogsPaginator"; +export * from "./commands/GetControlCommand"; +export * from "./commands/GetDelegationsCommand"; +export * from "./pagination/GetDelegationsPaginator"; +export * from "./commands/GetEvidenceCommand"; +export * from "./commands/GetEvidenceByEvidenceFolderCommand"; +export * from "./pagination/GetEvidenceByEvidenceFolderPaginator"; +export * from "./commands/GetEvidenceFolderCommand"; +export * from "./commands/GetEvidenceFoldersByAssessmentCommand"; +export * from "./pagination/GetEvidenceFoldersByAssessmentPaginator"; +export * from "./commands/GetEvidenceFoldersByAssessmentControlCommand"; +export * from "./pagination/GetEvidenceFoldersByAssessmentControlPaginator"; +export * from "./commands/GetOrganizationAdminAccountCommand"; +export * from "./commands/GetServicesInScopeCommand"; +export * from "./commands/GetSettingsCommand"; +export * from "./commands/ListAssessmentFrameworksCommand"; +export * from "./pagination/ListAssessmentFrameworksPaginator"; +export * from "./commands/ListAssessmentReportsCommand"; +export * from "./pagination/ListAssessmentReportsPaginator"; +export * from "./commands/ListAssessmentsCommand"; +export * from "./pagination/ListAssessmentsPaginator"; +export * from "./commands/ListControlsCommand"; +export * from "./pagination/ListControlsPaginator"; +export * from "./commands/ListKeywordsForDataSourceCommand"; +export * from "./pagination/ListKeywordsForDataSourcePaginator"; +export * from "./commands/ListNotificationsCommand"; +export * from "./pagination/ListNotificationsPaginator"; +export * from "./commands/ListTagsForResourceCommand"; +export * from "./commands/RegisterAccountCommand"; +export * from "./commands/RegisterOrganizationAdminAccountCommand"; +export * from "./commands/TagResourceCommand"; +export * from "./commands/UntagResourceCommand"; +export * from "./commands/UpdateAssessmentCommand"; +export * from "./commands/UpdateAssessmentControlCommand"; +export * from "./commands/UpdateAssessmentControlSetStatusCommand"; +export * from "./commands/UpdateAssessmentFrameworkCommand"; +export * from "./commands/UpdateAssessmentStatusCommand"; +export * from "./commands/UpdateControlCommand"; +export * from "./commands/UpdateSettingsCommand"; +export * from "./commands/ValidateAssessmentReportIntegrityCommand"; +export * from "./pagination/Interfaces"; +export * from "./models/index"; diff --git a/clients/client-auditmanager/models/index.ts b/clients/client-auditmanager/models/index.ts new file mode 100644 index 0000000000000..09c5d6e09b8c5 --- /dev/null +++ b/clients/client-auditmanager/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-auditmanager/models/models_0.ts b/clients/client-auditmanager/models/models_0.ts new file mode 100644 index 0000000000000..2a5f8f6a757cf --- /dev/null +++ b/clients/client-auditmanager/models/models_0.ts @@ -0,0 +1,4702 @@ +import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +/** + *

+ * You do not have sufficient access to perform this action. + *

+ */ +export interface AccessDeniedException extends __SmithyException, $MetadataBearer { + name: "AccessDeniedException"; + $fault: "client"; + message: string | undefined; +} + +export namespace AccessDeniedException { + export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ + ...obj, + }); +} + +export enum AccountStatus { + ACTIVE = "ACTIVE", + INACTIVE = "INACTIVE", + PENDING_ACTIVATION = "PENDING_ACTIVATION", +} + +export enum ActionEnum { + ACTIVE = "ACTIVE", + CREATE = "CREATE", + DELETE = "DELETE", + IMPORT_EVIDENCE = "IMPORT_EVIDENCE", + INACTIVE = "INACTIVE", + REVIEWED = "REVIEWED", + UNDER_REVIEW = "UNDER_REVIEW", + UPDATE_METADATA = "UPDATE_METADATA", +} + +/** + *

+ * The wrapper of AWS account details, such as account ID, email address, and so on. + *

+ */ +export interface AWSAccount { + /** + *

+ * The identifier for the specified AWS account. + *

+ */ + id?: string; + + /** + *

+ * The email address associated with the specified AWS account. + *

+ */ + emailAddress?: string; + + /** + *

+ * The name of the specified AWS account. + *

+ */ + name?: string; +} + +export namespace AWSAccount { + export const filterSensitiveLog = (obj: AWSAccount): any => ({ + ...obj, + }); +} + +/** + *

+ * A comment posted by a user on a control. This includes the author's name, the comment text, and a timestamp. + *

+ */ +export interface ControlComment { + /** + *

+ * The name of the user who authored the comment. + *

+ */ + authorName?: string; + + /** + *

+ * The body text of a control comment. + *

+ */ + commentBody?: string; + + /** + *

+ * The time when the comment was posted. + *

+ */ + postedDate?: Date; +} + +export namespace ControlComment { + export const filterSensitiveLog = (obj: ControlComment): any => ({ + ...obj, + }); +} + +export enum ControlResponse { + AUTOMATE = "AUTOMATE", + DEFER = "DEFER", + IGNORE = "IGNORE", + MANUAL = "MANUAL", +} + +export enum ControlStatus { + INACTIVE = "INACTIVE", + REVIEWED = "REVIEWED", + UNDER_REVIEW = "UNDER_REVIEW", +} + +/** + *

+ * The control entity that represents a standard or custom control used in an AWS Audit Manager assessment. + *

+ */ +export interface AssessmentControl { + /** + *

+ * The identifier for the specified control. + *

+ */ + id?: string; + + /** + *

+ * The name of the specified control. + *

+ */ + name?: string; + + /** + *

+ * The description of the specified control. + *

+ */ + description?: string; + + /** + *

+ * The status of the specified control. + *

+ */ + status?: ControlStatus | string; + + /** + *

+ * The response of the specified control. + *

+ */ + response?: ControlResponse | string; + + /** + *

+ * The list of comments attached to the specified control. + *

+ */ + comments?: ControlComment[]; + + /** + *

+ * The list of data sources for the specified evidence. + *

+ */ + evidenceSources?: string[]; + + /** + *

+ * The amount of evidence generated for the control. + *

+ */ + evidenceCount?: number; + + /** + *

+ * The amount of evidence in the assessment report. + *

+ */ + assessmentReportEvidenceCount?: number; +} + +export namespace AssessmentControl { + export const filterSensitiveLog = (obj: AssessmentControl): any => ({ + ...obj, + }); +} + +export enum RoleType { + PROCESS_OWNER = "PROCESS_OWNER", + RESOURCE_OWNER = "RESOURCE_OWNER", +} + +export enum DelegationStatus { + COMPLETE = "COMPLETE", + IN_PROGRESS = "IN_PROGRESS", + UNDER_REVIEW = "UNDER_REVIEW", +} + +/** + *

+ * The assignment of a control set to a delegate for review. + *

+ */ +export interface Delegation { + /** + *

+ * The unique identifier for the delegation. + *

+ */ + id?: string; + + /** + *

+ * The name of the associated assessment. + *

+ */ + assessmentName?: string; + + /** + *

+ * The identifier for the associated assessment. + *

+ */ + assessmentId?: string; + + /** + *

+ * The status of the delegation. + *

+ */ + status?: DelegationStatus | string; + + /** + *

+ * The Amazon Resource Name (ARN) of the IAM role. + *

+ */ + roleArn?: string; + + /** + *

+ * The type of customer persona. + *

+ * + *

In CreateAssessment, roleType can only be PROCESS_OWNER.

+ *

In UpdateSettings, roleType can only be PROCESS_OWNER.

+ *

In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

+ *
+ */ + roleType?: RoleType | string; + + /** + *

Specifies when the delegation was created.

+ */ + creationTime?: Date; + + /** + *

+ * Specifies when the delegation was last updated. + *

+ */ + lastUpdated?: Date; + + /** + *

+ * The identifier for the associated control set. + *

+ */ + controlSetId?: string; + + /** + *

+ * The comment related to the delegation. + *

+ */ + comment?: string; + + /** + *

The IAM user or role that created the delegation.

+ */ + createdBy?: string; +} + +export namespace Delegation { + export const filterSensitiveLog = (obj: Delegation): any => ({ + ...obj, + }); +} + +/** + *

+ * The wrapper that contains AWS Audit Manager role information, such as the role type and IAM Amazon Resource Name (ARN). + *

+ */ +export interface Role { + /** + *

+ * The type of customer persona. + *

+ * + *

In CreateAssessment, roleType can only be PROCESS_OWNER.

+ *

In UpdateSettings, roleType can only be PROCESS_OWNER.

+ *

In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

+ *
+ */ + roleType?: RoleType | string; + + /** + *

+ * The Amazon Resource Name (ARN) of the IAM role. + *

+ */ + roleArn?: string; +} + +export namespace Role { + export const filterSensitiveLog = (obj: Role): any => ({ + ...obj, + }); +} + +export enum ControlSetStatus { + ACTIVE = "ACTIVE", + REVIEWED = "REVIEWED", + UNDER_REVIEW = "UNDER_REVIEW", +} + +/** + *

+ * Represents a set of controls in an AWS Audit Manager assessment. + *

+ */ +export interface AssessmentControlSet { + /** + *

+ * The identifier of the control set in the assessment. This is the control set name in a plain string format. + *

+ */ + id?: string; + + /** + *

+ * The description for the control set. + *

+ */ + description?: string; + + /** + *

+ * Specifies the current status of the control set. + *

+ */ + status?: ControlSetStatus | string; + + /** + *

+ * The roles associated with the control set. + *

+ */ + roles?: Role[]; + + /** + *

+ * The list of controls contained with the control set. + *

+ */ + controls?: AssessmentControl[]; + + /** + *

+ * The delegations associated with the control set. + *

+ */ + delegations?: Delegation[]; + + /** + *

+ * The total number of evidence objects retrieved automatically for the control set. + *

+ */ + systemEvidenceCount?: number; + + /** + *

+ * The total number of evidence objects uploaded manually to the control set. + *

+ */ + manualEvidenceCount?: number; +} + +export namespace AssessmentControlSet { + export const filterSensitiveLog = (obj: AssessmentControlSet): any => ({ + ...obj, + }); +} + +/** + *

+ * The metadata of a framework, such as the name, ID, description, and so on. + *

+ */ +export interface FrameworkMetadata { + /** + *

+ * The name of the framework. + *

+ */ + name?: string; + + /** + *

+ * The description of the framework. + *

+ */ + description?: string; + + /** + *

+ * The logo associated with the framework. + *

+ */ + logo?: string; + + /** + *

+ * The compliance standard associated with the framework, such as PCI-DSS or HIPAA. + *

+ */ + complianceType?: string; +} + +export namespace FrameworkMetadata { + export const filterSensitiveLog = (obj: FrameworkMetadata): any => ({ + ...obj, + }); +} + +/** + *

+ * The file used to structure and automate AWS Audit Manager assessments for a given compliance standard. + *

+ */ +export interface AssessmentFramework { + /** + *

+ * The unique identifier for the framework. + *

+ */ + id?: string; + + /** + *

+ * The Amazon Resource Name (ARN) of the specified framework. + *

+ */ + arn?: string; + + /** + *

+ * The metadata of a framework, such as the name, ID, description, and so on. + *

+ */ + metadata?: FrameworkMetadata; + + /** + *

+ * The control sets associated with the framework. + *

+ */ + controlSets?: AssessmentControlSet[]; +} + +export namespace AssessmentFramework { + export const filterSensitiveLog = (obj: AssessmentFramework): any => ({ + ...obj, + }); +} + +export enum AssessmentReportDestinationType { + S3 = "S3", +} + +/** + *

+ * The location in which AWS Audit Manager saves assessment reports for the given assessment. + *

+ */ +export interface AssessmentReportsDestination { + /** + *

+ * The destination type, such as Amazon S3. + *

+ */ + destinationType?: AssessmentReportDestinationType | string; + + /** + *

+ * The destination of the assessment report. + *

+ */ + destination?: string; +} + +export namespace AssessmentReportsDestination { + export const filterSensitiveLog = (obj: AssessmentReportsDestination): any => ({ + ...obj, + }); +} + +/** + *

+ * An AWS service such as Amazon S3, AWS CloudTrail, and so on. + *

+ */ +export interface AWSService { + /** + *

+ * The name of the AWS service. + *

+ */ + serviceName?: string; +} + +export namespace AWSService { + export const filterSensitiveLog = (obj: AWSService): any => ({ + ...obj, + }); +} + +/** + *

+ * The wrapper that contains the AWS accounts and AWS services in scope for the assessment. + *

+ */ +export interface Scope { + /** + *

+ * The AWS accounts included in the scope of the assessment. + *

+ */ + awsAccounts?: AWSAccount[]; + + /** + *

+ * The AWS services included in the scope of the assessment. + *

+ */ + awsServices?: AWSService[]; +} + +export namespace Scope { + export const filterSensitiveLog = (obj: Scope): any => ({ + ...obj, + }); +} + +export enum AssessmentStatus { + ACTIVE = "ACTIVE", + INACTIVE = "INACTIVE", +} + +/** + *

+ * The metadata associated with the specified assessment. + *

+ */ +export interface AssessmentMetadata { + /** + *

+ * The name of the assessment. + *

+ */ + name?: string; + + /** + *

+ * The unique identifier for the assessment. + *

+ */ + id?: string; + + /** + *

+ * The description of the assessment. + *

+ */ + description?: string; + + /** + *

+ * The name of a compliance standard related to the assessment, such as PCI-DSS. + *

+ */ + complianceType?: string; + + /** + *

+ * The overall status of the assessment. + *

+ */ + status?: AssessmentStatus | string; + + /** + *

+ * The destination in which evidence reports are stored for the specified assessment. + *

+ */ + assessmentReportsDestination?: AssessmentReportsDestination; + + /** + *

+ * The wrapper of AWS accounts and services in scope for the assessment. + *

+ */ + scope?: Scope; + + /** + *

+ * The roles associated with the assessment. + *

+ */ + roles?: Role[]; + + /** + *

+ * The delegations associated with the assessment. + *

+ */ + delegations?: Delegation[]; + + /** + *

+ * Specifies when the assessment was created. + *

+ */ + creationTime?: Date; + + /** + *

+ * The time of the most recent update. + *

+ */ + lastUpdated?: Date; +} + +export namespace AssessmentMetadata { + export const filterSensitiveLog = (obj: AssessmentMetadata): any => ({ + ...obj, + }); +} + +/** + *

+ * An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. + *

+ */ +export interface Assessment { + /** + *

+ * The Amazon Resource Name (ARN) of the assessment. + *

+ */ + arn?: string; + + /** + *

+ * The AWS account associated with the assessment. + *

+ */ + awsAccount?: AWSAccount; + + /** + *

+ * The metadata for the specified assessment. + *

+ */ + metadata?: AssessmentMetadata; + + /** + *

+ * The framework from which the assessment was created. + *

+ */ + framework?: AssessmentFramework; + + /** + *

+ * The tags associated with the assessment. + *

+ */ + tags?: { [key: string]: string }; +} + +export namespace Assessment { + export const filterSensitiveLog = (obj: Assessment): any => ({ + ...obj, + }); +} + +/** + *

+ * The folder in which AWS Audit Manager stores evidence for an assessment. + *

+ */ +export interface AssessmentEvidenceFolder { + /** + *

+ * The name of the specified evidence folder. + *

+ */ + name?: string; + + /** + *

+ * The date when the first evidence was added to the evidence folder. + *

+ */ + date?: Date; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId?: string; + + /** + *

+ * The identifier for the control set. + *

+ */ + controlSetId?: string; + + /** + *

+ * + * The unique identifier for the specified control. + *

+ */ + controlId?: string; + + /** + *

+ * The identifier for the folder in which evidence is stored. + *

+ */ + id?: string; + + /** + *

+ * The AWS service from which the evidence was collected. + *

+ */ + dataSource?: string; + + /** + *

+ * The name of the user who created the evidence folder. + *

+ */ + author?: string; + + /** + *

+ * The total amount of evidence in the evidence folder. + *

+ */ + totalEvidence?: number; + + /** + *

+ * The total count of evidence included in the assessment report. + *

+ */ + assessmentReportSelectionCount?: number; + + /** + *

+ * The name of the control. + *

+ */ + controlName?: string; + + /** + *

+ * The amount of evidence included in the evidence folder. + *

+ */ + evidenceResourcesIncludedCount?: number; + + /** + *

+ * The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other AWS services such as Amazon EC2, Amazon S3, or IAM. + *

+ */ + evidenceByTypeConfigurationDataCount?: number; + + /** + *

+ * The number of evidence that falls under the manual category. This evidence is imported manually. + *

+ */ + evidenceByTypeManualCount?: number; + + /** + *

+ * The number of evidence that falls under the compliance check category. This evidence is collected from AWS Config or AWS Security Hub. + *

+ */ + evidenceByTypeComplianceCheckCount?: number; + + /** + *

+ * The total number of issues that were reported directly from AWS Security + * Hub, AWS Config, or both. + *

+ */ + evidenceByTypeComplianceCheckIssuesCount?: number; + + /** + *

+ * The number of evidence that falls under the user activity category. This evidence is collected from AWS CloudTrail logs. + *

+ */ + evidenceByTypeUserActivityCount?: number; + + /** + *

+ * The total number of AWS resources assessed to generate the evidence. + *

+ */ + evidenceAwsServiceSourceCount?: number; +} + +export namespace AssessmentEvidenceFolder { + export const filterSensitiveLog = (obj: AssessmentEvidenceFolder): any => ({ + ...obj, + }); +} + +export enum FrameworkType { + CUSTOM = "Custom", + STANDARD = "Standard", +} + +/** + *

+ * The metadata associated with a standard or custom framework. + *

+ */ +export interface AssessmentFrameworkMetadata { + /** + *

+ * The unique identified for the specified framework. + *

+ */ + id?: string; + + /** + *

+ * The framework type, such as standard or custom. + *

+ */ + type?: FrameworkType | string; + + /** + *

+ * The name of the specified framework. + *

+ */ + name?: string; + + /** + *

+ * The description of the specified framework. + *

+ */ + description?: string; + + /** + *

+ * The logo associated with the framework. + *

+ */ + logo?: string; + + /** + *

+ * The compliance type that the new custom framework supports, such as CIS or HIPAA. + *

+ */ + complianceType?: string; + + /** + *

+ * The number of controls associated with the specified framework. + *

+ */ + controlsCount?: number; + + /** + *

+ * The number of control sets associated with the specified framework. + *

+ */ + controlSetsCount?: number; + + /** + *

+ * Specifies when the framework was created. + *

+ */ + createdAt?: Date; + + /** + *

+ * Specifies when the framework was most recently updated. + *

+ */ + lastUpdatedAt?: Date; +} + +export namespace AssessmentFrameworkMetadata { + export const filterSensitiveLog = (obj: AssessmentFrameworkMetadata): any => ({ + ...obj, + }); +} + +/** + *

+ * A metadata object associated with an assessment in AWS Audit Manager. + *

+ */ +export interface AssessmentMetadataItem { + /** + *

+ * The name of the assessment. + *

+ */ + name?: string; + + /** + *

+ * The unique identifier for the assessment. + *

+ */ + id?: string; + + /** + *

+ * The name of the compliance standard related to the assessment, such as PCI-DSS. + *

+ */ + complianceType?: string; + + /** + *

+ * The current status of the assessment. + *

+ */ + status?: AssessmentStatus | string; + + /** + *

+ * The roles associated with the assessment. + *

+ */ + roles?: Role[]; + + /** + *

+ * The delegations associated with the assessment. + *

+ */ + delegations?: Delegation[]; + + /** + *

+ * Specifies when the assessment was created. + *

+ */ + creationTime?: Date; + + /** + *

+ * The time of the most recent update. + *

+ */ + lastUpdated?: Date; +} + +export namespace AssessmentMetadataItem { + export const filterSensitiveLog = (obj: AssessmentMetadataItem): any => ({ + ...obj, + }); +} + +export enum AssessmentReportStatus { + COMPLETE = "COMPLETE", + FAILED = "FAILED", + IN_PROGRESS = "IN_PROGRESS", +} + +/** + *

+ * A finalized document generated from an AWS Audit Manager assessment. These reports summarize the relevant evidence collected for your audit, and link to the relevant evidence folders which are named and organized according to the controls specified in your assessment. + *

+ */ +export interface AssessmentReport { + /** + *

+ * The unique identifier for the specified assessment report. + *

+ */ + id?: string; + + /** + *

+ * The name given to the assessment report. + *

+ */ + name?: string; + + /** + *

+ * The description of the specified assessment report. + *

+ */ + description?: string; + + /** + *

+ * The identifier for the specified AWS account. + *

+ */ + awsAccountId?: string; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId?: string; + + /** + *

+ * The name of the associated assessment. + *

+ */ + assessmentName?: string; + + /** + *

+ * The name of the user who created the assessment report. + *

+ */ + author?: string; + + /** + *

+ * The current status of the specified assessment report. + *

+ */ + status?: AssessmentReportStatus | string; + + /** + *

+ * Specifies when the assessment report was created. + *

+ */ + creationTime?: Date; +} + +export namespace AssessmentReport { + export const filterSensitiveLog = (obj: AssessmentReport): any => ({ + ...obj, + }); +} + +/** + *

+ * An error entity for the AssessmentReportEvidence API. This is used to provide more meaningful errors than a simple string message. + *

+ */ +export interface AssessmentReportEvidenceError { + /** + *

+ * The identifier for the evidence. + *

+ */ + evidenceId?: string; + + /** + *

+ * The error code returned by the AssessmentReportEvidence API. + *

+ */ + errorCode?: string; + + /** + *

+ * The error message returned by the AssessmentReportEvidence API. + *

+ */ + errorMessage?: string; +} + +export namespace AssessmentReportEvidenceError { + export const filterSensitiveLog = (obj: AssessmentReportEvidenceError): any => ({ + ...obj, + }); +} + +/** + *

+ * The metadata objects associated with the specified assessment report. + *

+ */ +export interface AssessmentReportMetadata { + /** + *

+ * The unique identifier for the assessment report. + *

+ */ + id?: string; + + /** + *

+ * The name of the assessment report. + *

+ */ + name?: string; + + /** + *

+ * The description of the specified assessment report. + *

+ */ + description?: string; + + /** + *

+ * The unique identifier for the associated assessment. + *

+ */ + assessmentId?: string; + + /** + *

The name of the associated assessment. + *

+ */ + assessmentName?: string; + + /** + *

+ * The name of the user who created the assessment report. + *

+ */ + author?: string; + + /** + *

+ * The current status of the assessment report. + *

+ */ + status?: AssessmentReportStatus | string; + + /** + *

+ * Specifies when the assessment report was created. + *

+ */ + creationTime?: Date; +} + +export namespace AssessmentReportMetadata { + export const filterSensitiveLog = (obj: AssessmentReportMetadata): any => ({ + ...obj, + }); +} + +export interface AssociateAssessmentReportEvidenceFolderRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the folder in which evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; +} + +export namespace AssociateAssessmentReportEvidenceFolderRequest { + export const filterSensitiveLog = (obj: AssociateAssessmentReportEvidenceFolderRequest): any => ({ + ...obj, + }); +} + +export interface AssociateAssessmentReportEvidenceFolderResponse {} + +export namespace AssociateAssessmentReportEvidenceFolderResponse { + export const filterSensitiveLog = (obj: AssociateAssessmentReportEvidenceFolderResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * An internal service error occurred during the processing of your request. Try again later. + *

+ */ +export interface InternalServerException extends __SmithyException, $MetadataBearer { + name: "InternalServerException"; + $fault: "server"; + message: string | undefined; +} + +export namespace InternalServerException { + export const filterSensitiveLog = (obj: InternalServerException): any => ({ + ...obj, + }); +} + +/** + *

+ * The resource specified in the request cannot be found. + *

+ */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + message: string | undefined; + /** + *

+ * The unique identifier for the specified resource. + *

+ */ + resourceId: string | undefined; + + /** + *

+ * The type of resource affected by the error. + *

+ */ + resourceType: string | undefined; +} + +export namespace ResourceNotFoundException { + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +/** + *

+ * Indicates that the request has invalid or missing parameters for the specified field. + *

+ */ +export interface ValidationExceptionField { + /** + *

+ * The name of the validation error. + *

+ */ + name: string | undefined; + + /** + *

+ * The body of the error message. + *

+ */ + message: string | undefined; +} + +export namespace ValidationExceptionField { + export const filterSensitiveLog = (obj: ValidationExceptionField): any => ({ + ...obj, + }); +} + +export enum ValidationExceptionReason { + CANNOT_PARSE = "cannotParse", + FIELD_VALIDATION_FAILED = "fieldValidationFailed", + OTHER = "other", + UNKNOWN_OPERATION = "unknownOperation", +} + +/** + *

+ * The request has invalid or missing parameters. + *

+ */ +export interface ValidationException extends __SmithyException, $MetadataBearer { + name: "ValidationException"; + $fault: "client"; + message: string | undefined; + /** + *

+ * The reason the request failed validation. + *

+ */ + reason?: ValidationExceptionReason | string; + + /** + *

+ * The fields that caused the error, if applicable. + *

+ */ + fields?: ValidationExceptionField[]; +} + +export namespace ValidationException { + export const filterSensitiveLog = (obj: ValidationException): any => ({ + ...obj, + }); +} + +export interface BatchAssociateAssessmentReportEvidenceRequest { + /** + *

+ * The unique identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the folder in which the evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; + + /** + *

+ * The list of evidence identifiers. + *

+ */ + evidenceIds: string[] | undefined; +} + +export namespace BatchAssociateAssessmentReportEvidenceRequest { + export const filterSensitiveLog = (obj: BatchAssociateAssessmentReportEvidenceRequest): any => ({ + ...obj, + }); +} + +export interface BatchAssociateAssessmentReportEvidenceResponse { + /** + *

+ * The identifier for the evidence. + *

+ */ + evidenceIds?: string[]; + + /** + *

+ * A list of errors returned by the BatchAssociateAssessmentReportEvidence API. + *

+ */ + errors?: AssessmentReportEvidenceError[]; +} + +export namespace BatchAssociateAssessmentReportEvidenceResponse { + export const filterSensitiveLog = (obj: BatchAssociateAssessmentReportEvidenceResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * A collection of attributes used to create a delegation for an assessment in AWS Audit Manager. + *

+ */ +export interface CreateDelegationRequest { + /** + *

+ * A comment related to the delegation request. + *

+ */ + comment?: string; + + /** + *

+ * The unique identifier for the control set. + *

+ */ + controlSetId?: string; + + /** + *

+ * The Amazon Resource Name (ARN) of the IAM role. + *

+ */ + roleArn?: string; + + /** + *

+ * The type of customer persona. + *

+ * + *

In CreateAssessment, roleType can only be PROCESS_OWNER.

+ *

In UpdateSettings, roleType can only be PROCESS_OWNER.

+ *

In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

+ *
+ */ + roleType?: RoleType | string; +} + +export namespace CreateDelegationRequest { + export const filterSensitiveLog = (obj: CreateDelegationRequest): any => ({ + ...obj, + }); +} + +export interface BatchCreateDelegationByAssessmentRequest { + /** + *

+ * The API request to batch create delegations in AWS Audit Manager. + *

+ */ + createDelegationRequests: CreateDelegationRequest[] | undefined; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace BatchCreateDelegationByAssessmentRequest { + export const filterSensitiveLog = (obj: BatchCreateDelegationByAssessmentRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * An error entity for the BatchCreateDelegationByAssessment API. This is used to provide more meaningful errors than a simple string message. + *

+ */ +export interface BatchCreateDelegationByAssessmentError { + /** + *

+ * The API request to batch create delegations in AWS Audit Manager. + *

+ */ + createDelegationRequest?: CreateDelegationRequest; + + /** + *

+ * The error code returned by the BatchCreateDelegationByAssessment API. + *

+ */ + errorCode?: string; + + /** + *

+ * The error message returned by the BatchCreateDelegationByAssessment API. + *

+ */ + errorMessage?: string; +} + +export namespace BatchCreateDelegationByAssessmentError { + export const filterSensitiveLog = (obj: BatchCreateDelegationByAssessmentError): any => ({ + ...obj, + }); +} + +export interface BatchCreateDelegationByAssessmentResponse { + /** + *

+ * The delegations associated with the assessment. + *

+ */ + delegations?: Delegation[]; + + /** + *

+ * A list of errors returned by the BatchCreateDelegationByAssessment API. + *

+ */ + errors?: BatchCreateDelegationByAssessmentError[]; +} + +export namespace BatchCreateDelegationByAssessmentResponse { + export const filterSensitiveLog = (obj: BatchCreateDelegationByAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface BatchDeleteDelegationByAssessmentRequest { + /** + *

+ * The identifiers for the specified delegations. + *

+ */ + delegationIds: string[] | undefined; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace BatchDeleteDelegationByAssessmentRequest { + export const filterSensitiveLog = (obj: BatchDeleteDelegationByAssessmentRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * An error entity for the BatchDeleteDelegationByAssessment API. This is used to provide more meaningful errors than a simple string message. + *

+ */ +export interface BatchDeleteDelegationByAssessmentError { + /** + *

+ * The identifier for the specified delegation. + *

+ */ + delegationId?: string; + + /** + *

+ * The error code returned by the BatchDeleteDelegationByAssessment API. + *

+ */ + errorCode?: string; + + /** + *

+ * The error message returned by the BatchDeleteDelegationByAssessment API. + *

+ */ + errorMessage?: string; +} + +export namespace BatchDeleteDelegationByAssessmentError { + export const filterSensitiveLog = (obj: BatchDeleteDelegationByAssessmentError): any => ({ + ...obj, + }); +} + +export interface BatchDeleteDelegationByAssessmentResponse { + /** + *

+ * A list of errors returned by the BatchDeleteDelegationByAssessment API. + *

+ */ + errors?: BatchDeleteDelegationByAssessmentError[]; +} + +export namespace BatchDeleteDelegationByAssessmentResponse { + export const filterSensitiveLog = (obj: BatchDeleteDelegationByAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface BatchDisassociateAssessmentReportEvidenceRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the folder in which evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; + + /** + *

+ * The list of evidence identifiers. + *

+ */ + evidenceIds: string[] | undefined; +} + +export namespace BatchDisassociateAssessmentReportEvidenceRequest { + export const filterSensitiveLog = (obj: BatchDisassociateAssessmentReportEvidenceRequest): any => ({ + ...obj, + }); +} + +export interface BatchDisassociateAssessmentReportEvidenceResponse { + /** + *

+ * The identifier for the evidence. + *

+ */ + evidenceIds?: string[]; + + /** + *

+ * A list of errors returned by the BatchDisassociateAssessmentReportEvidence API. + *

+ */ + errors?: AssessmentReportEvidenceError[]; +} + +export namespace BatchDisassociateAssessmentReportEvidenceResponse { + export const filterSensitiveLog = (obj: BatchDisassociateAssessmentReportEvidenceResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * Evidence that is uploaded to AWS Audit Manager manually. + *

+ */ +export interface ManualEvidence { + /** + *

+ * The Amazon S3 URL that points to a manual evidence object. + *

+ */ + s3ResourcePath?: string; +} + +export namespace ManualEvidence { + export const filterSensitiveLog = (obj: ManualEvidence): any => ({ + ...obj, + }); +} + +export interface BatchImportEvidenceToAssessmentControlRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * + * The identifier for the specified control. + *

+ */ + controlId: string | undefined; + + /** + *

+ * The list of manual evidence objects. + *

+ */ + manualEvidence: ManualEvidence[] | undefined; +} + +export namespace BatchImportEvidenceToAssessmentControlRequest { + export const filterSensitiveLog = (obj: BatchImportEvidenceToAssessmentControlRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * An error entity for the BatchImportEvidenceToAssessmentControl API. This is used to provide more meaningful errors than a simple string message. + *

+ */ +export interface BatchImportEvidenceToAssessmentControlError { + /** + *

+ * Manual evidence that cannot be collected automatically by AWS Audit Manager. + *

+ */ + manualEvidence?: ManualEvidence; + + /** + *

+ * The error code returned by the BatchImportEvidenceToAssessmentControl API. + *

+ */ + errorCode?: string; + + /** + *

+ * The error message returned by the BatchImportEvidenceToAssessmentControlError API. + *

+ */ + errorMessage?: string; +} + +export namespace BatchImportEvidenceToAssessmentControlError { + export const filterSensitiveLog = (obj: BatchImportEvidenceToAssessmentControlError): any => ({ + ...obj, + }); +} + +export interface BatchImportEvidenceToAssessmentControlResponse { + /** + *

+ * A list of errors returned by the BatchImportEvidenceToAssessmentControl API. + *

+ */ + errors?: BatchImportEvidenceToAssessmentControlError[]; +} + +export namespace BatchImportEvidenceToAssessmentControlResponse { + export const filterSensitiveLog = (obj: BatchImportEvidenceToAssessmentControlResponse): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentRequest { + /** + *

+ * The name of the assessment to be created. + *

+ */ + name: string | undefined; + + /** + *

+ * The optional description of the assessment to be created. + *

+ */ + description?: string; + + /** + *

+ * The assessment report storage destination for the specified assessment that is being created. + *

+ */ + assessmentReportsDestination: AssessmentReportsDestination | undefined; + + /** + *

+ * The wrapper that contains the AWS accounts and AWS services in scope for the assessment. + *

+ */ + scope: Scope | undefined; + + /** + *

+ * The list of roles for the specified assessment. + *

+ */ + roles: Role[] | undefined; + + /** + *

+ * The identifier for the specified framework. + *

+ */ + frameworkId: string | undefined; + + /** + *

+ * The tags associated with the assessment. + *

+ */ + tags?: { [key: string]: string }; +} + +export namespace CreateAssessmentRequest { + export const filterSensitiveLog = (obj: CreateAssessmentRequest): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentResponse { + /** + *

+ * An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. + *

+ */ + assessment?: Assessment; +} + +export namespace CreateAssessmentResponse { + export const filterSensitiveLog = (obj: CreateAssessmentResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * Control entity attributes that uniquely identify an existing control to be added to a framework in AWS Audit Manager. + *

+ */ +export interface CreateAssessmentFrameworkControl { + /** + *

+ * The unique identifier of the control. + *

+ */ + id?: string; +} + +export namespace CreateAssessmentFrameworkControl { + export const filterSensitiveLog = (obj: CreateAssessmentFrameworkControl): any => ({ + ...obj, + }); +} + +/** + *

+ * A controlSet entity that represents a collection of controls in AWS Audit Manager. This does not contain the control set ID. + *

+ */ +export interface CreateAssessmentFrameworkControlSet { + /** + *

+ * The name of the specified control set. + *

+ */ + name?: string; + + /** + *

+ * The list of controls within the control set. This does not contain the control set ID. + *

+ */ + controls?: CreateAssessmentFrameworkControl[]; +} + +export namespace CreateAssessmentFrameworkControlSet { + export const filterSensitiveLog = (obj: CreateAssessmentFrameworkControlSet): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentFrameworkRequest { + /** + *

+ * The name of the new custom framework. + *

+ */ + name: string | undefined; + + /** + *

+ * An optional description for the new custom framework. + *

+ */ + description?: string; + + /** + *

+ * The compliance type that the new custom framework supports, such as CIS or HIPAA. + *

+ */ + complianceType?: string; + + /** + *

+ * The control sets to be associated with the framework. + *

+ */ + controlSets: CreateAssessmentFrameworkControlSet[] | undefined; +} + +export namespace CreateAssessmentFrameworkRequest { + export const filterSensitiveLog = (obj: CreateAssessmentFrameworkRequest): any => ({ + ...obj, + }); +} + +export enum SourceFrequency { + DAILY = "DAILY", + MONTHLY = "MONTHLY", + WEEKLY = "WEEKLY", +} + +export enum KeywordInputType { + SELECT_FROM_LIST = "SELECT_FROM_LIST", +} + +/** + *

+ * The keyword to search for in AWS CloudTrail logs. + *

+ */ +export interface SourceKeyword { + /** + *

+ * The method of input for the specified keyword. + *

+ */ + keywordInputType?: KeywordInputType | string; + + /** + *

+ * The value of the keyword used to search AWS CloudTrail logs when mapping a control data source. + *

+ */ + keywordValue?: string; +} + +export namespace SourceKeyword { + export const filterSensitiveLog = (obj: SourceKeyword): any => ({ + ...obj, + }); +} + +export enum SourceSetUpOption { + PROCEDURAL_CONTROLS_MAPPING = "Procedural_Controls_Mapping", + SYSTEM_CONTROLS_MAPPING = "System_Controls_Mapping", +} + +export enum SourceType { + AWS_API_CALL = "AWS_API_Call", + AWS_CLOUDTRAIL = "AWS_Cloudtrail", + AWS_CONFIG = "AWS_Config", + AWS_SECURITY_HUB = "AWS_Security_Hub", + MANUAL = "MANUAL", +} + +/** + *

+ * The data source that determines from where AWS Audit Manager collects evidence for the control. + *

+ */ +export interface ControlMappingSource { + /** + *

+ * The unique identifier for the specified source. + *

+ */ + sourceId?: string; + + /** + *

+ * The name of the specified source. + *

+ */ + sourceName?: string; + + /** + *

+ * The description of the specified source. + *

+ */ + sourceDescription?: string; + + /** + *

+ * The setup option for the data source, which reflects if the evidence collection is automated or manual. + *

+ */ + sourceSetUpOption?: SourceSetUpOption | string; + + /** + *

+ * Specifies one of the five types of data sources for evidence collection. + *

+ */ + sourceType?: SourceType | string; + + /** + *

+ * The keyword to search for in AWS CloudTrail logs. + *

+ */ + sourceKeyword?: SourceKeyword; + + /** + *

+ * The frequency of evidence collection for the specified control mapping source. + *

+ */ + sourceFrequency?: SourceFrequency | string; + + /** + *

+ * The instructions for troubleshooting the specified control. + *

+ */ + troubleshootingText?: string; +} + +export namespace ControlMappingSource { + export const filterSensitiveLog = (obj: ControlMappingSource): any => ({ + ...obj, + }); +} + +export enum ControlType { + CUSTOM = "Custom", + STANDARD = "Standard", +} + +/** + *

+ * A control in AWS Audit Manager. + *

+ */ +export interface Control { + /** + *

+ * The Amazon Resource Name (ARN) of the specified control. + *

+ */ + arn?: string; + + /** + *

+ * The unique identifier for the control. + *

+ */ + id?: string; + + /** + *

+ * The type of control, such as custom or standard. + *

+ */ + type?: ControlType | string; + + /** + *

+ * The name of the specified control. + *

+ */ + name?: string; + + /** + *

+ * The description of the specified control. + *

+ */ + description?: string; + + /** + *

+ * The steps to follow to determine if the control has been satisfied. + *

+ */ + testingInformation?: string; + + /** + *

+ * The title of the action plan for remediating the control. + *

+ */ + actionPlanTitle?: string; + + /** + *

+ * + * The recommended actions to carry out if the control is not fulfilled. + *

+ */ + actionPlanInstructions?: string; + + /** + *

+ * The data mapping sources for the specified control. + *

+ */ + controlSources?: string; + + /** + *

+ * The data mapping sources for the specified control. + *

+ */ + controlMappingSources?: ControlMappingSource[]; + + /** + *

+ * Specifies when the control was created. + *

+ */ + createdAt?: Date; + + /** + *

+ * Specifies when the control was most recently updated. + *

+ */ + lastUpdatedAt?: Date; + + /** + *

+ * The IAM user or role that created the control. + *

+ */ + createdBy?: string; + + /** + *

+ * The IAM user or role that most recently updated the control. + *

+ */ + lastUpdatedBy?: string; + + /** + *

+ * The tags associated with the control. + *

+ */ + tags?: { [key: string]: string }; +} + +export namespace Control { + export const filterSensitiveLog = (obj: Control): any => ({ + ...obj, + }); +} + +/** + *

+ * A set of controls in AWS Audit Manager. + *

+ */ +export interface ControlSet { + /** + *

+ * The identifier of the control set in the assessment. This is the control set name in a plain string format. + *

+ */ + id?: string; + + /** + *

+ * The name of the control set. + *

+ */ + name?: string; + + /** + *

+ * The list of controls within the control set. + *

+ */ + controls?: Control[]; +} + +export namespace ControlSet { + export const filterSensitiveLog = (obj: ControlSet): any => ({ + ...obj, + }); +} + +/** + *

+ * The file used to structure and automate AWS Audit Manager assessments for a given compliance standard. + *

+ */ +export interface Framework { + /** + *

+ * The Amazon Resource Name (ARN) of the specified framework. + *

+ */ + arn?: string; + + /** + *

+ * The unique identifier for the specified framework. + *

+ */ + id?: string; + + /** + *

+ * The name of the specified framework. + *

+ */ + name?: string; + + /** + *

+ * The framework type, such as custom or standard. + *

+ */ + type?: FrameworkType | string; + + /** + *

+ * The compliance type that the new custom framework supports, such as CIS or HIPAA. + *

+ */ + complianceType?: string; + + /** + *

+ * The description of the specified framework. + *

+ */ + description?: string; + + /** + *

+ * The logo associated with the framework. + *

+ */ + logo?: string; + + /** + *

+ * The sources from which AWS Audit Manager collects evidence for the control. + *

+ */ + controlSources?: string; + + /** + *

+ * The control sets associated with the framework. + *

+ */ + controlSets?: ControlSet[]; + + /** + *

+ * Specifies when the framework was created. + *

+ */ + createdAt?: Date; + + /** + *

+ * Specifies when the framework was most recently updated. + *

+ */ + lastUpdatedAt?: Date; + + /** + *

+ * The IAM user or role that created the framework. + *

+ */ + createdBy?: string; + + /** + *

+ * The IAM user or role that most recently updated the framework. + *

+ */ + lastUpdatedBy?: string; +} + +export namespace Framework { + export const filterSensitiveLog = (obj: Framework): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentFrameworkResponse { + /** + *

+ * The name of the new framework returned by the CreateAssessmentFramework API. + *

+ */ + framework?: Framework; +} + +export namespace CreateAssessmentFrameworkResponse { + export const filterSensitiveLog = (obj: CreateAssessmentFrameworkResponse): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentReportRequest { + /** + *

+ * The name of the new assessment report. + *

+ */ + name: string | undefined; + + /** + *

+ * The description of the assessment report. + *

+ */ + description?: string; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace CreateAssessmentReportRequest { + export const filterSensitiveLog = (obj: CreateAssessmentReportRequest): any => ({ + ...obj, + }); +} + +export interface CreateAssessmentReportResponse { + /** + *

+ * The new assessment report returned by the CreateAssessmentReport API. + *

+ */ + assessmentReport?: AssessmentReport; +} + +export namespace CreateAssessmentReportResponse { + export const filterSensitiveLog = (obj: CreateAssessmentReportResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * Control mapping fields that represent the source for evidence collection, along with related parameters and metadata. This does not contain mappingID. + *

+ */ +export interface CreateControlMappingSource { + /** + *

+ * The name of the control mapping data source. + *

+ */ + sourceName?: string; + + /** + *

+ * The description of the data source that determines from where AWS Audit Manager collects evidence for the control. + *

+ */ + sourceDescription?: string; + + /** + *

+ * The setup option for the data source, which reflects if the evidence collection is automated or manual. + *

+ */ + sourceSetUpOption?: SourceSetUpOption | string; + + /** + *

+ * Specifies one of the five types of data sources for evidence collection. + * + *

+ */ + sourceType?: SourceType | string; + + /** + *

+ * The keyword to search for in AWS CloudTrail logs. + *

+ */ + sourceKeyword?: SourceKeyword; + + /** + *

+ * The frequency of evidence collection for the specified control mapping source. + *

+ */ + sourceFrequency?: SourceFrequency | string; + + /** + *

+ * The instructions for troubleshooting the specified control. + *

+ */ + troubleshootingText?: string; +} + +export namespace CreateControlMappingSource { + export const filterSensitiveLog = (obj: CreateControlMappingSource): any => ({ + ...obj, + }); +} + +export interface CreateControlRequest { + /** + *

+ * The name of the control. + *

+ */ + name: string | undefined; + + /** + *

+ * The description of the control. + *

+ */ + description?: string; + + /** + *

+ * The steps to follow to determine if the control has been satisfied. + *

+ */ + testingInformation?: string; + + /** + *

+ * The title of the action plan for remediating the control. + *

+ */ + actionPlanTitle?: string; + + /** + *

+ * The recommended actions to carry out if the control is not fulfilled. + *

+ */ + actionPlanInstructions?: string; + + /** + *

+ * The data source that determines from where AWS Audit Manager collects evidence for the control. + *

+ */ + controlMappingSources: CreateControlMappingSource[] | undefined; + + /** + *

+ * The tags associated with the control. + *

+ */ + tags?: { [key: string]: string }; +} + +export namespace CreateControlRequest { + export const filterSensitiveLog = (obj: CreateControlRequest): any => ({ + ...obj, + }); +} + +export interface CreateControlResponse { + /** + *

+ * The new control returned by the CreateControl API. + *

+ */ + control?: Control; +} + +export namespace CreateControlResponse { + export const filterSensitiveLog = (obj: CreateControlResponse): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace DeleteAssessmentRequest { + export const filterSensitiveLog = (obj: DeleteAssessmentRequest): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentResponse {} + +export namespace DeleteAssessmentResponse { + export const filterSensitiveLog = (obj: DeleteAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentFrameworkRequest { + /** + *

+ * The identifier for the specified framework. + *

+ */ + frameworkId: string | undefined; +} + +export namespace DeleteAssessmentFrameworkRequest { + export const filterSensitiveLog = (obj: DeleteAssessmentFrameworkRequest): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentFrameworkResponse {} + +export namespace DeleteAssessmentFrameworkResponse { + export const filterSensitiveLog = (obj: DeleteAssessmentFrameworkResponse): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentReportRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The unique identifier for the assessment report. + *

+ */ + assessmentReportId: string | undefined; +} + +export namespace DeleteAssessmentReportRequest { + export const filterSensitiveLog = (obj: DeleteAssessmentReportRequest): any => ({ + ...obj, + }); +} + +export interface DeleteAssessmentReportResponse {} + +export namespace DeleteAssessmentReportResponse { + export const filterSensitiveLog = (obj: DeleteAssessmentReportResponse): any => ({ + ...obj, + }); +} + +export interface DeleteControlRequest { + /** + *

+ * The identifier for the specified control. + *

+ */ + controlId: string | undefined; +} + +export namespace DeleteControlRequest { + export const filterSensitiveLog = (obj: DeleteControlRequest): any => ({ + ...obj, + }); +} + +export interface DeleteControlResponse {} + +export namespace DeleteControlResponse { + export const filterSensitiveLog = (obj: DeleteControlResponse): any => ({ + ...obj, + }); +} + +export interface DeregisterAccountRequest {} + +export namespace DeregisterAccountRequest { + export const filterSensitiveLog = (obj: DeregisterAccountRequest): any => ({ + ...obj, + }); +} + +export interface DeregisterAccountResponse { + /** + *

+ * The registration status of the account. + *

+ */ + status?: AccountStatus | string; +} + +export namespace DeregisterAccountResponse { + export const filterSensitiveLog = (obj: DeregisterAccountResponse): any => ({ + ...obj, + }); +} + +export interface DeregisterOrganizationAdminAccountRequest { + /** + *

+ * The identifier for the specified administrator account. + *

+ */ + adminAccountId?: string; +} + +export namespace DeregisterOrganizationAdminAccountRequest { + export const filterSensitiveLog = (obj: DeregisterOrganizationAdminAccountRequest): any => ({ + ...obj, + }); +} + +export interface DeregisterOrganizationAdminAccountResponse {} + +export namespace DeregisterOrganizationAdminAccountResponse { + export const filterSensitiveLog = (obj: DeregisterOrganizationAdminAccountResponse): any => ({ + ...obj, + }); +} + +export interface DisassociateAssessmentReportEvidenceFolderRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the folder in which evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; +} + +export namespace DisassociateAssessmentReportEvidenceFolderRequest { + export const filterSensitiveLog = (obj: DisassociateAssessmentReportEvidenceFolderRequest): any => ({ + ...obj, + }); +} + +export interface DisassociateAssessmentReportEvidenceFolderResponse {} + +export namespace DisassociateAssessmentReportEvidenceFolderResponse { + export const filterSensitiveLog = (obj: DisassociateAssessmentReportEvidenceFolderResponse): any => ({ + ...obj, + }); +} + +export interface GetAccountStatusRequest {} + +export namespace GetAccountStatusRequest { + export const filterSensitiveLog = (obj: GetAccountStatusRequest): any => ({ + ...obj, + }); +} + +export interface GetAccountStatusResponse { + /** + *

+ * The status of the specified AWS account. + *

+ */ + status?: AccountStatus | string; +} + +export namespace GetAccountStatusResponse { + export const filterSensitiveLog = (obj: GetAccountStatusResponse): any => ({ + ...obj, + }); +} + +export interface GetAssessmentRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace GetAssessmentRequest { + export const filterSensitiveLog = (obj: GetAssessmentRequest): any => ({ + ...obj, + }); +} + +export interface GetAssessmentResponse { + /** + *

+ * An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. + *

+ */ + assessment?: Assessment; +} + +export namespace GetAssessmentResponse { + export const filterSensitiveLog = (obj: GetAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface GetAssessmentFrameworkRequest { + /** + *

+ * The identifier for the specified framework. + *

+ */ + frameworkId: string | undefined; +} + +export namespace GetAssessmentFrameworkRequest { + export const filterSensitiveLog = (obj: GetAssessmentFrameworkRequest): any => ({ + ...obj, + }); +} + +export interface GetAssessmentFrameworkResponse { + /** + *

+ * The framework returned by the GetAssessmentFramework API. + *

+ */ + framework?: Framework; +} + +export namespace GetAssessmentFrameworkResponse { + export const filterSensitiveLog = (obj: GetAssessmentFrameworkResponse): any => ({ + ...obj, + }); +} + +export interface GetAssessmentReportUrlRequest { + /** + *

+ * The identifier for the assessment report. + *

+ */ + assessmentReportId: string | undefined; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; +} + +export namespace GetAssessmentReportUrlRequest { + export const filterSensitiveLog = (obj: GetAssessmentReportUrlRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * A uniform resource locator, used as a unique identifier to locate a resource on the internet. + *

+ */ +export interface URL { + /** + *

+ * The name or word used as a hyperlink to the URL. + *

+ */ + hyperlinkName?: string; + + /** + *

+ * The unique identifier for the internet resource. + *

+ */ + link?: string; +} + +export namespace URL { + export const filterSensitiveLog = (obj: URL): any => ({ + ...obj, + }); +} + +export interface GetAssessmentReportUrlResponse { + /** + *

+ * A uniform resource locator, used as a unique identifier to locate a resource on the internet. + *

+ */ + preSignedUrl?: URL; +} + +export namespace GetAssessmentReportUrlResponse { + export const filterSensitiveLog = (obj: GetAssessmentReportUrlResponse): any => ({ + ...obj, + }); +} + +export interface GetChangeLogsRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId?: string; + + /** + *

+ * + * The identifier for the specified control. + *

+ */ + controlId?: string; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace GetChangeLogsRequest { + export const filterSensitiveLog = (obj: GetChangeLogsRequest): any => ({ + ...obj, + }); +} + +export enum ObjectTypeEnum { + ASSESSMENT = "ASSESSMENT", + ASSESSMENT_REPORT = "ASSESSMENT_REPORT", + CONTROL = "CONTROL", + CONTROL_SET = "CONTROL_SET", + DELEGATION = "DELEGATION", +} + +/** + *

+ * The record of a change within AWS Audit Manager, such as a modified assessment, a delegated control set, and so on. + *

+ */ +export interface ChangeLog { + /** + *

+ * The changelog object type, such as an assessment, control, or control set. + *

+ */ + objectType?: ObjectTypeEnum | string; + + /** + *

+ * The name of the changelog object. + *

+ */ + objectName?: string; + + /** + *

+ * The action performed. + *

+ */ + action?: ActionEnum | string; + + /** + *

+ * The time of creation for the changelog object. + *

+ */ + createdAt?: Date; + + /** + *

+ * The IAM user or role that performed the action. + *

+ */ + createdBy?: string; +} + +export namespace ChangeLog { + export const filterSensitiveLog = (obj: ChangeLog): any => ({ + ...obj, + }); +} + +export interface GetChangeLogsResponse { + /** + *

+ * The list of user activity for the control. + *

+ */ + changeLogs?: ChangeLog[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace GetChangeLogsResponse { + export const filterSensitiveLog = (obj: GetChangeLogsResponse): any => ({ + ...obj, + }); +} + +export interface GetControlRequest { + /** + *

+ * + * The identifier for the specified control. + *

+ */ + controlId: string | undefined; +} + +export namespace GetControlRequest { + export const filterSensitiveLog = (obj: GetControlRequest): any => ({ + ...obj, + }); +} + +export interface GetControlResponse { + /** + *

+ * The name of the control returned by the GetControl API. + *

+ */ + control?: Control; +} + +export namespace GetControlResponse { + export const filterSensitiveLog = (obj: GetControlResponse): any => ({ + ...obj, + }); +} + +export interface GetDelegationsRequest { + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace GetDelegationsRequest { + export const filterSensitiveLog = (obj: GetDelegationsRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * The metadata associated with the specified delegation. + *

+ */ +export interface DelegationMetadata { + /** + *

+ * The unique identifier for the delegation. + *

+ */ + id?: string; + + /** + *

+ * The name of the associated assessment. + *

+ */ + assessmentName?: string; + + /** + *

+ * The unique identifier for the specified assessment. + *

+ */ + assessmentId?: string; + + /** + *

+ * The current status of the delgation. + *

+ */ + status?: DelegationStatus | string; + + /** + *

+ * The Amazon Resource Name (ARN) of the IAM role. + *

+ */ + roleArn?: string; + + /** + *

+ * Specifies when the delegation was created. + *

+ */ + creationTime?: Date; + + /** + *

+ * Specifies the name of the control set delegated for review. + *

+ */ + controlSetName?: string; +} + +export namespace DelegationMetadata { + export const filterSensitiveLog = (obj: DelegationMetadata): any => ({ + ...obj, + }); +} + +export interface GetDelegationsResponse { + /** + *

+ * The list of delegations returned by the GetDelegations API. + *

+ */ + delegations?: DelegationMetadata[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace GetDelegationsResponse { + export const filterSensitiveLog = (obj: GetDelegationsResponse): any => ({ + ...obj, + }); +} + +export interface GetEvidenceRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * The identifier for the folder in which the evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; + + /** + *

+ * The identifier for the evidence. + *

+ */ + evidenceId: string | undefined; +} + +export namespace GetEvidenceRequest { + export const filterSensitiveLog = (obj: GetEvidenceRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * A system asset that is evaluated in an AWS Audit Manager assessment. + *

+ */ +export interface Resource { + /** + *

+ * The Amazon Resource Name (ARN) for the specified resource. + *

+ */ + arn?: string; + + /** + *

+ * The value of the specified resource. + *

+ */ + value?: string; +} + +export namespace Resource { + export const filterSensitiveLog = (obj: Resource): any => ({ + ...obj, + }); +} + +/** + *

+ * A record that contains the information needed to demonstrate compliance with the requirements specified by a control. Examples of evidence include change activity triggered by a user, or a system configuration snapshot. + *

+ */ +export interface Evidence { + /** + *

+ * The data source from which the specified evidence was collected. + *

+ */ + dataSource?: string; + + /** + *

+ * The identifier for the specified AWS account. + *

+ */ + evidenceAwsAccountId?: string; + + /** + *

+ * The timestamp that represents when the evidence was collected. + *

+ */ + time?: Date; + + /** + *

+ * The AWS service from which the evidence is collected. + *

+ */ + eventSource?: string; + + /** + *

+ * The name of the specified evidence event. + *

+ */ + eventName?: string; + + /** + *

+ * The type of automated evidence. + *

+ */ + evidenceByType?: string; + + /** + *

+ * The list of resources assessed to generate the evidence. + *

+ */ + resourcesIncluded?: Resource[]; + + /** + *

+ * The names and values used by the evidence event, including an attribute name (such as allowUsersToChangePassword) and value (such as true or false). + *

+ */ + attributes?: { [key: string]: string }; + + /** + *

+ * The unique identifier for the IAM user or role associated with the evidence. + *

+ */ + iamId?: string; + + /** + *

The evaluation status for evidence that falls under the compliance check category. For + * evidence collected from AWS Security Hub, a Pass or + * Fail result is shown. For evidence collected from AWS Config, a + * Compliant or Noncompliant result is shown.

+ */ + complianceCheck?: string; + + /** + *

+ * The AWS account from which the evidence is collected, and its AWS organization path. + *

+ */ + awsOrganization?: string; + + /** + *

+ * The identifier for the specified AWS account. + *

+ */ + awsAccountId?: string; + + /** + *

+ * The identifier for the folder in which the evidence is stored. + *

+ */ + evidenceFolderId?: string; + + /** + *

The identifier for the evidence. + *

+ */ + id?: string; + + /** + *

+ * Specifies whether the evidence is inclded in the assessment report. + *

+ */ + assessmentReportSelection?: string; +} + +export namespace Evidence { + export const filterSensitiveLog = (obj: Evidence): any => ({ + ...obj, + }); +} + +export interface GetEvidenceResponse { + /** + *

+ * The evidence returned by the GetEvidenceResponse API. + *

+ */ + evidence?: Evidence; +} + +export namespace GetEvidenceResponse { + export const filterSensitiveLog = (obj: GetEvidenceResponse): any => ({ + ...obj, + }); +} + +export interface GetEvidenceByEvidenceFolderRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * The unique identifier for the folder in which the evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace GetEvidenceByEvidenceFolderRequest { + export const filterSensitiveLog = (obj: GetEvidenceByEvidenceFolderRequest): any => ({ + ...obj, + }); +} + +export interface GetEvidenceByEvidenceFolderResponse { + /** + *

+ * The list of evidence returned by the GetEvidenceByEvidenceFolder API. + *

+ */ + evidence?: Evidence[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace GetEvidenceByEvidenceFolderResponse { + export const filterSensitiveLog = (obj: GetEvidenceByEvidenceFolderResponse): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFolderRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * The identifier for the folder in which the evidence is stored. + *

+ */ + evidenceFolderId: string | undefined; +} + +export namespace GetEvidenceFolderRequest { + export const filterSensitiveLog = (obj: GetEvidenceFolderRequest): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFolderResponse { + /** + *

+ * The folder in which evidence is stored. + *

+ */ + evidenceFolder?: AssessmentEvidenceFolder; +} + +export namespace GetEvidenceFolderResponse { + export const filterSensitiveLog = (obj: GetEvidenceFolderResponse): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFoldersByAssessmentRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace GetEvidenceFoldersByAssessmentRequest { + export const filterSensitiveLog = (obj: GetEvidenceFoldersByAssessmentRequest): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFoldersByAssessmentResponse { + /** + *

+ * The list of evidence folders returned by the GetEvidenceFoldersByAssessment API. + *

+ */ + evidenceFolders?: AssessmentEvidenceFolder[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace GetEvidenceFoldersByAssessmentResponse { + export const filterSensitiveLog = (obj: GetEvidenceFoldersByAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFoldersByAssessmentControlRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * The identifier for the specified control. + *

+ */ + controlId: string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace GetEvidenceFoldersByAssessmentControlRequest { + export const filterSensitiveLog = (obj: GetEvidenceFoldersByAssessmentControlRequest): any => ({ + ...obj, + }); +} + +export interface GetEvidenceFoldersByAssessmentControlResponse { + /** + *

+ * The list of evidence folders returned by the GetEvidenceFoldersByAssessmentControl API. + *

+ */ + evidenceFolders?: AssessmentEvidenceFolder[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace GetEvidenceFoldersByAssessmentControlResponse { + export const filterSensitiveLog = (obj: GetEvidenceFoldersByAssessmentControlResponse): any => ({ + ...obj, + }); +} + +export interface GetOrganizationAdminAccountRequest {} + +export namespace GetOrganizationAdminAccountRequest { + export const filterSensitiveLog = (obj: GetOrganizationAdminAccountRequest): any => ({ + ...obj, + }); +} + +export interface GetOrganizationAdminAccountResponse { + /** + *

+ * The identifier for the specified administrator account. + *

+ */ + adminAccountId?: string; + + /** + *

+ * The identifier for the specified organization. + *

+ */ + organizationId?: string; +} + +export namespace GetOrganizationAdminAccountResponse { + export const filterSensitiveLog = (obj: GetOrganizationAdminAccountResponse): any => ({ + ...obj, + }); +} + +export interface GetServicesInScopeRequest {} + +export namespace GetServicesInScopeRequest { + export const filterSensitiveLog = (obj: GetServicesInScopeRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * The metadata associated with the specified AWS service. + *

+ */ +export interface ServiceMetadata { + /** + *

+ * The name of the AWS service. + *

+ */ + name?: string; + + /** + *

+ * The display name of the AWS service. + *

+ */ + displayName?: string; + + /** + *

+ * The description of the specified AWS service. + *

+ */ + description?: string; + + /** + *

+ * The category in which the AWS service belongs, such as compute, storage, database, and so on. + *

+ */ + category?: string; +} + +export namespace ServiceMetadata { + export const filterSensitiveLog = (obj: ServiceMetadata): any => ({ + ...obj, + }); +} + +export interface GetServicesInScopeResponse { + /** + *

+ * The metadata associated with the aAWS service. + *

+ */ + serviceMetadata?: ServiceMetadata[]; +} + +export namespace GetServicesInScopeResponse { + export const filterSensitiveLog = (obj: GetServicesInScopeResponse): any => ({ + ...obj, + }); +} + +export enum SettingAttribute { + ALL = "ALL", + DEFAULT_ASSESSMENT_REPORTS_DESTINATION = "DEFAULT_ASSESSMENT_REPORTS_DESTINATION", + DEFAULT_PROCESS_OWNERS = "DEFAULT_PROCESS_OWNERS", + IS_AWS_ORG_ENABLED = "IS_AWS_ORG_ENABLED", + SNS_TOPIC = "SNS_TOPIC", +} + +export interface GetSettingsRequest { + /** + *

+ * The list of SettingAttribute enum values. + *

+ */ + attribute: SettingAttribute | string | undefined; +} + +export namespace GetSettingsRequest { + export const filterSensitiveLog = (obj: GetSettingsRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * The settings object that holds all supported AWS Audit Manager settings. + *

+ */ +export interface Settings { + /** + *

+ * Specifies whether AWS Organizations is enabled. + *

+ */ + isAwsOrgEnabled?: boolean; + + /** + *

+ * The designated Amazon Simple Notification Service (Amazon SNS) topic. + *

+ */ + snsTopic?: string; + + /** + *

+ * The default storage destination for assessment reports. + *

+ */ + defaultAssessmentReportsDestination?: AssessmentReportsDestination; + + /** + *

+ * The designated default audit owners. + *

+ */ + defaultProcessOwners?: Role[]; + + /** + *

+ * The AWS KMS key details. + *

+ */ + kmsKey?: string; +} + +export namespace Settings { + export const filterSensitiveLog = (obj: Settings): any => ({ + ...obj, + }); +} + +export interface GetSettingsResponse { + /** + *

+ * The settings object that holds all supported AWS Audit Manager settings. + *

+ */ + settings?: Settings; +} + +export namespace GetSettingsResponse { + export const filterSensitiveLog = (obj: GetSettingsResponse): any => ({ + ...obj, + }); +} + +export interface ListAssessmentFrameworksRequest { + /** + *

+ * The type of framework, such as standard or custom. + *

+ */ + frameworkType: FrameworkType | string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListAssessmentFrameworksRequest { + export const filterSensitiveLog = (obj: ListAssessmentFrameworksRequest): any => ({ + ...obj, + }); +} + +export interface ListAssessmentFrameworksResponse { + /** + *

+ * The list of metadata objects for the specified framework. + *

+ */ + frameworkMetadataList?: AssessmentFrameworkMetadata[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListAssessmentFrameworksResponse { + export const filterSensitiveLog = (obj: ListAssessmentFrameworksResponse): any => ({ + ...obj, + }); +} + +export interface ListAssessmentReportsRequest { + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListAssessmentReportsRequest { + export const filterSensitiveLog = (obj: ListAssessmentReportsRequest): any => ({ + ...obj, + }); +} + +export interface ListAssessmentReportsResponse { + /** + *

+ * The list of assessment reports returned by the ListAssessmentReports API. + *

+ */ + assessmentReports?: AssessmentReportMetadata[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListAssessmentReportsResponse { + export const filterSensitiveLog = (obj: ListAssessmentReportsResponse): any => ({ + ...obj, + }); +} + +export interface ListAssessmentsRequest { + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListAssessmentsRequest { + export const filterSensitiveLog = (obj: ListAssessmentsRequest): any => ({ + ...obj, + }); +} + +export interface ListAssessmentsResponse { + /** + *

+ * The metadata associated with the assessment. + *

+ */ + assessmentMetadata?: AssessmentMetadataItem[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListAssessmentsResponse { + export const filterSensitiveLog = (obj: ListAssessmentsResponse): any => ({ + ...obj, + }); +} + +export interface ListControlsRequest { + /** + *

+ * The type of control, such as standard or custom. + *

+ */ + controlType: ControlType | string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListControlsRequest { + export const filterSensitiveLog = (obj: ListControlsRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * The metadata associated with the specified standard or custom control. + *

+ */ +export interface ControlMetadata { + /** + *

+ * The Amazon Resource Name (ARN) of the specified control. + *

+ */ + arn?: string; + + /** + *

+ * The unique identifier for the specified control. + *

+ */ + id?: string; + + /** + *

+ * The name of the specified control. + *

+ */ + name?: string; + + /** + *

+ * The data source that determines from where AWS Audit Manager collects evidence for the control. + *

+ */ + controlSources?: string; + + /** + *

+ * Specifies when the control was created. + *

+ */ + createdAt?: Date; + + /** + *

+ * Specifies when the control was most recently updated. + *

+ */ + lastUpdatedAt?: Date; +} + +export namespace ControlMetadata { + export const filterSensitiveLog = (obj: ControlMetadata): any => ({ + ...obj, + }); +} + +export interface ListControlsResponse { + /** + *

+ * The list of control metadata objects returned by the ListControls API. + *

+ */ + controlMetadataList?: ControlMetadata[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListControlsResponse { + export const filterSensitiveLog = (obj: ListControlsResponse): any => ({ + ...obj, + }); +} + +export interface ListKeywordsForDataSourceRequest { + /** + *

+ * The control mapping data source to which the keywords apply. + *

+ */ + source: SourceType | string | undefined; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListKeywordsForDataSourceRequest { + export const filterSensitiveLog = (obj: ListKeywordsForDataSourceRequest): any => ({ + ...obj, + }); +} + +export interface ListKeywordsForDataSourceResponse { + /** + *

+ * The list of keywords for the specified event mapping source. + *

+ */ + keywords?: string[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListKeywordsForDataSourceResponse { + export const filterSensitiveLog = (obj: ListKeywordsForDataSourceResponse): any => ({ + ...obj, + }); +} + +export interface ListNotificationsRequest { + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; + + /** + *

+ * Represents the maximum number of results per page, or per API request call. + *

+ */ + maxResults?: number; +} + +export namespace ListNotificationsRequest { + export const filterSensitiveLog = (obj: ListNotificationsRequest): any => ({ + ...obj, + }); +} + +/** + *

+ * The notification used to inform a user of an update in AWS Audit Manager. For example, this includes the notification that is sent when a control set is delegated for review. + *

+ */ +export interface Notification { + /** + *

+ * The unique identifier for the notification. + *

+ */ + id?: string; + + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId?: string; + + /** + *

+ * The name of the related assessment. + *

+ */ + assessmentName?: string; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId?: string; + + /** + *

+ * Specifies the name of the control set that the notification is about. + *

+ */ + controlSetName?: string; + + /** + *

+ * The description of the notification. + *

+ */ + description?: string; + + /** + *

+ * The time when the notification was sent. + *

+ */ + eventTime?: Date; + + /** + *

+ * The sender of the notification. + *

+ */ + source?: string; +} + +export namespace Notification { + export const filterSensitiveLog = (obj: Notification): any => ({ + ...obj, + }); +} + +export interface ListNotificationsResponse { + /** + *

+ * The returned list of notifications. + *

+ */ + notifications?: Notification[]; + + /** + *

+ * The pagination token used to fetch the next set of results. + *

+ */ + nextToken?: string; +} + +export namespace ListNotificationsResponse { + export const filterSensitiveLog = (obj: ListNotificationsResponse): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the specified resource. + *

+ */ + resourceArn: string | undefined; +} + +export namespace ListTagsForResourceRequest { + export const filterSensitiveLog = (obj: ListTagsForResourceRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceResponse { + /** + *

+ * The list of tags returned by the ListTagsForResource API. + *

+ */ + tags?: { [key: string]: string }; +} + +export namespace ListTagsForResourceResponse { + export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ + ...obj, + }); +} + +export interface RegisterAccountRequest { + /** + *

+ * The AWS KMS key details. + *

+ */ + kmsKey?: string; + + /** + *

+ * The delegated administrator account for AWS Audit Manager. + *

+ */ + delegatedAdminAccount?: string; +} + +export namespace RegisterAccountRequest { + export const filterSensitiveLog = (obj: RegisterAccountRequest): any => ({ + ...obj, + }); +} + +export interface RegisterAccountResponse { + /** + *

+ * The status of the account registration request. + *

+ */ + status?: AccountStatus | string; +} + +export namespace RegisterAccountResponse { + export const filterSensitiveLog = (obj: RegisterAccountResponse): any => ({ + ...obj, + }); +} + +export interface RegisterOrganizationAdminAccountRequest { + /** + *

+ * The identifier for the specified delegated administrator account. + *

+ */ + adminAccountId: string | undefined; +} + +export namespace RegisterOrganizationAdminAccountRequest { + export const filterSensitiveLog = (obj: RegisterOrganizationAdminAccountRequest): any => ({ + ...obj, + }); +} + +export interface RegisterOrganizationAdminAccountResponse { + /** + *

+ * The identifier for the specified delegated administrator account. + *

+ */ + adminAccountId?: string; + + /** + *

+ * The identifier for the specified AWS organization. + *

+ */ + organizationId?: string; +} + +export namespace RegisterOrganizationAdminAccountResponse { + export const filterSensitiveLog = (obj: RegisterOrganizationAdminAccountResponse): any => ({ + ...obj, + }); +} + +export interface TagResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the specified resource. + *

+ */ + resourceArn: string | undefined; + + /** + *

+ * The tags to be associated with the resource. + *

+ */ + tags: { [key: string]: string } | undefined; +} + +export namespace TagResourceRequest { + export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceResponse {} + +export namespace TagResourceResponse { + export const filterSensitiveLog = (obj: TagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UntagResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the specified resource. + *

+ */ + resourceArn: string | undefined; + + /** + *

+ * The name or key of the tag. + *

+ */ + tagKeys: string[] | undefined; +} + +export namespace UntagResourceRequest { + export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ + ...obj, + }); +} + +export interface UntagResourceResponse {} + +export namespace UntagResourceResponse { + export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The name of the specified assessment to be updated. + *

+ */ + assessmentName?: string; + + /** + *

+ * The description of the specified assessment. + *

+ */ + assessmentDescription?: string; + + /** + *

+ * The scope of the specified assessment. + *

+ */ + scope: Scope | undefined; + + /** + *

+ * The assessment report storage destination for the specified assessment that is being updated. + *

+ */ + assessmentReportsDestination?: AssessmentReportsDestination; + + /** + *

+ * The list of roles for the specified assessment. + *

+ */ + roles?: Role[]; +} + +export namespace UpdateAssessmentRequest { + export const filterSensitiveLog = (obj: UpdateAssessmentRequest): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentResponse { + /** + *

+ * The response object (name of the updated assessment) for the UpdateAssessmentRequest API. + *

+ */ + assessment?: Assessment; +} + +export namespace UpdateAssessmentResponse { + export const filterSensitiveLog = (obj: UpdateAssessmentResponse): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentControlRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * + * The identifier for the specified control. + *

+ */ + controlId: string | undefined; + + /** + *

+ * The status of the specified control. + *

+ */ + controlStatus?: ControlStatus | string; + + /** + *

+ * The comment body text for the specified control. + *

+ */ + commentBody?: string; +} + +export namespace UpdateAssessmentControlRequest { + export const filterSensitiveLog = (obj: UpdateAssessmentControlRequest): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentControlResponse { + /** + *

+ * The name of the updated control set returned by the UpdateAssessmentControl API. + *

+ */ + control?: AssessmentControl; +} + +export namespace UpdateAssessmentControlResponse { + export const filterSensitiveLog = (obj: UpdateAssessmentControlResponse): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentControlSetStatusRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The identifier for the specified control set. + *

+ */ + controlSetId: string | undefined; + + /** + *

+ * The status of the control set that is being updated. + *

+ */ + status: ControlSetStatus | string | undefined; + + /** + *

+ * The comment related to the status update. + *

+ */ + comment: string | undefined; +} + +export namespace UpdateAssessmentControlSetStatusRequest { + export const filterSensitiveLog = (obj: UpdateAssessmentControlSetStatusRequest): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentControlSetStatusResponse { + /** + *

+ * The name of the updated control set returned by the UpdateAssessmentControlSetStatus API. + *

+ */ + controlSet?: AssessmentControlSet; +} + +export namespace UpdateAssessmentControlSetStatusResponse { + export const filterSensitiveLog = (obj: UpdateAssessmentControlSetStatusResponse): any => ({ + ...obj, + }); +} + +/** + *

+ * A controlSet entity that represents a collection of controls in AWS Audit Manager. This does not contain the control set ID. + *

+ */ +export interface UpdateAssessmentFrameworkControlSet { + /** + *

+ * The unique identifier for the control set. + *

+ */ + id?: string; + + /** + *

+ * The name of the control set. + *

+ */ + name?: string; + + /** + *

+ * The list of controls contained within the control set. + *

+ */ + controls?: CreateAssessmentFrameworkControl[]; +} + +export namespace UpdateAssessmentFrameworkControlSet { + export const filterSensitiveLog = (obj: UpdateAssessmentFrameworkControlSet): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentFrameworkRequest { + /** + *

+ * The identifier for the specified framework. + *

+ */ + frameworkId: string | undefined; + + /** + *

+ * The name of the framework to be updated. + *

+ */ + name: string | undefined; + + /** + *

+ * The description of the framework that is to be updated. + *

+ */ + description?: string; + + /** + *

+ * The compliance type that the new custom framework supports, such as CIS or HIPAA. + *

+ */ + complianceType?: string; + + /** + *

+ * The control sets associated with the framework. + *

+ */ + controlSets: UpdateAssessmentFrameworkControlSet[] | undefined; +} + +export namespace UpdateAssessmentFrameworkRequest { + export const filterSensitiveLog = (obj: UpdateAssessmentFrameworkRequest): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentFrameworkResponse { + /** + *

+ * The name of the specified framework. + *

+ */ + framework?: Framework; +} + +export namespace UpdateAssessmentFrameworkResponse { + export const filterSensitiveLog = (obj: UpdateAssessmentFrameworkResponse): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentStatusRequest { + /** + *

+ * The identifier for the specified assessment. + *

+ */ + assessmentId: string | undefined; + + /** + *

+ * The current status of the specified assessment. + *

+ */ + status: AssessmentStatus | string | undefined; +} + +export namespace UpdateAssessmentStatusRequest { + export const filterSensitiveLog = (obj: UpdateAssessmentStatusRequest): any => ({ + ...obj, + }); +} + +export interface UpdateAssessmentStatusResponse { + /** + *

+ * The name of the updated assessment returned by the UpdateAssessmentStatus API. + *

+ */ + assessment?: Assessment; +} + +export namespace UpdateAssessmentStatusResponse { + export const filterSensitiveLog = (obj: UpdateAssessmentStatusResponse): any => ({ + ...obj, + }); +} + +export interface UpdateControlRequest { + /** + *

+ * The identifier for the specified control. + *

+ */ + controlId: string | undefined; + + /** + *

+ * The name of the control to be updated. + *

+ */ + name: string | undefined; + + /** + *

+ * The optional description of the control. + *

+ */ + description?: string; + + /** + *

+ * The steps that to follow to determine if the control has been satisfied. + *

+ */ + testingInformation?: string; + + /** + *

+ * The title of the action plan for remediating the control. + *

+ */ + actionPlanTitle?: string; + + /** + *

+ * + * The recommended actions to carry out if the control is not fulfilled. + *

+ */ + actionPlanInstructions?: string; + + /** + *

+ * The data source that determines from where AWS Audit Manager collects evidence for the control. + *

+ */ + controlMappingSources: ControlMappingSource[] | undefined; +} + +export namespace UpdateControlRequest { + export const filterSensitiveLog = (obj: UpdateControlRequest): any => ({ + ...obj, + }); +} + +export interface UpdateControlResponse { + /** + *

+ * The name of the updated control set returned by the UpdateControl API. + *

+ */ + control?: Control; +} + +export namespace UpdateControlResponse { + export const filterSensitiveLog = (obj: UpdateControlResponse): any => ({ + ...obj, + }); +} + +export interface UpdateSettingsRequest { + /** + *

+ * The Amazon Simple Notification Service (Amazon SNS) topic to which AWS Audit Manager sends notifications. + *

+ */ + snsTopic?: string; + + /** + *

+ * The default storage destination for assessment reports. + *

+ */ + defaultAssessmentReportsDestination?: AssessmentReportsDestination; + + /** + *

+ * A list of the default audit owners. + *

+ */ + defaultProcessOwners?: Role[]; + + /** + *

+ * The AWS KMS key details. + *

+ */ + kmsKey?: string; +} + +export namespace UpdateSettingsRequest { + export const filterSensitiveLog = (obj: UpdateSettingsRequest): any => ({ + ...obj, + }); +} + +export interface UpdateSettingsResponse { + /** + *

+ * The current list of settings. + *

+ */ + settings?: Settings; +} + +export namespace UpdateSettingsResponse { + export const filterSensitiveLog = (obj: UpdateSettingsResponse): any => ({ + ...obj, + }); +} + +export interface ValidateAssessmentReportIntegrityRequest { + /** + *

+ * The relative path of the specified Amazon S3 bucket in which the assessment report is stored. + *

+ */ + s3RelativePath: string | undefined; +} + +export namespace ValidateAssessmentReportIntegrityRequest { + export const filterSensitiveLog = (obj: ValidateAssessmentReportIntegrityRequest): any => ({ + ...obj, + }); +} + +export interface ValidateAssessmentReportIntegrityResponse { + /** + *

+ * Specifies whether the signature key is valid. + *

+ */ + signatureValid?: boolean; + + /** + *

+ * The signature algorithm used to code sign the assessment report file. + *

+ */ + signatureAlgorithm?: string; + + /** + *

+ * The date and time signature that specifies when the assessment report was created. + *

+ */ + signatureDateTime?: string; + + /** + *

+ * The unique identifier for the validation signature key. + *

+ */ + signatureKeyId?: string; + + /** + *

+ * Represents any errors that occurred when validating the assessment report. + *

+ */ + validationErrors?: string[]; +} + +export namespace ValidateAssessmentReportIntegrityResponse { + export const filterSensitiveLog = (obj: ValidateAssessmentReportIntegrityResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-auditmanager/package.json b/clients/client-auditmanager/package.json new file mode 100644 index 0000000000000..f012cf97aa073 --- /dev/null +++ b/clients/client-auditmanager/package.json @@ -0,0 +1,83 @@ +{ + "name": "@aws-sdk/client-auditmanager", + "description": "AWS SDK for JavaScript Auditmanager Client for Node.js, Browser and React Native", + "version": "1.0.0-rc.1", + "scripts": { + "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation", + "build-documentation": "yarn remove-documentation && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "yarn build:cjs", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "test": "yarn build && jest --coverage --passWithNoTests", + "build:cjs": "tsc -p tsconfig.json", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn build:cjs && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "react-native": { + "./runtimeConfig": "./runtimeConfig.native" + }, + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.8", + "@aws-sdk/credential-provider-node": "1.0.0-rc.8", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.8", + "@aws-sdk/hash-node": "1.0.0-rc.8", + "@aws-sdk/invalid-dependency": "1.0.0-rc.8", + "@aws-sdk/middleware-content-length": "1.0.0-rc.8", + "@aws-sdk/middleware-host-header": "1.0.0-rc.8", + "@aws-sdk/middleware-logger": "1.0.0-rc.8", + "@aws-sdk/middleware-retry": "1.0.0-rc.8", + "@aws-sdk/middleware-serde": "1.0.0-rc.8", + "@aws-sdk/middleware-signing": "1.0.0-rc.8", + "@aws-sdk/middleware-stack": "1.0.0-rc.8", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.8", + "@aws-sdk/node-config-provider": "1.0.0-rc.8", + "@aws-sdk/node-http-handler": "1.0.0-rc.8", + "@aws-sdk/protocol-http": "1.0.0-rc.8", + "@aws-sdk/smithy-client": "1.0.0-rc.8", + "@aws-sdk/url-parser-browser": "1.0.0-rc.8", + "@aws-sdk/url-parser-node": "1.0.0-rc.8", + "@aws-sdk/util-base64-browser": "1.0.0-rc.8", + "@aws-sdk/util-base64-node": "1.0.0-rc.8", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.8", + "@aws-sdk/util-body-length-node": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.8", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.8", + "@aws-sdk/util-utf8-node": "1.0.0-rc.8", + "tslib": "^2.0.0" + }, + "devDependencies": { + "@aws-sdk/client-documentation-generator": "1.0.0-rc.8", + "@aws-sdk/types": "1.0.0-rc.8", + "@types/node": "^12.7.5", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "typedoc": "^0.19.2", + "typescript": "~4.1.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/master/clients/client-auditmanager", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-auditmanager" + } +} diff --git a/clients/client-auditmanager/pagination/GetChangeLogsPaginator.ts b/clients/client-auditmanager/pagination/GetChangeLogsPaginator.ts new file mode 100644 index 0000000000000..f298501668b46 --- /dev/null +++ b/clients/client-auditmanager/pagination/GetChangeLogsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + GetChangeLogsCommand, + GetChangeLogsCommandInput, + GetChangeLogsCommandOutput, +} from "../commands/GetChangeLogsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: GetChangeLogsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetChangeLogsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: GetChangeLogsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getChangeLogs(input, ...args); +}; +export async function* paginateGetChangeLogs( + config: AuditManagerPaginationConfiguration, + input: GetChangeLogsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetChangeLogsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/GetDelegationsPaginator.ts b/clients/client-auditmanager/pagination/GetDelegationsPaginator.ts new file mode 100644 index 0000000000000..03df9e4647fea --- /dev/null +++ b/clients/client-auditmanager/pagination/GetDelegationsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + GetDelegationsCommand, + GetDelegationsCommandInput, + GetDelegationsCommandOutput, +} from "../commands/GetDelegationsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: GetDelegationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetDelegationsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: GetDelegationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getDelegations(input, ...args); +}; +export async function* paginateGetDelegations( + config: AuditManagerPaginationConfiguration, + input: GetDelegationsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetDelegationsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/GetEvidenceByEvidenceFolderPaginator.ts b/clients/client-auditmanager/pagination/GetEvidenceByEvidenceFolderPaginator.ts new file mode 100644 index 0000000000000..ae94610cf73f5 --- /dev/null +++ b/clients/client-auditmanager/pagination/GetEvidenceByEvidenceFolderPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + GetEvidenceByEvidenceFolderCommand, + GetEvidenceByEvidenceFolderCommandInput, + GetEvidenceByEvidenceFolderCommandOutput, +} from "../commands/GetEvidenceByEvidenceFolderCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: GetEvidenceByEvidenceFolderCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetEvidenceByEvidenceFolderCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: GetEvidenceByEvidenceFolderCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getEvidenceByEvidenceFolder(input, ...args); +}; +export async function* paginateGetEvidenceByEvidenceFolder( + config: AuditManagerPaginationConfiguration, + input: GetEvidenceByEvidenceFolderCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetEvidenceByEvidenceFolderCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentControlPaginator.ts b/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentControlPaginator.ts new file mode 100644 index 0000000000000..13675485bf782 --- /dev/null +++ b/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentControlPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + GetEvidenceFoldersByAssessmentControlCommand, + GetEvidenceFoldersByAssessmentControlCommandInput, + GetEvidenceFoldersByAssessmentControlCommandOutput, +} from "../commands/GetEvidenceFoldersByAssessmentControlCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: GetEvidenceFoldersByAssessmentControlCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetEvidenceFoldersByAssessmentControlCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: GetEvidenceFoldersByAssessmentControlCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getEvidenceFoldersByAssessmentControl(input, ...args); +}; +export async function* paginateGetEvidenceFoldersByAssessmentControl( + config: AuditManagerPaginationConfiguration, + input: GetEvidenceFoldersByAssessmentControlCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetEvidenceFoldersByAssessmentControlCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentPaginator.ts b/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentPaginator.ts new file mode 100644 index 0000000000000..e42874030b3fd --- /dev/null +++ b/clients/client-auditmanager/pagination/GetEvidenceFoldersByAssessmentPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + GetEvidenceFoldersByAssessmentCommand, + GetEvidenceFoldersByAssessmentCommandInput, + GetEvidenceFoldersByAssessmentCommandOutput, +} from "../commands/GetEvidenceFoldersByAssessmentCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: GetEvidenceFoldersByAssessmentCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetEvidenceFoldersByAssessmentCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: GetEvidenceFoldersByAssessmentCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getEvidenceFoldersByAssessment(input, ...args); +}; +export async function* paginateGetEvidenceFoldersByAssessment( + config: AuditManagerPaginationConfiguration, + input: GetEvidenceFoldersByAssessmentCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetEvidenceFoldersByAssessmentCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/Interfaces.ts b/clients/client-auditmanager/pagination/Interfaces.ts new file mode 100644 index 0000000000000..692c14561d4ec --- /dev/null +++ b/clients/client-auditmanager/pagination/Interfaces.ts @@ -0,0 +1,7 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { PaginationConfiguration } from "@aws-sdk/types"; + +export interface AuditManagerPaginationConfiguration extends PaginationConfiguration { + client: AuditManager | AuditManagerClient; +} diff --git a/clients/client-auditmanager/pagination/ListAssessmentFrameworksPaginator.ts b/clients/client-auditmanager/pagination/ListAssessmentFrameworksPaginator.ts new file mode 100644 index 0000000000000..859ea1de902ed --- /dev/null +++ b/clients/client-auditmanager/pagination/ListAssessmentFrameworksPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListAssessmentFrameworksCommand, + ListAssessmentFrameworksCommandInput, + ListAssessmentFrameworksCommandOutput, +} from "../commands/ListAssessmentFrameworksCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListAssessmentFrameworksCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAssessmentFrameworksCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListAssessmentFrameworksCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAssessmentFrameworks(input, ...args); +}; +export async function* paginateListAssessmentFrameworks( + config: AuditManagerPaginationConfiguration, + input: ListAssessmentFrameworksCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAssessmentFrameworksCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/ListAssessmentReportsPaginator.ts b/clients/client-auditmanager/pagination/ListAssessmentReportsPaginator.ts new file mode 100644 index 0000000000000..143da501fac77 --- /dev/null +++ b/clients/client-auditmanager/pagination/ListAssessmentReportsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListAssessmentReportsCommand, + ListAssessmentReportsCommandInput, + ListAssessmentReportsCommandOutput, +} from "../commands/ListAssessmentReportsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListAssessmentReportsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAssessmentReportsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListAssessmentReportsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAssessmentReports(input, ...args); +}; +export async function* paginateListAssessmentReports( + config: AuditManagerPaginationConfiguration, + input: ListAssessmentReportsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAssessmentReportsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/ListAssessmentsPaginator.ts b/clients/client-auditmanager/pagination/ListAssessmentsPaginator.ts new file mode 100644 index 0000000000000..3865a3f3220f2 --- /dev/null +++ b/clients/client-auditmanager/pagination/ListAssessmentsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListAssessmentsCommand, + ListAssessmentsCommandInput, + ListAssessmentsCommandOutput, +} from "../commands/ListAssessmentsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListAssessmentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAssessmentsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListAssessmentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAssessments(input, ...args); +}; +export async function* paginateListAssessments( + config: AuditManagerPaginationConfiguration, + input: ListAssessmentsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAssessmentsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/ListControlsPaginator.ts b/clients/client-auditmanager/pagination/ListControlsPaginator.ts new file mode 100644 index 0000000000000..d1eab1eed29d7 --- /dev/null +++ b/clients/client-auditmanager/pagination/ListControlsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListControlsCommand, + ListControlsCommandInput, + ListControlsCommandOutput, +} from "../commands/ListControlsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListControlsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListControlsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListControlsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listControls(input, ...args); +}; +export async function* paginateListControls( + config: AuditManagerPaginationConfiguration, + input: ListControlsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListControlsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/ListKeywordsForDataSourcePaginator.ts b/clients/client-auditmanager/pagination/ListKeywordsForDataSourcePaginator.ts new file mode 100644 index 0000000000000..142a34f0ae036 --- /dev/null +++ b/clients/client-auditmanager/pagination/ListKeywordsForDataSourcePaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListKeywordsForDataSourceCommand, + ListKeywordsForDataSourceCommandInput, + ListKeywordsForDataSourceCommandOutput, +} from "../commands/ListKeywordsForDataSourceCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListKeywordsForDataSourceCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListKeywordsForDataSourceCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListKeywordsForDataSourceCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listKeywordsForDataSource(input, ...args); +}; +export async function* paginateListKeywordsForDataSource( + config: AuditManagerPaginationConfiguration, + input: ListKeywordsForDataSourceCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListKeywordsForDataSourceCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/pagination/ListNotificationsPaginator.ts b/clients/client-auditmanager/pagination/ListNotificationsPaginator.ts new file mode 100644 index 0000000000000..b5ee93c6b7551 --- /dev/null +++ b/clients/client-auditmanager/pagination/ListNotificationsPaginator.ts @@ -0,0 +1,57 @@ +import { AuditManager } from "../AuditManager"; +import { AuditManagerClient } from "../AuditManagerClient"; +import { + ListNotificationsCommand, + ListNotificationsCommandInput, + ListNotificationsCommandOutput, +} from "../commands/ListNotificationsCommand"; +import { AuditManagerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AuditManagerClient, + input: ListNotificationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListNotificationsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AuditManager, + input: ListNotificationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listNotifications(input, ...args); +}; +export async function* paginateListNotifications( + config: AuditManagerPaginationConfiguration, + input: ListNotificationsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListNotificationsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AuditManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AuditManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AuditManager | AuditManagerClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-auditmanager/protocols/Aws_restJson1.ts b/clients/client-auditmanager/protocols/Aws_restJson1.ts new file mode 100644 index 0000000000000..0f2d72be472c6 --- /dev/null +++ b/clients/client-auditmanager/protocols/Aws_restJson1.ts @@ -0,0 +1,7071 @@ +import { + AssociateAssessmentReportEvidenceFolderCommandInput, + AssociateAssessmentReportEvidenceFolderCommandOutput, +} from "../commands/AssociateAssessmentReportEvidenceFolderCommand"; +import { + BatchAssociateAssessmentReportEvidenceCommandInput, + BatchAssociateAssessmentReportEvidenceCommandOutput, +} from "../commands/BatchAssociateAssessmentReportEvidenceCommand"; +import { + BatchCreateDelegationByAssessmentCommandInput, + BatchCreateDelegationByAssessmentCommandOutput, +} from "../commands/BatchCreateDelegationByAssessmentCommand"; +import { + BatchDeleteDelegationByAssessmentCommandInput, + BatchDeleteDelegationByAssessmentCommandOutput, +} from "../commands/BatchDeleteDelegationByAssessmentCommand"; +import { + BatchDisassociateAssessmentReportEvidenceCommandInput, + BatchDisassociateAssessmentReportEvidenceCommandOutput, +} from "../commands/BatchDisassociateAssessmentReportEvidenceCommand"; +import { + BatchImportEvidenceToAssessmentControlCommandInput, + BatchImportEvidenceToAssessmentControlCommandOutput, +} from "../commands/BatchImportEvidenceToAssessmentControlCommand"; +import { CreateAssessmentCommandInput, CreateAssessmentCommandOutput } from "../commands/CreateAssessmentCommand"; +import { + CreateAssessmentFrameworkCommandInput, + CreateAssessmentFrameworkCommandOutput, +} from "../commands/CreateAssessmentFrameworkCommand"; +import { + CreateAssessmentReportCommandInput, + CreateAssessmentReportCommandOutput, +} from "../commands/CreateAssessmentReportCommand"; +import { CreateControlCommandInput, CreateControlCommandOutput } from "../commands/CreateControlCommand"; +import { DeleteAssessmentCommandInput, DeleteAssessmentCommandOutput } from "../commands/DeleteAssessmentCommand"; +import { + DeleteAssessmentFrameworkCommandInput, + DeleteAssessmentFrameworkCommandOutput, +} from "../commands/DeleteAssessmentFrameworkCommand"; +import { + DeleteAssessmentReportCommandInput, + DeleteAssessmentReportCommandOutput, +} from "../commands/DeleteAssessmentReportCommand"; +import { DeleteControlCommandInput, DeleteControlCommandOutput } from "../commands/DeleteControlCommand"; +import { DeregisterAccountCommandInput, DeregisterAccountCommandOutput } from "../commands/DeregisterAccountCommand"; +import { + DeregisterOrganizationAdminAccountCommandInput, + DeregisterOrganizationAdminAccountCommandOutput, +} from "../commands/DeregisterOrganizationAdminAccountCommand"; +import { + DisassociateAssessmentReportEvidenceFolderCommandInput, + DisassociateAssessmentReportEvidenceFolderCommandOutput, +} from "../commands/DisassociateAssessmentReportEvidenceFolderCommand"; +import { GetAccountStatusCommandInput, GetAccountStatusCommandOutput } from "../commands/GetAccountStatusCommand"; +import { GetAssessmentCommandInput, GetAssessmentCommandOutput } from "../commands/GetAssessmentCommand"; +import { + GetAssessmentFrameworkCommandInput, + GetAssessmentFrameworkCommandOutput, +} from "../commands/GetAssessmentFrameworkCommand"; +import { + GetAssessmentReportUrlCommandInput, + GetAssessmentReportUrlCommandOutput, +} from "../commands/GetAssessmentReportUrlCommand"; +import { GetChangeLogsCommandInput, GetChangeLogsCommandOutput } from "../commands/GetChangeLogsCommand"; +import { GetControlCommandInput, GetControlCommandOutput } from "../commands/GetControlCommand"; +import { GetDelegationsCommandInput, GetDelegationsCommandOutput } from "../commands/GetDelegationsCommand"; +import { + GetEvidenceByEvidenceFolderCommandInput, + GetEvidenceByEvidenceFolderCommandOutput, +} from "../commands/GetEvidenceByEvidenceFolderCommand"; +import { GetEvidenceCommandInput, GetEvidenceCommandOutput } from "../commands/GetEvidenceCommand"; +import { GetEvidenceFolderCommandInput, GetEvidenceFolderCommandOutput } from "../commands/GetEvidenceFolderCommand"; +import { + GetEvidenceFoldersByAssessmentCommandInput, + GetEvidenceFoldersByAssessmentCommandOutput, +} from "../commands/GetEvidenceFoldersByAssessmentCommand"; +import { + GetEvidenceFoldersByAssessmentControlCommandInput, + GetEvidenceFoldersByAssessmentControlCommandOutput, +} from "../commands/GetEvidenceFoldersByAssessmentControlCommand"; +import { + GetOrganizationAdminAccountCommandInput, + GetOrganizationAdminAccountCommandOutput, +} from "../commands/GetOrganizationAdminAccountCommand"; +import { GetServicesInScopeCommandInput, GetServicesInScopeCommandOutput } from "../commands/GetServicesInScopeCommand"; +import { GetSettingsCommandInput, GetSettingsCommandOutput } from "../commands/GetSettingsCommand"; +import { + ListAssessmentFrameworksCommandInput, + ListAssessmentFrameworksCommandOutput, +} from "../commands/ListAssessmentFrameworksCommand"; +import { + ListAssessmentReportsCommandInput, + ListAssessmentReportsCommandOutput, +} from "../commands/ListAssessmentReportsCommand"; +import { ListAssessmentsCommandInput, ListAssessmentsCommandOutput } from "../commands/ListAssessmentsCommand"; +import { ListControlsCommandInput, ListControlsCommandOutput } from "../commands/ListControlsCommand"; +import { + ListKeywordsForDataSourceCommandInput, + ListKeywordsForDataSourceCommandOutput, +} from "../commands/ListKeywordsForDataSourceCommand"; +import { ListNotificationsCommandInput, ListNotificationsCommandOutput } from "../commands/ListNotificationsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { RegisterAccountCommandInput, RegisterAccountCommandOutput } from "../commands/RegisterAccountCommand"; +import { + RegisterOrganizationAdminAccountCommandInput, + RegisterOrganizationAdminAccountCommandOutput, +} from "../commands/RegisterOrganizationAdminAccountCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; +import { UpdateAssessmentCommandInput, UpdateAssessmentCommandOutput } from "../commands/UpdateAssessmentCommand"; +import { + UpdateAssessmentControlCommandInput, + UpdateAssessmentControlCommandOutput, +} from "../commands/UpdateAssessmentControlCommand"; +import { + UpdateAssessmentControlSetStatusCommandInput, + UpdateAssessmentControlSetStatusCommandOutput, +} from "../commands/UpdateAssessmentControlSetStatusCommand"; +import { + UpdateAssessmentFrameworkCommandInput, + UpdateAssessmentFrameworkCommandOutput, +} from "../commands/UpdateAssessmentFrameworkCommand"; +import { + UpdateAssessmentStatusCommandInput, + UpdateAssessmentStatusCommandOutput, +} from "../commands/UpdateAssessmentStatusCommand"; +import { UpdateControlCommandInput, UpdateControlCommandOutput } from "../commands/UpdateControlCommand"; +import { UpdateSettingsCommandInput, UpdateSettingsCommandOutput } from "../commands/UpdateSettingsCommand"; +import { + ValidateAssessmentReportIntegrityCommandInput, + ValidateAssessmentReportIntegrityCommandOutput, +} from "../commands/ValidateAssessmentReportIntegrityCommand"; +import { + AWSAccount, + AWSService, + AccessDeniedException, + Assessment, + AssessmentControl, + AssessmentControlSet, + AssessmentEvidenceFolder, + AssessmentFramework, + AssessmentFrameworkMetadata, + AssessmentMetadata, + AssessmentMetadataItem, + AssessmentReport, + AssessmentReportEvidenceError, + AssessmentReportMetadata, + AssessmentReportsDestination, + BatchCreateDelegationByAssessmentError, + BatchDeleteDelegationByAssessmentError, + BatchImportEvidenceToAssessmentControlError, + ChangeLog, + Control, + ControlComment, + ControlMappingSource, + ControlMetadata, + ControlSet, + CreateAssessmentFrameworkControl, + CreateAssessmentFrameworkControlSet, + CreateControlMappingSource, + CreateDelegationRequest, + Delegation, + DelegationMetadata, + Evidence, + Framework, + FrameworkMetadata, + InternalServerException, + ManualEvidence, + Notification, + Resource, + ResourceNotFoundException, + Role, + Scope, + ServiceMetadata, + Settings, + SourceKeyword, + URL, + UpdateAssessmentFrameworkControlSet, + ValidationException, + ValidationExceptionField, +} from "../models/models_0"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { + SmithyException as __SmithyException, + extendedEncodeURIComponent as __extendedEncodeURIComponent, +} from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export const serializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand = async ( + input: AssociateAssessmentReportEvidenceFolderCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/associateToAssessmentReport"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.evidenceFolderId !== undefined && { evidenceFolderId: input.evidenceFolderId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand = async ( + input: BatchAssociateAssessmentReportEvidenceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/batchAssociateToAssessmentReport"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.evidenceFolderId !== undefined && { evidenceFolderId: input.evidenceFolderId }), + ...(input.evidenceIds !== undefined && { + evidenceIds: serializeAws_restJson1EvidenceIds(input.evidenceIds, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1BatchCreateDelegationByAssessmentCommand = async ( + input: BatchCreateDelegationByAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/delegations"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.createDelegationRequests !== undefined && { + createDelegationRequests: serializeAws_restJson1CreateDelegationRequests(input.createDelegationRequests, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1BatchDeleteDelegationByAssessmentCommand = async ( + input: BatchDeleteDelegationByAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/delegations"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.delegationIds !== undefined && { + delegationIds: serializeAws_restJson1DelegationIds(input.delegationIds, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand = async ( + input: BatchDisassociateAssessmentReportEvidenceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/batchDisassociateFromAssessmentReport"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.evidenceFolderId !== undefined && { evidenceFolderId: input.evidenceFolderId }), + ...(input.evidenceIds !== undefined && { + evidenceIds: serializeAws_restJson1EvidenceIds(input.evidenceIds, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand = async ( + input: BatchImportEvidenceToAssessmentControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}/evidence"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + let body: any; + body = JSON.stringify({ + ...(input.manualEvidence !== undefined && { + manualEvidence: serializeAws_restJson1ManualEvidenceList(input.manualEvidence, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateAssessmentCommand = async ( + input: CreateAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments"; + let body: any; + body = JSON.stringify({ + ...(input.assessmentReportsDestination !== undefined && { + assessmentReportsDestination: serializeAws_restJson1AssessmentReportsDestination( + input.assessmentReportsDestination, + context + ), + }), + ...(input.description !== undefined && { description: input.description }), + ...(input.frameworkId !== undefined && { frameworkId: input.frameworkId }), + ...(input.name !== undefined && { name: input.name }), + ...(input.roles !== undefined && { roles: serializeAws_restJson1Roles(input.roles, context) }), + ...(input.scope !== undefined && { scope: serializeAws_restJson1Scope(input.scope, context) }), + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateAssessmentFrameworkCommand = async ( + input: CreateAssessmentFrameworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessmentFrameworks"; + let body: any; + body = JSON.stringify({ + ...(input.complianceType !== undefined && { complianceType: input.complianceType }), + ...(input.controlSets !== undefined && { + controlSets: serializeAws_restJson1CreateAssessmentFrameworkControlSets(input.controlSets, context), + }), + ...(input.description !== undefined && { description: input.description }), + ...(input.name !== undefined && { name: input.name }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateAssessmentReportCommand = async ( + input: CreateAssessmentReportCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/reports"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.description !== undefined && { description: input.description }), + ...(input.name !== undefined && { name: input.name }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateControlCommand = async ( + input: CreateControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/controls"; + let body: any; + body = JSON.stringify({ + ...(input.actionPlanInstructions !== undefined && { actionPlanInstructions: input.actionPlanInstructions }), + ...(input.actionPlanTitle !== undefined && { actionPlanTitle: input.actionPlanTitle }), + ...(input.controlMappingSources !== undefined && { + controlMappingSources: serializeAws_restJson1CreateControlMappingSources(input.controlMappingSources, context), + }), + ...(input.description !== undefined && { description: input.description }), + ...(input.name !== undefined && { name: input.name }), + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + ...(input.testingInformation !== undefined && { testingInformation: input.testingInformation }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteAssessmentCommand = async ( + input: DeleteAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteAssessmentFrameworkCommand = async ( + input: DeleteAssessmentFrameworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessmentFrameworks/{frameworkId}"; + if (input.frameworkId !== undefined) { + const labelValue: string = input.frameworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: frameworkId."); + } + resolvedPath = resolvedPath.replace("{frameworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: frameworkId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteAssessmentReportCommand = async ( + input: DeleteAssessmentReportCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/reports/{assessmentReportId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.assessmentReportId !== undefined) { + const labelValue: string = input.assessmentReportId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentReportId."); + } + resolvedPath = resolvedPath.replace("{assessmentReportId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentReportId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteControlCommand = async ( + input: DeleteControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/controls/{controlId}"; + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeregisterAccountCommand = async ( + input: DeregisterAccountCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/account/deregisterAccount"; + let body: any; + body = "{}"; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeregisterOrganizationAdminAccountCommand = async ( + input: DeregisterOrganizationAdminAccountCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/account/deregisterOrganizationAdminAccount"; + let body: any; + body = JSON.stringify({ + ...(input.adminAccountId !== undefined && { adminAccountId: input.adminAccountId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand = async ( + input: DisassociateAssessmentReportEvidenceFolderCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/disassociateFromAssessmentReport"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.evidenceFolderId !== undefined && { evidenceFolderId: input.evidenceFolderId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetAccountStatusCommand = async ( + input: GetAccountStatusCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/account/status"; + let body: any; + body = "{}"; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetAssessmentCommand = async ( + input: GetAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetAssessmentFrameworkCommand = async ( + input: GetAssessmentFrameworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessmentFrameworks/{frameworkId}"; + if (input.frameworkId !== undefined) { + const labelValue: string = input.frameworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: frameworkId."); + } + resolvedPath = resolvedPath.replace("{frameworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: frameworkId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetAssessmentReportUrlCommand = async ( + input: GetAssessmentReportUrlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/reports/{assessmentReportId}/url"; + if (input.assessmentReportId !== undefined) { + const labelValue: string = input.assessmentReportId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentReportId."); + } + resolvedPath = resolvedPath.replace("{assessmentReportId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentReportId."); + } + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetChangeLogsCommand = async ( + input: GetChangeLogsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/changelogs"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + const query: any = { + ...(input.controlSetId !== undefined && { controlSetId: input.controlSetId }), + ...(input.controlId !== undefined && { controlId: input.controlId }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1GetControlCommand = async ( + input: GetControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/controls/{controlId}"; + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetDelegationsCommand = async ( + input: GetDelegationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/delegations"; + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1GetEvidenceCommand = async ( + input: GetEvidenceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = + "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence/{evidenceId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.evidenceFolderId !== undefined) { + const labelValue: string = input.evidenceFolderId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: evidenceFolderId."); + } + resolvedPath = resolvedPath.replace("{evidenceFolderId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: evidenceFolderId."); + } + if (input.evidenceId !== undefined) { + const labelValue: string = input.evidenceId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: evidenceId."); + } + resolvedPath = resolvedPath.replace("{evidenceId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: evidenceId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetEvidenceByEvidenceFolderCommand = async ( + input: GetEvidenceByEvidenceFolderCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = + "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.evidenceFolderId !== undefined) { + const labelValue: string = input.evidenceFolderId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: evidenceFolderId."); + } + resolvedPath = resolvedPath.replace("{evidenceFolderId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: evidenceFolderId."); + } + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1GetEvidenceFolderCommand = async ( + input: GetEvidenceFolderCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.evidenceFolderId !== undefined) { + const labelValue: string = input.evidenceFolderId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: evidenceFolderId."); + } + resolvedPath = resolvedPath.replace("{evidenceFolderId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: evidenceFolderId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetEvidenceFoldersByAssessmentCommand = async ( + input: GetEvidenceFoldersByAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/evidenceFolders"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand = async ( + input: GetEvidenceFoldersByAssessmentControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments/{assessmentId}/evidenceFolders-by-assessment-control/{controlSetId}/{controlId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1GetOrganizationAdminAccountCommand = async ( + input: GetOrganizationAdminAccountCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/account/organizationAdminAccount"; + let body: any; + body = "{}"; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetServicesInScopeCommand = async ( + input: GetServicesInScopeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/services"; + let body: any; + body = "{}"; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetSettingsCommand = async ( + input: GetSettingsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/settings/{attribute}"; + if (input.attribute !== undefined) { + const labelValue: string = input.attribute; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: attribute."); + } + resolvedPath = resolvedPath.replace("{attribute}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: attribute."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ListAssessmentFrameworksCommand = async ( + input: ListAssessmentFrameworksCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessmentFrameworks"; + const query: any = { + ...(input.frameworkType !== undefined && { frameworkType: input.frameworkType }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListAssessmentReportsCommand = async ( + input: ListAssessmentReportsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessmentReports"; + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListAssessmentsCommand = async ( + input: ListAssessmentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/assessments"; + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListControlsCommand = async ( + input: ListControlsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/controls"; + const query: any = { + ...(input.controlType !== undefined && { controlType: input.controlType }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListKeywordsForDataSourceCommand = async ( + input: ListKeywordsForDataSourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/dataSourceKeywords"; + const query: any = { + ...(input.source !== undefined && { source: input.source }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListNotificationsCommand = async ( + input: ListNotificationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/notifications"; + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1RegisterAccountCommand = async ( + input: RegisterAccountCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/account/registerAccount"; + let body: any; + body = JSON.stringify({ + ...(input.delegatedAdminAccount !== undefined && { delegatedAdminAccount: input.delegatedAdminAccount }), + ...(input.kmsKey !== undefined && { kmsKey: input.kmsKey }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1RegisterOrganizationAdminAccountCommand = async ( + input: RegisterOrganizationAdminAccountCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/account/registerOrganizationAdminAccount"; + let body: any; + body = JSON.stringify({ + ...(input.adminAccountId !== undefined && { adminAccountId: input.adminAccountId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + const query: any = { + ...(input.tagKeys !== undefined && { tagKeys: (input.tagKeys || []).map((_entry) => _entry) }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1UpdateAssessmentCommand = async ( + input: UpdateAssessmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.assessmentDescription !== undefined && { assessmentDescription: input.assessmentDescription }), + ...(input.assessmentName !== undefined && { assessmentName: input.assessmentName }), + ...(input.assessmentReportsDestination !== undefined && { + assessmentReportsDestination: serializeAws_restJson1AssessmentReportsDestination( + input.assessmentReportsDestination, + context + ), + }), + ...(input.roles !== undefined && { roles: serializeAws_restJson1Roles(input.roles, context) }), + ...(input.scope !== undefined && { scope: serializeAws_restJson1Scope(input.scope, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateAssessmentControlCommand = async ( + input: UpdateAssessmentControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + let body: any; + body = JSON.stringify({ + ...(input.commentBody !== undefined && { commentBody: input.commentBody }), + ...(input.controlStatus !== undefined && { controlStatus: input.controlStatus }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateAssessmentControlSetStatusCommand = async ( + input: UpdateAssessmentControlSetStatusCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/controlSets/{controlSetId}/status"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + if (input.controlSetId !== undefined) { + const labelValue: string = input.controlSetId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlSetId."); + } + resolvedPath = resolvedPath.replace("{controlSetId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlSetId."); + } + let body: any; + body = JSON.stringify({ + ...(input.comment !== undefined && { comment: input.comment }), + ...(input.status !== undefined && { status: input.status }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateAssessmentFrameworkCommand = async ( + input: UpdateAssessmentFrameworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessmentFrameworks/{frameworkId}"; + if (input.frameworkId !== undefined) { + const labelValue: string = input.frameworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: frameworkId."); + } + resolvedPath = resolvedPath.replace("{frameworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: frameworkId."); + } + let body: any; + body = JSON.stringify({ + ...(input.complianceType !== undefined && { complianceType: input.complianceType }), + ...(input.controlSets !== undefined && { + controlSets: serializeAws_restJson1UpdateAssessmentFrameworkControlSets(input.controlSets, context), + }), + ...(input.description !== undefined && { description: input.description }), + ...(input.name !== undefined && { name: input.name }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateAssessmentStatusCommand = async ( + input: UpdateAssessmentStatusCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessments/{assessmentId}/status"; + if (input.assessmentId !== undefined) { + const labelValue: string = input.assessmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: assessmentId."); + } + resolvedPath = resolvedPath.replace("{assessmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: assessmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.status !== undefined && { status: input.status }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateControlCommand = async ( + input: UpdateControlCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/controls/{controlId}"; + if (input.controlId !== undefined) { + const labelValue: string = input.controlId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: controlId."); + } + resolvedPath = resolvedPath.replace("{controlId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: controlId."); + } + let body: any; + body = JSON.stringify({ + ...(input.actionPlanInstructions !== undefined && { actionPlanInstructions: input.actionPlanInstructions }), + ...(input.actionPlanTitle !== undefined && { actionPlanTitle: input.actionPlanTitle }), + ...(input.controlMappingSources !== undefined && { + controlMappingSources: serializeAws_restJson1ControlMappingSources(input.controlMappingSources, context), + }), + ...(input.description !== undefined && { description: input.description }), + ...(input.name !== undefined && { name: input.name }), + ...(input.testingInformation !== undefined && { testingInformation: input.testingInformation }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateSettingsCommand = async ( + input: UpdateSettingsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/settings"; + let body: any; + body = JSON.stringify({ + ...(input.defaultAssessmentReportsDestination !== undefined && { + defaultAssessmentReportsDestination: serializeAws_restJson1AssessmentReportsDestination( + input.defaultAssessmentReportsDestination, + context + ), + }), + ...(input.defaultProcessOwners !== undefined && { + defaultProcessOwners: serializeAws_restJson1Roles(input.defaultProcessOwners, context), + }), + ...(input.kmsKey !== undefined && { kmsKey: input.kmsKey }), + ...(input.snsTopic !== undefined && { snsTopic: input.snsTopic }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ValidateAssessmentReportIntegrityCommand = async ( + input: ValidateAssessmentReportIntegrityCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/assessmentReports/integrity"; + let body: any; + body = JSON.stringify({ + ...(input.s3RelativePath !== undefined && { s3RelativePath: input.s3RelativePath }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const deserializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommandError(output, context); + } + const contents: AssociateAssessmentReportEvidenceFolderCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1AssociateAssessmentReportEvidenceFolderCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommandError(output, context); + } + const contents: BatchAssociateAssessmentReportEvidenceCommandOutput = { + $metadata: deserializeMetadata(output), + errors: undefined, + evidenceIds: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.errors !== undefined && data.errors !== null) { + contents.errors = deserializeAws_restJson1AssessmentReportEvidenceErrors(data.errors, context); + } + if (data.evidenceIds !== undefined && data.evidenceIds !== null) { + contents.evidenceIds = deserializeAws_restJson1EvidenceIds(data.evidenceIds, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1BatchAssociateAssessmentReportEvidenceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1BatchCreateDelegationByAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1BatchCreateDelegationByAssessmentCommandError(output, context); + } + const contents: BatchCreateDelegationByAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + delegations: undefined, + errors: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.delegations !== undefined && data.delegations !== null) { + contents.delegations = deserializeAws_restJson1Delegations(data.delegations, context); + } + if (data.errors !== undefined && data.errors !== null) { + contents.errors = deserializeAws_restJson1BatchCreateDelegationByAssessmentErrors(data.errors, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1BatchCreateDelegationByAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1BatchDeleteDelegationByAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1BatchDeleteDelegationByAssessmentCommandError(output, context); + } + const contents: BatchDeleteDelegationByAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + errors: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.errors !== undefined && data.errors !== null) { + contents.errors = deserializeAws_restJson1BatchDeleteDelegationByAssessmentErrors(data.errors, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1BatchDeleteDelegationByAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommandError(output, context); + } + const contents: BatchDisassociateAssessmentReportEvidenceCommandOutput = { + $metadata: deserializeMetadata(output), + errors: undefined, + evidenceIds: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.errors !== undefined && data.errors !== null) { + contents.errors = deserializeAws_restJson1AssessmentReportEvidenceErrors(data.errors, context); + } + if (data.evidenceIds !== undefined && data.evidenceIds !== null) { + contents.evidenceIds = deserializeAws_restJson1EvidenceIds(data.evidenceIds, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1BatchDisassociateAssessmentReportEvidenceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1BatchImportEvidenceToAssessmentControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1BatchImportEvidenceToAssessmentControlCommandError(output, context); + } + const contents: BatchImportEvidenceToAssessmentControlCommandOutput = { + $metadata: deserializeMetadata(output), + errors: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.errors !== undefined && data.errors !== null) { + contents.errors = deserializeAws_restJson1BatchImportEvidenceToAssessmentControlErrors(data.errors, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1BatchImportEvidenceToAssessmentControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateAssessmentCommandError(output, context); + } + const contents: CreateAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + assessment: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessment !== undefined && data.assessment !== null) { + contents.assessment = deserializeAws_restJson1Assessment(data.assessment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateAssessmentFrameworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateAssessmentFrameworkCommandError(output, context); + } + const contents: CreateAssessmentFrameworkCommandOutput = { + $metadata: deserializeMetadata(output), + framework: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.framework !== undefined && data.framework !== null) { + contents.framework = deserializeAws_restJson1Framework(data.framework, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateAssessmentFrameworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateAssessmentReportCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateAssessmentReportCommandError(output, context); + } + const contents: CreateAssessmentReportCommandOutput = { + $metadata: deserializeMetadata(output), + assessmentReport: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessmentReport !== undefined && data.assessmentReport !== null) { + contents.assessmentReport = deserializeAws_restJson1AssessmentReport(data.assessmentReport, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateAssessmentReportCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateControlCommandError(output, context); + } + const contents: CreateControlCommandOutput = { + $metadata: deserializeMetadata(output), + control: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.control !== undefined && data.control !== null) { + contents.control = deserializeAws_restJson1Control(data.control, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteAssessmentCommandError(output, context); + } + const contents: DeleteAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteAssessmentFrameworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteAssessmentFrameworkCommandError(output, context); + } + const contents: DeleteAssessmentFrameworkCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteAssessmentFrameworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteAssessmentReportCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteAssessmentReportCommandError(output, context); + } + const contents: DeleteAssessmentReportCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteAssessmentReportCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteControlCommandError(output, context); + } + const contents: DeleteControlCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeregisterAccountCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeregisterAccountCommandError(output, context); + } + const contents: DeregisterAccountCommandOutput = { + $metadata: deserializeMetadata(output), + status: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.status !== undefined && data.status !== null) { + contents.status = data.status; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeregisterAccountCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeregisterOrganizationAdminAccountCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeregisterOrganizationAdminAccountCommandError(output, context); + } + const contents: DeregisterOrganizationAdminAccountCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeregisterOrganizationAdminAccountCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommandError(output, context); + } + const contents: DisassociateAssessmentReportEvidenceFolderCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DisassociateAssessmentReportEvidenceFolderCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetAccountStatusCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetAccountStatusCommandError(output, context); + } + const contents: GetAccountStatusCommandOutput = { + $metadata: deserializeMetadata(output), + status: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.status !== undefined && data.status !== null) { + contents.status = data.status; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetAccountStatusCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetAssessmentCommandError(output, context); + } + const contents: GetAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + assessment: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessment !== undefined && data.assessment !== null) { + contents.assessment = deserializeAws_restJson1Assessment(data.assessment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetAssessmentFrameworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetAssessmentFrameworkCommandError(output, context); + } + const contents: GetAssessmentFrameworkCommandOutput = { + $metadata: deserializeMetadata(output), + framework: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.framework !== undefined && data.framework !== null) { + contents.framework = deserializeAws_restJson1Framework(data.framework, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetAssessmentFrameworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetAssessmentReportUrlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetAssessmentReportUrlCommandError(output, context); + } + const contents: GetAssessmentReportUrlCommandOutput = { + $metadata: deserializeMetadata(output), + preSignedUrl: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.preSignedUrl !== undefined && data.preSignedUrl !== null) { + contents.preSignedUrl = deserializeAws_restJson1URL(data.preSignedUrl, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetAssessmentReportUrlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetChangeLogsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetChangeLogsCommandError(output, context); + } + const contents: GetChangeLogsCommandOutput = { + $metadata: deserializeMetadata(output), + changeLogs: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.changeLogs !== undefined && data.changeLogs !== null) { + contents.changeLogs = deserializeAws_restJson1ChangeLogs(data.changeLogs, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetChangeLogsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetControlCommandError(output, context); + } + const contents: GetControlCommandOutput = { + $metadata: deserializeMetadata(output), + control: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.control !== undefined && data.control !== null) { + contents.control = deserializeAws_restJson1Control(data.control, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetDelegationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetDelegationsCommandError(output, context); + } + const contents: GetDelegationsCommandOutput = { + $metadata: deserializeMetadata(output), + delegations: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.delegations !== undefined && data.delegations !== null) { + contents.delegations = deserializeAws_restJson1DelegationMetadataList(data.delegations, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetDelegationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetEvidenceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetEvidenceCommandError(output, context); + } + const contents: GetEvidenceCommandOutput = { + $metadata: deserializeMetadata(output), + evidence: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.evidence !== undefined && data.evidence !== null) { + contents.evidence = deserializeAws_restJson1Evidence(data.evidence, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetEvidenceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetEvidenceByEvidenceFolderCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetEvidenceByEvidenceFolderCommandError(output, context); + } + const contents: GetEvidenceByEvidenceFolderCommandOutput = { + $metadata: deserializeMetadata(output), + evidence: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.evidence !== undefined && data.evidence !== null) { + contents.evidence = deserializeAws_restJson1EvidenceList(data.evidence, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetEvidenceByEvidenceFolderCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetEvidenceFolderCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetEvidenceFolderCommandError(output, context); + } + const contents: GetEvidenceFolderCommandOutput = { + $metadata: deserializeMetadata(output), + evidenceFolder: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.evidenceFolder !== undefined && data.evidenceFolder !== null) { + contents.evidenceFolder = deserializeAws_restJson1AssessmentEvidenceFolder(data.evidenceFolder, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetEvidenceFolderCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetEvidenceFoldersByAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetEvidenceFoldersByAssessmentCommandError(output, context); + } + const contents: GetEvidenceFoldersByAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + evidenceFolders: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.evidenceFolders !== undefined && data.evidenceFolders !== null) { + contents.evidenceFolders = deserializeAws_restJson1AssessmentEvidenceFolders(data.evidenceFolders, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetEvidenceFoldersByAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommandError(output, context); + } + const contents: GetEvidenceFoldersByAssessmentControlCommandOutput = { + $metadata: deserializeMetadata(output), + evidenceFolders: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.evidenceFolders !== undefined && data.evidenceFolders !== null) { + contents.evidenceFolders = deserializeAws_restJson1AssessmentEvidenceFolders(data.evidenceFolders, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetEvidenceFoldersByAssessmentControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetOrganizationAdminAccountCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetOrganizationAdminAccountCommandError(output, context); + } + const contents: GetOrganizationAdminAccountCommandOutput = { + $metadata: deserializeMetadata(output), + adminAccountId: undefined, + organizationId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.adminAccountId !== undefined && data.adminAccountId !== null) { + contents.adminAccountId = data.adminAccountId; + } + if (data.organizationId !== undefined && data.organizationId !== null) { + contents.organizationId = data.organizationId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetOrganizationAdminAccountCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetServicesInScopeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetServicesInScopeCommandError(output, context); + } + const contents: GetServicesInScopeCommandOutput = { + $metadata: deserializeMetadata(output), + serviceMetadata: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.serviceMetadata !== undefined && data.serviceMetadata !== null) { + contents.serviceMetadata = deserializeAws_restJson1ServiceMetadataList(data.serviceMetadata, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetServicesInScopeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetSettingsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetSettingsCommandError(output, context); + } + const contents: GetSettingsCommandOutput = { + $metadata: deserializeMetadata(output), + settings: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.settings !== undefined && data.settings !== null) { + contents.settings = deserializeAws_restJson1Settings(data.settings, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetSettingsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListAssessmentFrameworksCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAssessmentFrameworksCommandError(output, context); + } + const contents: ListAssessmentFrameworksCommandOutput = { + $metadata: deserializeMetadata(output), + frameworkMetadataList: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.frameworkMetadataList !== undefined && data.frameworkMetadataList !== null) { + contents.frameworkMetadataList = deserializeAws_restJson1FrameworkMetadataList(data.frameworkMetadataList, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAssessmentFrameworksCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListAssessmentReportsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAssessmentReportsCommandError(output, context); + } + const contents: ListAssessmentReportsCommandOutput = { + $metadata: deserializeMetadata(output), + assessmentReports: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessmentReports !== undefined && data.assessmentReports !== null) { + contents.assessmentReports = deserializeAws_restJson1AssessmentReportsMetadata(data.assessmentReports, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAssessmentReportsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListAssessmentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAssessmentsCommandError(output, context); + } + const contents: ListAssessmentsCommandOutput = { + $metadata: deserializeMetadata(output), + assessmentMetadata: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessmentMetadata !== undefined && data.assessmentMetadata !== null) { + contents.assessmentMetadata = deserializeAws_restJson1ListAssessmentMetadata(data.assessmentMetadata, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAssessmentsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListControlsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListControlsCommandError(output, context); + } + const contents: ListControlsCommandOutput = { + $metadata: deserializeMetadata(output), + controlMetadataList: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.controlMetadataList !== undefined && data.controlMetadataList !== null) { + contents.controlMetadataList = deserializeAws_restJson1ControlMetadataList(data.controlMetadataList, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListControlsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListKeywordsForDataSourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListKeywordsForDataSourceCommandError(output, context); + } + const contents: ListKeywordsForDataSourceCommandOutput = { + $metadata: deserializeMetadata(output), + keywords: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.keywords !== undefined && data.keywords !== null) { + contents.keywords = deserializeAws_restJson1Keywords(data.keywords, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListKeywordsForDataSourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListNotificationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListNotificationsCommandError(output, context); + } + const contents: ListNotificationsCommandOutput = { + $metadata: deserializeMetadata(output), + nextToken: undefined, + notifications: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + if (data.notifications !== undefined && data.notifications !== null) { + contents.notifications = deserializeAws_restJson1Notifications(data.notifications, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListNotificationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.tags !== undefined && data.tags !== null) { + contents.tags = deserializeAws_restJson1TagMap(data.tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RegisterAccountCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RegisterAccountCommandError(output, context); + } + const contents: RegisterAccountCommandOutput = { + $metadata: deserializeMetadata(output), + status: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.status !== undefined && data.status !== null) { + contents.status = data.status; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RegisterAccountCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RegisterOrganizationAdminAccountCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RegisterOrganizationAdminAccountCommandError(output, context); + } + const contents: RegisterOrganizationAdminAccountCommandOutput = { + $metadata: deserializeMetadata(output), + adminAccountId: undefined, + organizationId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.adminAccountId !== undefined && data.adminAccountId !== null) { + contents.adminAccountId = data.adminAccountId; + } + if (data.organizationId !== undefined && data.organizationId !== null) { + contents.organizationId = data.organizationId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RegisterOrganizationAdminAccountCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateAssessmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateAssessmentCommandError(output, context); + } + const contents: UpdateAssessmentCommandOutput = { + $metadata: deserializeMetadata(output), + assessment: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessment !== undefined && data.assessment !== null) { + contents.assessment = deserializeAws_restJson1Assessment(data.assessment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateAssessmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateAssessmentControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateAssessmentControlCommandError(output, context); + } + const contents: UpdateAssessmentControlCommandOutput = { + $metadata: deserializeMetadata(output), + control: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.control !== undefined && data.control !== null) { + contents.control = deserializeAws_restJson1AssessmentControl(data.control, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateAssessmentControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateAssessmentControlSetStatusCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateAssessmentControlSetStatusCommandError(output, context); + } + const contents: UpdateAssessmentControlSetStatusCommandOutput = { + $metadata: deserializeMetadata(output), + controlSet: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.controlSet !== undefined && data.controlSet !== null) { + contents.controlSet = deserializeAws_restJson1AssessmentControlSet(data.controlSet, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateAssessmentControlSetStatusCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateAssessmentFrameworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateAssessmentFrameworkCommandError(output, context); + } + const contents: UpdateAssessmentFrameworkCommandOutput = { + $metadata: deserializeMetadata(output), + framework: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.framework !== undefined && data.framework !== null) { + contents.framework = deserializeAws_restJson1Framework(data.framework, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateAssessmentFrameworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateAssessmentStatusCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateAssessmentStatusCommandError(output, context); + } + const contents: UpdateAssessmentStatusCommandOutput = { + $metadata: deserializeMetadata(output), + assessment: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.assessment !== undefined && data.assessment !== null) { + contents.assessment = deserializeAws_restJson1Assessment(data.assessment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateAssessmentStatusCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateControlCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateControlCommandError(output, context); + } + const contents: UpdateControlCommandOutput = { + $metadata: deserializeMetadata(output), + control: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.control !== undefined && data.control !== null) { + contents.control = deserializeAws_restJson1Control(data.control, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateControlCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateSettingsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateSettingsCommandError(output, context); + } + const contents: UpdateSettingsCommandOutput = { + $metadata: deserializeMetadata(output), + settings: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.settings !== undefined && data.settings !== null) { + contents.settings = deserializeAws_restJson1Settings(data.settings, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateSettingsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ValidateAssessmentReportIntegrityCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ValidateAssessmentReportIntegrityCommandError(output, context); + } + const contents: ValidateAssessmentReportIntegrityCommandOutput = { + $metadata: deserializeMetadata(output), + signatureAlgorithm: undefined, + signatureDateTime: undefined, + signatureKeyId: undefined, + signatureValid: undefined, + validationErrors: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.signatureAlgorithm !== undefined && data.signatureAlgorithm !== null) { + contents.signatureAlgorithm = data.signatureAlgorithm; + } + if (data.signatureDateTime !== undefined && data.signatureDateTime !== null) { + contents.signatureDateTime = data.signatureDateTime; + } + if (data.signatureKeyId !== undefined && data.signatureKeyId !== null) { + contents.signatureKeyId = data.signatureKeyId; + } + if (data.signatureValid !== undefined && data.signatureValid !== null) { + contents.signatureValid = data.signatureValid; + } + if (data.validationErrors !== undefined && data.validationErrors !== null) { + contents.validationErrors = deserializeAws_restJson1ValidationErrors(data.validationErrors, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ValidateAssessmentReportIntegrityCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.auditmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.auditmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.auditmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.auditmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1AccessDeniedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: AccessDeniedException = { + name: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + return contents; +}; + +const deserializeAws_restJson1InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + return contents; +}; + +const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + resourceId: undefined, + resourceType: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + if (data.resourceId !== undefined && data.resourceId !== null) { + contents.resourceId = data.resourceId; + } + if (data.resourceType !== undefined && data.resourceType !== null) { + contents.resourceType = data.resourceType; + } + return contents; +}; + +const deserializeAws_restJson1ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + fields: undefined, + message: undefined, + reason: undefined, + }; + const data: any = parsedOutput.body; + if (data.fields !== undefined && data.fields !== null) { + contents.fields = deserializeAws_restJson1ValidationExceptionFieldList(data.fields, context); + } + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + if (data.reason !== undefined && data.reason !== null) { + contents.reason = data.reason; + } + return contents; +}; + +const serializeAws_restJson1AssessmentReportsDestination = ( + input: AssessmentReportsDestination, + context: __SerdeContext +): any => { + return { + ...(input.destination !== undefined && { destination: input.destination }), + ...(input.destinationType !== undefined && { destinationType: input.destinationType }), + }; +}; + +const serializeAws_restJson1AWSAccount = (input: AWSAccount, context: __SerdeContext): any => { + return { + ...(input.emailAddress !== undefined && { emailAddress: input.emailAddress }), + ...(input.id !== undefined && { id: input.id }), + ...(input.name !== undefined && { name: input.name }), + }; +}; + +const serializeAws_restJson1AWSAccounts = (input: AWSAccount[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1AWSAccount(entry, context)); +}; + +const serializeAws_restJson1AWSService = (input: AWSService, context: __SerdeContext): any => { + return { + ...(input.serviceName !== undefined && { serviceName: input.serviceName }), + }; +}; + +const serializeAws_restJson1AWSServices = (input: AWSService[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1AWSService(entry, context)); +}; + +const serializeAws_restJson1ControlMappingSource = (input: ControlMappingSource, context: __SerdeContext): any => { + return { + ...(input.sourceDescription !== undefined && { sourceDescription: input.sourceDescription }), + ...(input.sourceFrequency !== undefined && { sourceFrequency: input.sourceFrequency }), + ...(input.sourceId !== undefined && { sourceId: input.sourceId }), + ...(input.sourceKeyword !== undefined && { + sourceKeyword: serializeAws_restJson1SourceKeyword(input.sourceKeyword, context), + }), + ...(input.sourceName !== undefined && { sourceName: input.sourceName }), + ...(input.sourceSetUpOption !== undefined && { sourceSetUpOption: input.sourceSetUpOption }), + ...(input.sourceType !== undefined && { sourceType: input.sourceType }), + ...(input.troubleshootingText !== undefined && { troubleshootingText: input.troubleshootingText }), + }; +}; + +const serializeAws_restJson1ControlMappingSources = (input: ControlMappingSource[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1ControlMappingSource(entry, context)); +}; + +const serializeAws_restJson1CreateAssessmentFrameworkControl = ( + input: CreateAssessmentFrameworkControl, + context: __SerdeContext +): any => { + return { + ...(input.id !== undefined && { id: input.id }), + }; +}; + +const serializeAws_restJson1CreateAssessmentFrameworkControls = ( + input: CreateAssessmentFrameworkControl[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_restJson1CreateAssessmentFrameworkControl(entry, context)); +}; + +const serializeAws_restJson1CreateAssessmentFrameworkControlSet = ( + input: CreateAssessmentFrameworkControlSet, + context: __SerdeContext +): any => { + return { + ...(input.controls !== undefined && { + controls: serializeAws_restJson1CreateAssessmentFrameworkControls(input.controls, context), + }), + ...(input.name !== undefined && { name: input.name }), + }; +}; + +const serializeAws_restJson1CreateAssessmentFrameworkControlSets = ( + input: CreateAssessmentFrameworkControlSet[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_restJson1CreateAssessmentFrameworkControlSet(entry, context)); +}; + +const serializeAws_restJson1CreateControlMappingSource = ( + input: CreateControlMappingSource, + context: __SerdeContext +): any => { + return { + ...(input.sourceDescription !== undefined && { sourceDescription: input.sourceDescription }), + ...(input.sourceFrequency !== undefined && { sourceFrequency: input.sourceFrequency }), + ...(input.sourceKeyword !== undefined && { + sourceKeyword: serializeAws_restJson1SourceKeyword(input.sourceKeyword, context), + }), + ...(input.sourceName !== undefined && { sourceName: input.sourceName }), + ...(input.sourceSetUpOption !== undefined && { sourceSetUpOption: input.sourceSetUpOption }), + ...(input.sourceType !== undefined && { sourceType: input.sourceType }), + ...(input.troubleshootingText !== undefined && { troubleshootingText: input.troubleshootingText }), + }; +}; + +const serializeAws_restJson1CreateControlMappingSources = ( + input: CreateControlMappingSource[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_restJson1CreateControlMappingSource(entry, context)); +}; + +const serializeAws_restJson1CreateDelegationRequest = ( + input: CreateDelegationRequest, + context: __SerdeContext +): any => { + return { + ...(input.comment !== undefined && { comment: input.comment }), + ...(input.controlSetId !== undefined && { controlSetId: input.controlSetId }), + ...(input.roleArn !== undefined && { roleArn: input.roleArn }), + ...(input.roleType !== undefined && { roleType: input.roleType }), + }; +}; + +const serializeAws_restJson1CreateDelegationRequests = ( + input: CreateDelegationRequest[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_restJson1CreateDelegationRequest(entry, context)); +}; + +const serializeAws_restJson1DelegationIds = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1EvidenceIds = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1ManualEvidence = (input: ManualEvidence, context: __SerdeContext): any => { + return { + ...(input.s3ResourcePath !== undefined && { s3ResourcePath: input.s3ResourcePath }), + }; +}; + +const serializeAws_restJson1ManualEvidenceList = (input: ManualEvidence[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1ManualEvidence(entry, context)); +}; + +const serializeAws_restJson1Role = (input: Role, context: __SerdeContext): any => { + return { + ...(input.roleArn !== undefined && { roleArn: input.roleArn }), + ...(input.roleType !== undefined && { roleType: input.roleType }), + }; +}; + +const serializeAws_restJson1Roles = (input: Role[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1Role(entry, context)); +}; + +const serializeAws_restJson1Scope = (input: Scope, context: __SerdeContext): any => { + return { + ...(input.awsAccounts !== undefined && { + awsAccounts: serializeAws_restJson1AWSAccounts(input.awsAccounts, context), + }), + ...(input.awsServices !== undefined && { + awsServices: serializeAws_restJson1AWSServices(input.awsServices, context), + }), + }; +}; + +const serializeAws_restJson1SourceKeyword = (input: SourceKeyword, context: __SerdeContext): any => { + return { + ...(input.keywordInputType !== undefined && { keywordInputType: input.keywordInputType }), + ...(input.keywordValue !== undefined && { keywordValue: input.keywordValue }), + }; +}; + +const serializeAws_restJson1TagMap = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const serializeAws_restJson1UpdateAssessmentFrameworkControlSet = ( + input: UpdateAssessmentFrameworkControlSet, + context: __SerdeContext +): any => { + return { + ...(input.controls !== undefined && { + controls: serializeAws_restJson1CreateAssessmentFrameworkControls(input.controls, context), + }), + ...(input.id !== undefined && { id: input.id }), + ...(input.name !== undefined && { name: input.name }), + }; +}; + +const serializeAws_restJson1UpdateAssessmentFrameworkControlSets = ( + input: UpdateAssessmentFrameworkControlSet[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_restJson1UpdateAssessmentFrameworkControlSet(entry, context)); +}; + +const deserializeAws_restJson1Assessment = (output: any, context: __SerdeContext): Assessment => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + awsAccount: + output.awsAccount !== undefined && output.awsAccount !== null + ? deserializeAws_restJson1AWSAccount(output.awsAccount, context) + : undefined, + framework: + output.framework !== undefined && output.framework !== null + ? deserializeAws_restJson1AssessmentFramework(output.framework, context) + : undefined, + metadata: + output.metadata !== undefined && output.metadata !== null + ? deserializeAws_restJson1AssessmentMetadata(output.metadata, context) + : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1TagMap(output.tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentControl = (output: any, context: __SerdeContext): AssessmentControl => { + return { + assessmentReportEvidenceCount: + output.assessmentReportEvidenceCount !== undefined && output.assessmentReportEvidenceCount !== null + ? output.assessmentReportEvidenceCount + : undefined, + comments: + output.comments !== undefined && output.comments !== null + ? deserializeAws_restJson1ControlComments(output.comments, context) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + evidenceCount: + output.evidenceCount !== undefined && output.evidenceCount !== null ? output.evidenceCount : undefined, + evidenceSources: + output.evidenceSources !== undefined && output.evidenceSources !== null + ? deserializeAws_restJson1EvidenceSources(output.evidenceSources, context) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + response: output.response !== undefined && output.response !== null ? output.response : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentControls = (output: any, context: __SerdeContext): AssessmentControl[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentControl(entry, context)); +}; + +const deserializeAws_restJson1AssessmentControlSet = (output: any, context: __SerdeContext): AssessmentControlSet => { + return { + controls: + output.controls !== undefined && output.controls !== null + ? deserializeAws_restJson1AssessmentControls(output.controls, context) + : undefined, + delegations: + output.delegations !== undefined && output.delegations !== null + ? deserializeAws_restJson1Delegations(output.delegations, context) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + manualEvidenceCount: + output.manualEvidenceCount !== undefined && output.manualEvidenceCount !== null + ? output.manualEvidenceCount + : undefined, + roles: + output.roles !== undefined && output.roles !== null + ? deserializeAws_restJson1Roles(output.roles, context) + : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + systemEvidenceCount: + output.systemEvidenceCount !== undefined && output.systemEvidenceCount !== null + ? output.systemEvidenceCount + : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentControlSets = ( + output: any, + context: __SerdeContext +): AssessmentControlSet[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentControlSet(entry, context)); +}; + +const deserializeAws_restJson1AssessmentEvidenceFolder = ( + output: any, + context: __SerdeContext +): AssessmentEvidenceFolder => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentReportSelectionCount: + output.assessmentReportSelectionCount !== undefined && output.assessmentReportSelectionCount !== null + ? output.assessmentReportSelectionCount + : undefined, + author: output.author !== undefined && output.author !== null ? output.author : undefined, + controlId: output.controlId !== undefined && output.controlId !== null ? output.controlId : undefined, + controlName: output.controlName !== undefined && output.controlName !== null ? output.controlName : undefined, + controlSetId: output.controlSetId !== undefined && output.controlSetId !== null ? output.controlSetId : undefined, + dataSource: output.dataSource !== undefined && output.dataSource !== null ? output.dataSource : undefined, + date: output.date !== undefined && output.date !== null ? new Date(Math.round(output.date * 1000)) : undefined, + evidenceAwsServiceSourceCount: + output.evidenceAwsServiceSourceCount !== undefined && output.evidenceAwsServiceSourceCount !== null + ? output.evidenceAwsServiceSourceCount + : undefined, + evidenceByTypeComplianceCheckCount: + output.evidenceByTypeComplianceCheckCount !== undefined && output.evidenceByTypeComplianceCheckCount !== null + ? output.evidenceByTypeComplianceCheckCount + : undefined, + evidenceByTypeComplianceCheckIssuesCount: + output.evidenceByTypeComplianceCheckIssuesCount !== undefined && + output.evidenceByTypeComplianceCheckIssuesCount !== null + ? output.evidenceByTypeComplianceCheckIssuesCount + : undefined, + evidenceByTypeConfigurationDataCount: + output.evidenceByTypeConfigurationDataCount !== undefined && output.evidenceByTypeConfigurationDataCount !== null + ? output.evidenceByTypeConfigurationDataCount + : undefined, + evidenceByTypeManualCount: + output.evidenceByTypeManualCount !== undefined && output.evidenceByTypeManualCount !== null + ? output.evidenceByTypeManualCount + : undefined, + evidenceByTypeUserActivityCount: + output.evidenceByTypeUserActivityCount !== undefined && output.evidenceByTypeUserActivityCount !== null + ? output.evidenceByTypeUserActivityCount + : undefined, + evidenceResourcesIncludedCount: + output.evidenceResourcesIncludedCount !== undefined && output.evidenceResourcesIncludedCount !== null + ? output.evidenceResourcesIncludedCount + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + totalEvidence: + output.totalEvidence !== undefined && output.totalEvidence !== null ? output.totalEvidence : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentEvidenceFolders = ( + output: any, + context: __SerdeContext +): AssessmentEvidenceFolder[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentEvidenceFolder(entry, context)); +}; + +const deserializeAws_restJson1AssessmentFramework = (output: any, context: __SerdeContext): AssessmentFramework => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + controlSets: + output.controlSets !== undefined && output.controlSets !== null + ? deserializeAws_restJson1AssessmentControlSets(output.controlSets, context) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + metadata: + output.metadata !== undefined && output.metadata !== null + ? deserializeAws_restJson1FrameworkMetadata(output.metadata, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentFrameworkMetadata = ( + output: any, + context: __SerdeContext +): AssessmentFrameworkMetadata => { + return { + complianceType: + output.complianceType !== undefined && output.complianceType !== null ? output.complianceType : undefined, + controlSetsCount: + output.controlSetsCount !== undefined && output.controlSetsCount !== null ? output.controlSetsCount : undefined, + controlsCount: + output.controlsCount !== undefined && output.controlsCount !== null ? output.controlsCount : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdatedAt: + output.lastUpdatedAt !== undefined && output.lastUpdatedAt !== null + ? new Date(Math.round(output.lastUpdatedAt * 1000)) + : undefined, + logo: output.logo !== undefined && output.logo !== null ? output.logo : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + type: output.type !== undefined && output.type !== null ? output.type : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentMetadata = (output: any, context: __SerdeContext): AssessmentMetadata => { + return { + assessmentReportsDestination: + output.assessmentReportsDestination !== undefined && output.assessmentReportsDestination !== null + ? deserializeAws_restJson1AssessmentReportsDestination(output.assessmentReportsDestination, context) + : undefined, + complianceType: + output.complianceType !== undefined && output.complianceType !== null ? output.complianceType : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + delegations: + output.delegations !== undefined && output.delegations !== null + ? deserializeAws_restJson1Delegations(output.delegations, context) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdated: + output.lastUpdated !== undefined && output.lastUpdated !== null + ? new Date(Math.round(output.lastUpdated * 1000)) + : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + roles: + output.roles !== undefined && output.roles !== null + ? deserializeAws_restJson1Roles(output.roles, context) + : undefined, + scope: + output.scope !== undefined && output.scope !== null + ? deserializeAws_restJson1Scope(output.scope, context) + : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentMetadataItem = ( + output: any, + context: __SerdeContext +): AssessmentMetadataItem => { + return { + complianceType: + output.complianceType !== undefined && output.complianceType !== null ? output.complianceType : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + delegations: + output.delegations !== undefined && output.delegations !== null + ? deserializeAws_restJson1Delegations(output.delegations, context) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdated: + output.lastUpdated !== undefined && output.lastUpdated !== null + ? new Date(Math.round(output.lastUpdated * 1000)) + : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + roles: + output.roles !== undefined && output.roles !== null + ? deserializeAws_restJson1Roles(output.roles, context) + : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentReport = (output: any, context: __SerdeContext): AssessmentReport => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentName: + output.assessmentName !== undefined && output.assessmentName !== null ? output.assessmentName : undefined, + author: output.author !== undefined && output.author !== null ? output.author : undefined, + awsAccountId: output.awsAccountId !== undefined && output.awsAccountId !== null ? output.awsAccountId : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentReportEvidenceError = ( + output: any, + context: __SerdeContext +): AssessmentReportEvidenceError => { + return { + errorCode: output.errorCode !== undefined && output.errorCode !== null ? output.errorCode : undefined, + errorMessage: output.errorMessage !== undefined && output.errorMessage !== null ? output.errorMessage : undefined, + evidenceId: output.evidenceId !== undefined && output.evidenceId !== null ? output.evidenceId : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentReportEvidenceErrors = ( + output: any, + context: __SerdeContext +): AssessmentReportEvidenceError[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentReportEvidenceError(entry, context)); +}; + +const deserializeAws_restJson1AssessmentReportMetadata = ( + output: any, + context: __SerdeContext +): AssessmentReportMetadata => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentName: + output.assessmentName !== undefined && output.assessmentName !== null ? output.assessmentName : undefined, + author: output.author !== undefined && output.author !== null ? output.author : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentReportsDestination = ( + output: any, + context: __SerdeContext +): AssessmentReportsDestination => { + return { + destination: output.destination !== undefined && output.destination !== null ? output.destination : undefined, + destinationType: + output.destinationType !== undefined && output.destinationType !== null ? output.destinationType : undefined, + } as any; +}; + +const deserializeAws_restJson1AssessmentReportsMetadata = ( + output: any, + context: __SerdeContext +): AssessmentReportMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentReportMetadata(entry, context)); +}; + +const deserializeAws_restJson1AWSAccount = (output: any, context: __SerdeContext): AWSAccount => { + return { + emailAddress: output.emailAddress !== undefined && output.emailAddress !== null ? output.emailAddress : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1AWSAccounts = (output: any, context: __SerdeContext): AWSAccount[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AWSAccount(entry, context)); +}; + +const deserializeAws_restJson1AWSService = (output: any, context: __SerdeContext): AWSService => { + return { + serviceName: output.serviceName !== undefined && output.serviceName !== null ? output.serviceName : undefined, + } as any; +}; + +const deserializeAws_restJson1AWSServices = (output: any, context: __SerdeContext): AWSService[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AWSService(entry, context)); +}; + +const deserializeAws_restJson1BatchCreateDelegationByAssessmentError = ( + output: any, + context: __SerdeContext +): BatchCreateDelegationByAssessmentError => { + return { + createDelegationRequest: + output.createDelegationRequest !== undefined && output.createDelegationRequest !== null + ? deserializeAws_restJson1CreateDelegationRequest(output.createDelegationRequest, context) + : undefined, + errorCode: output.errorCode !== undefined && output.errorCode !== null ? output.errorCode : undefined, + errorMessage: output.errorMessage !== undefined && output.errorMessage !== null ? output.errorMessage : undefined, + } as any; +}; + +const deserializeAws_restJson1BatchCreateDelegationByAssessmentErrors = ( + output: any, + context: __SerdeContext +): BatchCreateDelegationByAssessmentError[] => { + return (output || []).map((entry: any) => + deserializeAws_restJson1BatchCreateDelegationByAssessmentError(entry, context) + ); +}; + +const deserializeAws_restJson1BatchDeleteDelegationByAssessmentError = ( + output: any, + context: __SerdeContext +): BatchDeleteDelegationByAssessmentError => { + return { + delegationId: output.delegationId !== undefined && output.delegationId !== null ? output.delegationId : undefined, + errorCode: output.errorCode !== undefined && output.errorCode !== null ? output.errorCode : undefined, + errorMessage: output.errorMessage !== undefined && output.errorMessage !== null ? output.errorMessage : undefined, + } as any; +}; + +const deserializeAws_restJson1BatchDeleteDelegationByAssessmentErrors = ( + output: any, + context: __SerdeContext +): BatchDeleteDelegationByAssessmentError[] => { + return (output || []).map((entry: any) => + deserializeAws_restJson1BatchDeleteDelegationByAssessmentError(entry, context) + ); +}; + +const deserializeAws_restJson1BatchImportEvidenceToAssessmentControlError = ( + output: any, + context: __SerdeContext +): BatchImportEvidenceToAssessmentControlError => { + return { + errorCode: output.errorCode !== undefined && output.errorCode !== null ? output.errorCode : undefined, + errorMessage: output.errorMessage !== undefined && output.errorMessage !== null ? output.errorMessage : undefined, + manualEvidence: + output.manualEvidence !== undefined && output.manualEvidence !== null + ? deserializeAws_restJson1ManualEvidence(output.manualEvidence, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1BatchImportEvidenceToAssessmentControlErrors = ( + output: any, + context: __SerdeContext +): BatchImportEvidenceToAssessmentControlError[] => { + return (output || []).map((entry: any) => + deserializeAws_restJson1BatchImportEvidenceToAssessmentControlError(entry, context) + ); +}; + +const deserializeAws_restJson1ChangeLog = (output: any, context: __SerdeContext): ChangeLog => { + return { + action: output.action !== undefined && output.action !== null ? output.action : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + createdBy: output.createdBy !== undefined && output.createdBy !== null ? output.createdBy : undefined, + objectName: output.objectName !== undefined && output.objectName !== null ? output.objectName : undefined, + objectType: output.objectType !== undefined && output.objectType !== null ? output.objectType : undefined, + } as any; +}; + +const deserializeAws_restJson1ChangeLogs = (output: any, context: __SerdeContext): ChangeLog[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ChangeLog(entry, context)); +}; + +const deserializeAws_restJson1Control = (output: any, context: __SerdeContext): Control => { + return { + actionPlanInstructions: + output.actionPlanInstructions !== undefined && output.actionPlanInstructions !== null + ? output.actionPlanInstructions + : undefined, + actionPlanTitle: + output.actionPlanTitle !== undefined && output.actionPlanTitle !== null ? output.actionPlanTitle : undefined, + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + controlMappingSources: + output.controlMappingSources !== undefined && output.controlMappingSources !== null + ? deserializeAws_restJson1ControlMappingSources(output.controlMappingSources, context) + : undefined, + controlSources: + output.controlSources !== undefined && output.controlSources !== null ? output.controlSources : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + createdBy: output.createdBy !== undefined && output.createdBy !== null ? output.createdBy : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdatedAt: + output.lastUpdatedAt !== undefined && output.lastUpdatedAt !== null + ? new Date(Math.round(output.lastUpdatedAt * 1000)) + : undefined, + lastUpdatedBy: + output.lastUpdatedBy !== undefined && output.lastUpdatedBy !== null ? output.lastUpdatedBy : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1TagMap(output.tags, context) + : undefined, + testingInformation: + output.testingInformation !== undefined && output.testingInformation !== null + ? output.testingInformation + : undefined, + type: output.type !== undefined && output.type !== null ? output.type : undefined, + } as any; +}; + +const deserializeAws_restJson1ControlComment = (output: any, context: __SerdeContext): ControlComment => { + return { + authorName: output.authorName !== undefined && output.authorName !== null ? output.authorName : undefined, + commentBody: output.commentBody !== undefined && output.commentBody !== null ? output.commentBody : undefined, + postedDate: + output.postedDate !== undefined && output.postedDate !== null + ? new Date(Math.round(output.postedDate * 1000)) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ControlComments = (output: any, context: __SerdeContext): ControlComment[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ControlComment(entry, context)); +}; + +const deserializeAws_restJson1ControlMappingSource = (output: any, context: __SerdeContext): ControlMappingSource => { + return { + sourceDescription: + output.sourceDescription !== undefined && output.sourceDescription !== null + ? output.sourceDescription + : undefined, + sourceFrequency: + output.sourceFrequency !== undefined && output.sourceFrequency !== null ? output.sourceFrequency : undefined, + sourceId: output.sourceId !== undefined && output.sourceId !== null ? output.sourceId : undefined, + sourceKeyword: + output.sourceKeyword !== undefined && output.sourceKeyword !== null + ? deserializeAws_restJson1SourceKeyword(output.sourceKeyword, context) + : undefined, + sourceName: output.sourceName !== undefined && output.sourceName !== null ? output.sourceName : undefined, + sourceSetUpOption: + output.sourceSetUpOption !== undefined && output.sourceSetUpOption !== null + ? output.sourceSetUpOption + : undefined, + sourceType: output.sourceType !== undefined && output.sourceType !== null ? output.sourceType : undefined, + troubleshootingText: + output.troubleshootingText !== undefined && output.troubleshootingText !== null + ? output.troubleshootingText + : undefined, + } as any; +}; + +const deserializeAws_restJson1ControlMappingSources = ( + output: any, + context: __SerdeContext +): ControlMappingSource[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ControlMappingSource(entry, context)); +}; + +const deserializeAws_restJson1ControlMetadata = (output: any, context: __SerdeContext): ControlMetadata => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + controlSources: + output.controlSources !== undefined && output.controlSources !== null ? output.controlSources : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdatedAt: + output.lastUpdatedAt !== undefined && output.lastUpdatedAt !== null + ? new Date(Math.round(output.lastUpdatedAt * 1000)) + : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1ControlMetadataList = (output: any, context: __SerdeContext): ControlMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ControlMetadata(entry, context)); +}; + +const deserializeAws_restJson1Controls = (output: any, context: __SerdeContext): Control[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Control(entry, context)); +}; + +const deserializeAws_restJson1ControlSet = (output: any, context: __SerdeContext): ControlSet => { + return { + controls: + output.controls !== undefined && output.controls !== null + ? deserializeAws_restJson1Controls(output.controls, context) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1ControlSets = (output: any, context: __SerdeContext): ControlSet[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ControlSet(entry, context)); +}; + +const deserializeAws_restJson1CreateDelegationRequest = ( + output: any, + context: __SerdeContext +): CreateDelegationRequest => { + return { + comment: output.comment !== undefined && output.comment !== null ? output.comment : undefined, + controlSetId: output.controlSetId !== undefined && output.controlSetId !== null ? output.controlSetId : undefined, + roleArn: output.roleArn !== undefined && output.roleArn !== null ? output.roleArn : undefined, + roleType: output.roleType !== undefined && output.roleType !== null ? output.roleType : undefined, + } as any; +}; + +const deserializeAws_restJson1Delegation = (output: any, context: __SerdeContext): Delegation => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentName: + output.assessmentName !== undefined && output.assessmentName !== null ? output.assessmentName : undefined, + comment: output.comment !== undefined && output.comment !== null ? output.comment : undefined, + controlSetId: output.controlSetId !== undefined && output.controlSetId !== null ? output.controlSetId : undefined, + createdBy: output.createdBy !== undefined && output.createdBy !== null ? output.createdBy : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdated: + output.lastUpdated !== undefined && output.lastUpdated !== null + ? new Date(Math.round(output.lastUpdated * 1000)) + : undefined, + roleArn: output.roleArn !== undefined && output.roleArn !== null ? output.roleArn : undefined, + roleType: output.roleType !== undefined && output.roleType !== null ? output.roleType : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1DelegationMetadata = (output: any, context: __SerdeContext): DelegationMetadata => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentName: + output.assessmentName !== undefined && output.assessmentName !== null ? output.assessmentName : undefined, + controlSetName: + output.controlSetName !== undefined && output.controlSetName !== null ? output.controlSetName : undefined, + creationTime: + output.creationTime !== undefined && output.creationTime !== null + ? new Date(Math.round(output.creationTime * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + roleArn: output.roleArn !== undefined && output.roleArn !== null ? output.roleArn : undefined, + status: output.status !== undefined && output.status !== null ? output.status : undefined, + } as any; +}; + +const deserializeAws_restJson1DelegationMetadataList = (output: any, context: __SerdeContext): DelegationMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1DelegationMetadata(entry, context)); +}; + +const deserializeAws_restJson1Delegations = (output: any, context: __SerdeContext): Delegation[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Delegation(entry, context)); +}; + +const deserializeAws_restJson1Evidence = (output: any, context: __SerdeContext): Evidence => { + return { + assessmentReportSelection: + output.assessmentReportSelection !== undefined && output.assessmentReportSelection !== null + ? output.assessmentReportSelection + : undefined, + attributes: + output.attributes !== undefined && output.attributes !== null + ? deserializeAws_restJson1EvidenceAttributes(output.attributes, context) + : undefined, + awsAccountId: output.awsAccountId !== undefined && output.awsAccountId !== null ? output.awsAccountId : undefined, + awsOrganization: + output.awsOrganization !== undefined && output.awsOrganization !== null ? output.awsOrganization : undefined, + complianceCheck: + output.complianceCheck !== undefined && output.complianceCheck !== null ? output.complianceCheck : undefined, + dataSource: output.dataSource !== undefined && output.dataSource !== null ? output.dataSource : undefined, + eventName: output.eventName !== undefined && output.eventName !== null ? output.eventName : undefined, + eventSource: output.eventSource !== undefined && output.eventSource !== null ? output.eventSource : undefined, + evidenceAwsAccountId: + output.evidenceAwsAccountId !== undefined && output.evidenceAwsAccountId !== null + ? output.evidenceAwsAccountId + : undefined, + evidenceByType: + output.evidenceByType !== undefined && output.evidenceByType !== null ? output.evidenceByType : undefined, + evidenceFolderId: + output.evidenceFolderId !== undefined && output.evidenceFolderId !== null ? output.evidenceFolderId : undefined, + iamId: output.iamId !== undefined && output.iamId !== null ? output.iamId : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + resourcesIncluded: + output.resourcesIncluded !== undefined && output.resourcesIncluded !== null + ? deserializeAws_restJson1Resources(output.resourcesIncluded, context) + : undefined, + time: output.time !== undefined && output.time !== null ? new Date(Math.round(output.time * 1000)) : undefined, + } as any; +}; + +const deserializeAws_restJson1EvidenceAttributes = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1EvidenceIds = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1EvidenceList = (output: any, context: __SerdeContext): Evidence[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Evidence(entry, context)); +}; + +const deserializeAws_restJson1EvidenceSources = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1Framework = (output: any, context: __SerdeContext): Framework => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + complianceType: + output.complianceType !== undefined && output.complianceType !== null ? output.complianceType : undefined, + controlSets: + output.controlSets !== undefined && output.controlSets !== null + ? deserializeAws_restJson1ControlSets(output.controlSets, context) + : undefined, + controlSources: + output.controlSources !== undefined && output.controlSources !== null ? output.controlSources : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + createdBy: output.createdBy !== undefined && output.createdBy !== null ? output.createdBy : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + lastUpdatedAt: + output.lastUpdatedAt !== undefined && output.lastUpdatedAt !== null + ? new Date(Math.round(output.lastUpdatedAt * 1000)) + : undefined, + lastUpdatedBy: + output.lastUpdatedBy !== undefined && output.lastUpdatedBy !== null ? output.lastUpdatedBy : undefined, + logo: output.logo !== undefined && output.logo !== null ? output.logo : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + type: output.type !== undefined && output.type !== null ? output.type : undefined, + } as any; +}; + +const deserializeAws_restJson1FrameworkMetadata = (output: any, context: __SerdeContext): FrameworkMetadata => { + return { + complianceType: + output.complianceType !== undefined && output.complianceType !== null ? output.complianceType : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + logo: output.logo !== undefined && output.logo !== null ? output.logo : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1FrameworkMetadataList = ( + output: any, + context: __SerdeContext +): AssessmentFrameworkMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentFrameworkMetadata(entry, context)); +}; + +const deserializeAws_restJson1Keywords = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1ListAssessmentMetadata = ( + output: any, + context: __SerdeContext +): AssessmentMetadataItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1AssessmentMetadataItem(entry, context)); +}; + +const deserializeAws_restJson1ManualEvidence = (output: any, context: __SerdeContext): ManualEvidence => { + return { + s3ResourcePath: + output.s3ResourcePath !== undefined && output.s3ResourcePath !== null ? output.s3ResourcePath : undefined, + } as any; +}; + +const deserializeAws_restJson1Notification = (output: any, context: __SerdeContext): Notification => { + return { + assessmentId: output.assessmentId !== undefined && output.assessmentId !== null ? output.assessmentId : undefined, + assessmentName: + output.assessmentName !== undefined && output.assessmentName !== null ? output.assessmentName : undefined, + controlSetId: output.controlSetId !== undefined && output.controlSetId !== null ? output.controlSetId : undefined, + controlSetName: + output.controlSetName !== undefined && output.controlSetName !== null ? output.controlSetName : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + eventTime: + output.eventTime !== undefined && output.eventTime !== null + ? new Date(Math.round(output.eventTime * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + source: output.source !== undefined && output.source !== null ? output.source : undefined, + } as any; +}; + +const deserializeAws_restJson1Notifications = (output: any, context: __SerdeContext): Notification[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Notification(entry, context)); +}; + +const deserializeAws_restJson1Resource = (output: any, context: __SerdeContext): Resource => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + value: output.value !== undefined && output.value !== null ? output.value : undefined, + } as any; +}; + +const deserializeAws_restJson1Resources = (output: any, context: __SerdeContext): Resource[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Resource(entry, context)); +}; + +const deserializeAws_restJson1Role = (output: any, context: __SerdeContext): Role => { + return { + roleArn: output.roleArn !== undefined && output.roleArn !== null ? output.roleArn : undefined, + roleType: output.roleType !== undefined && output.roleType !== null ? output.roleType : undefined, + } as any; +}; + +const deserializeAws_restJson1Roles = (output: any, context: __SerdeContext): Role[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Role(entry, context)); +}; + +const deserializeAws_restJson1Scope = (output: any, context: __SerdeContext): Scope => { + return { + awsAccounts: + output.awsAccounts !== undefined && output.awsAccounts !== null + ? deserializeAws_restJson1AWSAccounts(output.awsAccounts, context) + : undefined, + awsServices: + output.awsServices !== undefined && output.awsServices !== null + ? deserializeAws_restJson1AWSServices(output.awsServices, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ServiceMetadata = (output: any, context: __SerdeContext): ServiceMetadata => { + return { + category: output.category !== undefined && output.category !== null ? output.category : undefined, + description: output.description !== undefined && output.description !== null ? output.description : undefined, + displayName: output.displayName !== undefined && output.displayName !== null ? output.displayName : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1ServiceMetadataList = (output: any, context: __SerdeContext): ServiceMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ServiceMetadata(entry, context)); +}; + +const deserializeAws_restJson1Settings = (output: any, context: __SerdeContext): Settings => { + return { + defaultAssessmentReportsDestination: + output.defaultAssessmentReportsDestination !== undefined && output.defaultAssessmentReportsDestination !== null + ? deserializeAws_restJson1AssessmentReportsDestination(output.defaultAssessmentReportsDestination, context) + : undefined, + defaultProcessOwners: + output.defaultProcessOwners !== undefined && output.defaultProcessOwners !== null + ? deserializeAws_restJson1Roles(output.defaultProcessOwners, context) + : undefined, + isAwsOrgEnabled: + output.isAwsOrgEnabled !== undefined && output.isAwsOrgEnabled !== null ? output.isAwsOrgEnabled : undefined, + kmsKey: output.kmsKey !== undefined && output.kmsKey !== null ? output.kmsKey : undefined, + snsTopic: output.snsTopic !== undefined && output.snsTopic !== null ? output.snsTopic : undefined, + } as any; +}; + +const deserializeAws_restJson1SourceKeyword = (output: any, context: __SerdeContext): SourceKeyword => { + return { + keywordInputType: + output.keywordInputType !== undefined && output.keywordInputType !== null ? output.keywordInputType : undefined, + keywordValue: output.keywordValue !== undefined && output.keywordValue !== null ? output.keywordValue : undefined, + } as any; +}; + +const deserializeAws_restJson1TagMap = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1URL = (output: any, context: __SerdeContext): URL => { + return { + hyperlinkName: + output.hyperlinkName !== undefined && output.hyperlinkName !== null ? output.hyperlinkName : undefined, + link: output.link !== undefined && output.link !== null ? output.link : undefined, + } as any; +}; + +const deserializeAws_restJson1ValidationErrors = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1ValidationExceptionField = ( + output: any, + context: __SerdeContext +): ValidationExceptionField => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + } as any; +}; + +const deserializeAws_restJson1ValidationExceptionFieldList = ( + output: any, + context: __SerdeContext +): ValidationExceptionField[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ValidationExceptionField(entry, context)); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const isSerializableHeaderValue = (value: any): boolean => + value !== undefined && + value !== "" && + (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && + (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); + +/** + * Load an error code for the aws.rest-json-1.1 protocol. + */ +const loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => { + const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); + + const sanitizeErrorCode = (rawValue: string): string => { + let cleanValue = rawValue; + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== undefined) { + return sanitizeErrorCode(output.headers[headerKey]); + } + + if (data.code !== undefined) { + return sanitizeErrorCode(data.code); + } + + if (data["__type"] !== undefined) { + return sanitizeErrorCode(data["__type"]); + } + + return ""; +}; diff --git a/clients/client-auditmanager/runtimeConfig.browser.ts b/clients/client-auditmanager/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..afb410dded2d3 --- /dev/null +++ b/clients/client-auditmanager/runtimeConfig.browser.ts @@ -0,0 +1,34 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidAsyncFunction } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS } from "@aws-sdk/middleware-retry"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { ClientDefaults } from "./AuditManagerClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "browser", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider: invalidAsyncFunction("Credentialis missing") as any, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: DEFAULT_MAX_ATTEMPTS, + region: invalidAsyncFunction("Region is missing") as any, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-auditmanager/runtimeConfig.native.ts b/clients/client-auditmanager/runtimeConfig.native.ts new file mode 100644 index 0000000000000..4685edfe7fe9e --- /dev/null +++ b/clients/client-auditmanager/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-js"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { ClientDefaults } from "./AuditManagerClient"; +import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...BrowserDefaults, + runtime: "react-native", + defaultUserAgent: `aws-sdk-js-v3-react-native-${packageInfo.name}/${packageInfo.version}`, + sha256: Sha256, + urlParser: parseUrl, +}; diff --git a/clients/client-auditmanager/runtimeConfig.shared.ts b/clients/client-auditmanager/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..ead9805af9086 --- /dev/null +++ b/clients/client-auditmanager/runtimeConfig.shared.ts @@ -0,0 +1,13 @@ +import { defaultRegionInfoProvider } from "./endpoints"; +import { Logger as __Logger } from "@aws-sdk/types"; + +/** + * @internal + */ +export const ClientSharedValues = { + apiVersion: "2017-07-25", + disableHostPrefix: false, + logger: {} as __Logger, + regionInfoProvider: defaultRegionInfoProvider, + signingName: "auditmanager", +}; diff --git a/clients/client-auditmanager/runtimeConfig.ts b/clients/client-auditmanager/runtimeConfig.ts new file mode 100644 index 0000000000000..e562162bb8bfc --- /dev/null +++ b/clients/client-auditmanager/runtimeConfig.ts @@ -0,0 +1,36 @@ +import packageInfo from "./package.json"; + +import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { ClientDefaults } from "./AuditManagerClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "node", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-auditmanager/tsconfig.es.json b/clients/client-auditmanager/tsconfig.es.json new file mode 100644 index 0000000000000..30df5d2e6986e --- /dev/null +++ b/clients/client-auditmanager/tsconfig.es.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist/es" + } +} diff --git a/clients/client-auditmanager/tsconfig.json b/clients/client-auditmanager/tsconfig.json new file mode 100644 index 0000000000000..4cf936f614b4d --- /dev/null +++ b/clients/client-auditmanager/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "./protocols/*.ts", "./e2e/*.ts", "./endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "readme": "./README.md", + "mode": "file", + "out": "./docs", + "theme": "minimal", + "plugin": ["@aws-sdk/client-documentation-generator"] + } +} diff --git a/clients/client-batch/Batch.ts b/clients/client-batch/Batch.ts index 496c344d2c476..a1b907348d208 100644 --- a/clients/client-batch/Batch.ts +++ b/clients/client-batch/Batch.ts @@ -81,24 +81,23 @@ import { import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; /** - *

AWS Batch enables you to run batch computing workloads on the AWS Cloud. Batch computing is a common way for - * developers, scientists, and engineers to access large amounts of compute resources, and AWS Batch removes the - * undifferentiated heavy lifting of configuring and managing the required infrastructure. AWS Batch will be familiar to - * users of traditional batch computing software. This service can efficiently provision resources in response to jobs - * submitted in order to eliminate capacity constraints, reduce compute costs, and deliver results quickly.

- *

As a fully managed service, AWS Batch enables developers, scientists, and engineers to run batch computing - * workloads of any scale. AWS Batch automatically provisions compute resources and optimizes the workload distribution - * based on the quantity and scale of the workloads. With AWS Batch, there is no need to install or manage batch computing - * software, which allows you to focus on analyzing results and solving problems. AWS Batch reduces operational - * complexities, saves time, and reduces costs, which makes it easy for developers, scientists, and engineers to run - * their batch jobs in the AWS Cloud.

+ *

Using AWS Batch, you can run batch computing workloads on the AWS Cloud. Batch computing is a common means for + * developers, scientists, and engineers to access large amounts of compute resources. AWS Batch utilizes the advantages + * of this computing workload to remove the undifferentiated heavy lifting of configuring and managing required + * infrastructure, while also adopting a familiar batch computing software approach. Given these advantages, AWS Batch can + * help you to efficiently provision resources in response to jobs submitted, thus effectively helping to eliminate + * capacity constraints, reduce compute costs, and deliver your results more quickly.

+ *

As a fully managed service, AWS Batch can run batch computing workloads of any scale. AWS Batch automatically + * provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific + * workloads. With AWS Batch, there's no need to install or manage batch computing software. This means that you can focus + * your time and energy on analyzing results and solving your specific problems.

*/ export class Batch extends BatchClient { /** *

Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or - * RUNNABLE state are cancelled. Jobs that have progressed to STARTING or - * RUNNING are not cancelled (but the API operation still succeeds, even if no job is cancelled); these - * jobs must be terminated with the TerminateJob operation.

+ * RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING + * are not canceled (but the API operation still succeeds, even if no job is canceled); these jobs must be terminated + * with the TerminateJob operation.

*/ public cancelJob(args: CancelJobCommandInput, options?: __HttpHandlerOptions): Promise; public cancelJob(args: CancelJobCommandInput, cb: (err: any, data?: CancelJobCommandOutput) => void): void; @@ -125,27 +124,30 @@ export class Batch extends BatchClient { /** *

Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute - * environments.

+ * environments. MANAGED compute environments can use Amazon EC2 or AWS Fargate resources. + * UNMANAGED compute environments can only use EC2 resources.

*

In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources * within the environment. This is based on the compute resource specification that you define or the launch template that you - * specify when you create the compute environment. You can choose to use Amazon EC2 On-Demand Instances or Spot Instances in - * your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the - * Spot Instance price is below a specified percentage of the On-Demand price.

+ * specify when you create the compute environment. You can choose either to use EC2 On-Demand Instances and EC2 Spot + * Instances, or to use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally + * set a maximum price so that Spot Instances only launch when the Spot Instance price is below a specified percentage + * of the On-Demand price.

* *

Multi-node parallel jobs are not supported on Spot Instances.

*
- *

In an unmanaged compute environment, you can manage your own compute resources. This provides more compute - * resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS - * container instance AMI specification. For more information, see Container Instance AMIs in the + *

In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility + * with how you configure your compute resources. For example, you can use custom AMI. However, you need to verify that + * your AMI meets the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the * Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the * DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it. Then, * manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS - * Container Instance in the Amazon Elastic Container Service Developer Guide.

+ * container instance in the Amazon Elastic Container Service Developer Guide.

* - *

AWS Batch does not upgrade the AMIs in a compute environment after it is created (for example, when a newer - * version of the Amazon ECS-optimized AMI is available). You are responsible for the management of the guest operating - * system (including updates and security patches) and any additional application software or utilities that you - * install on the compute resources. To use a new AMI for your AWS Batch jobs:

+ *

AWS Batch doesn't upgrade the AMIs in a compute environment after it's created. For example, it doesn't update + * the AMIs when a newer version of the Amazon ECS-optimized AMI is available. Therefore, you're responsible for the + * management of the guest operating system (including updates and security patches) and any additional application + * software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete + * these steps:

*
    *
  1. *

    Create a new compute environment with the new AMI.

    @@ -154,10 +156,10 @@ export class Batch extends BatchClient { *

    Add the compute environment to an existing job queue.

    *
  2. *
  3. - *

    Remove the old compute environment from your job queue.

    + *

    Remove the earlier compute environment from your job queue.

    *
  4. *
  5. - *

    Delete the old compute environment.

    + *

    Delete the earlier compute environment.

    *
  6. *
*
@@ -230,7 +232,9 @@ export class Batch extends BatchClient { /** *

Deletes an AWS Batch compute environment.

- *

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation.

+ *

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use AWS Fargate resources must terminate all + * active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute + * environment will end up in an invalid state.

*/ public deleteComputeEnvironment( args: DeleteComputeEnvironmentCommandInput, @@ -263,7 +267,7 @@ export class Batch extends BatchClient { /** *

Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue.

- *

It is not necessary to disassociate compute environments from a queue before submitting a + *

It's not necessary to disassociate compute environments from a queue before submitting a * DeleteJobQueue request.

*/ public deleteJobQueue( @@ -296,8 +300,7 @@ export class Batch extends BatchClient { } /** - *

Deregisters an AWS Batch job definition. - * Job definitions will be permanently deleted after 180 days.

+ *

Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days.

*/ public deregisterJobDefinition( args: DeregisterJobDefinitionCommandInput, @@ -330,7 +333,7 @@ export class Batch extends BatchClient { /** *

Describes one or more of your compute environments.

- *

If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment + *

If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment * operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances * into.

*/ @@ -459,19 +462,19 @@ export class Batch extends BatchClient { /** *

Returns a list of AWS Batch jobs.

- *

You must specify only one of the following:

+ *

You must specify only one of the following items:

*
    *
  • - *

    a job queue ID to return a list of jobs in that job queue

    + *

    A job queue ID to return a list of jobs in that job queue

    *
  • *
  • - *

    a multi-node parallel job ID to return a list of that job's nodes

    + *

    A multi-node parallel job ID to return a list of that job's nodes

    *
  • *
  • - *

    an array job ID to return a list of that job's children

    + *

    An array job ID to return a list of that job's children

    *
  • *
- *

You can filter the results by job status with the jobStatus parameter. If you do not specify a + *

You can filter the results by job status with the jobStatus parameter. If you don't specify a * status, only RUNNING jobs are returned.

*/ public listJobs(args: ListJobsCommandInput, options?: __HttpHandlerOptions): Promise; @@ -498,7 +501,7 @@ export class Batch extends BatchClient { } /** - *

List the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job + *

Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

*/ public listTagsForResource( @@ -565,6 +568,12 @@ export class Batch extends BatchClient { /** *

Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override * parameters defined in the job definition.

+ * + *

Jobs run on Fargate resources + * don't + * run for more than 14 days. After 14 days, the Fargate resources might no longer be available and the job is + * terminated.

+ *
*/ public submitJob(args: SubmitJobCommandInput, options?: __HttpHandlerOptions): Promise; public submitJob(args: SubmitJobCommandInput, cb: (err: any, data?: SubmitJobCommandOutput) => void): void; @@ -591,7 +600,7 @@ export class Batch extends BatchClient { /** *

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a - * resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags + * resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags * associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

*/ diff --git a/clients/client-batch/BatchClient.ts b/clients/client-batch/BatchClient.ts index 3258bedd3ab25..59909a41a0c75 100644 --- a/clients/client-batch/BatchClient.ts +++ b/clients/client-batch/BatchClient.ts @@ -245,17 +245,16 @@ export type BatchClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHand HostHeaderResolvedConfig; /** - *

AWS Batch enables you to run batch computing workloads on the AWS Cloud. Batch computing is a common way for - * developers, scientists, and engineers to access large amounts of compute resources, and AWS Batch removes the - * undifferentiated heavy lifting of configuring and managing the required infrastructure. AWS Batch will be familiar to - * users of traditional batch computing software. This service can efficiently provision resources in response to jobs - * submitted in order to eliminate capacity constraints, reduce compute costs, and deliver results quickly.

- *

As a fully managed service, AWS Batch enables developers, scientists, and engineers to run batch computing - * workloads of any scale. AWS Batch automatically provisions compute resources and optimizes the workload distribution - * based on the quantity and scale of the workloads. With AWS Batch, there is no need to install or manage batch computing - * software, which allows you to focus on analyzing results and solving problems. AWS Batch reduces operational - * complexities, saves time, and reduces costs, which makes it easy for developers, scientists, and engineers to run - * their batch jobs in the AWS Cloud.

+ *

Using AWS Batch, you can run batch computing workloads on the AWS Cloud. Batch computing is a common means for + * developers, scientists, and engineers to access large amounts of compute resources. AWS Batch utilizes the advantages + * of this computing workload to remove the undifferentiated heavy lifting of configuring and managing required + * infrastructure, while also adopting a familiar batch computing software approach. Given these advantages, AWS Batch can + * help you to efficiently provision resources in response to jobs submitted, thus effectively helping to eliminate + * capacity constraints, reduce compute costs, and deliver your results more quickly.

+ *

As a fully managed service, AWS Batch can run batch computing workloads of any scale. AWS Batch automatically + * provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific + * workloads. With AWS Batch, there's no need to install or manage batch computing software. This means that you can focus + * your time and energy on analyzing results and solving your specific problems.

*/ export class BatchClient extends __Client< __HttpHandlerOptions, diff --git a/clients/client-batch/commands/CancelJobCommand.ts b/clients/client-batch/commands/CancelJobCommand.ts index 52b6932f6714d..eda39e7b9f4ee 100644 --- a/clients/client-batch/commands/CancelJobCommand.ts +++ b/clients/client-batch/commands/CancelJobCommand.ts @@ -22,9 +22,9 @@ export type CancelJobCommandOutput = CancelJobResponse & __MetadataBearer; /** *

Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or - * RUNNABLE state are cancelled. Jobs that have progressed to STARTING or - * RUNNING are not cancelled (but the API operation still succeeds, even if no job is cancelled); these - * jobs must be terminated with the TerminateJob operation.

+ * RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING + * are not canceled (but the API operation still succeeds, even if no job is canceled); these jobs must be terminated + * with the TerminateJob operation.

*/ export class CancelJobCommand extends $Command< CancelJobCommandInput, diff --git a/clients/client-batch/commands/CreateComputeEnvironmentCommand.ts b/clients/client-batch/commands/CreateComputeEnvironmentCommand.ts index 97e79dcd9441b..db93a44f92de7 100644 --- a/clients/client-batch/commands/CreateComputeEnvironmentCommand.ts +++ b/clients/client-batch/commands/CreateComputeEnvironmentCommand.ts @@ -22,27 +22,30 @@ export type CreateComputeEnvironmentCommandOutput = CreateComputeEnvironmentResp /** *

Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute - * environments.

+ * environments. MANAGED compute environments can use Amazon EC2 or AWS Fargate resources. + * UNMANAGED compute environments can only use EC2 resources.

*

In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources * within the environment. This is based on the compute resource specification that you define or the launch template that you - * specify when you create the compute environment. You can choose to use Amazon EC2 On-Demand Instances or Spot Instances in - * your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the - * Spot Instance price is below a specified percentage of the On-Demand price.

+ * specify when you create the compute environment. You can choose either to use EC2 On-Demand Instances and EC2 Spot + * Instances, or to use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally + * set a maximum price so that Spot Instances only launch when the Spot Instance price is below a specified percentage + * of the On-Demand price.

* *

Multi-node parallel jobs are not supported on Spot Instances.

*
- *

In an unmanaged compute environment, you can manage your own compute resources. This provides more compute - * resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS - * container instance AMI specification. For more information, see Container Instance AMIs in the + *

In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility + * with how you configure your compute resources. For example, you can use custom AMI. However, you need to verify that + * your AMI meets the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the * Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the * DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it. Then, * manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS - * Container Instance in the Amazon Elastic Container Service Developer Guide.

+ * container instance in the Amazon Elastic Container Service Developer Guide.

* - *

AWS Batch does not upgrade the AMIs in a compute environment after it is created (for example, when a newer - * version of the Amazon ECS-optimized AMI is available). You are responsible for the management of the guest operating - * system (including updates and security patches) and any additional application software or utilities that you - * install on the compute resources. To use a new AMI for your AWS Batch jobs:

+ *

AWS Batch doesn't upgrade the AMIs in a compute environment after it's created. For example, it doesn't update + * the AMIs when a newer version of the Amazon ECS-optimized AMI is available. Therefore, you're responsible for the + * management of the guest operating system (including updates and security patches) and any additional application + * software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete + * these steps:

*
    *
  1. *

    Create a new compute environment with the new AMI.

    @@ -51,10 +54,10 @@ export type CreateComputeEnvironmentCommandOutput = CreateComputeEnvironmentResp *

    Add the compute environment to an existing job queue.

    *
  2. *
  3. - *

    Remove the old compute environment from your job queue.

    + *

    Remove the earlier compute environment from your job queue.

    *
  4. *
  5. - *

    Delete the old compute environment.

    + *

    Delete the earlier compute environment.

    *
  6. *
*
diff --git a/clients/client-batch/commands/DeleteComputeEnvironmentCommand.ts b/clients/client-batch/commands/DeleteComputeEnvironmentCommand.ts index 10634fae3fa72..fb4650b9a62d2 100644 --- a/clients/client-batch/commands/DeleteComputeEnvironmentCommand.ts +++ b/clients/client-batch/commands/DeleteComputeEnvironmentCommand.ts @@ -22,7 +22,9 @@ export type DeleteComputeEnvironmentCommandOutput = DeleteComputeEnvironmentResp /** *

Deletes an AWS Batch compute environment.

- *

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation.

+ *

Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use AWS Fargate resources must terminate all + * active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute + * environment will end up in an invalid state.

*/ export class DeleteComputeEnvironmentCommand extends $Command< DeleteComputeEnvironmentCommandInput, diff --git a/clients/client-batch/commands/DeleteJobQueueCommand.ts b/clients/client-batch/commands/DeleteJobQueueCommand.ts index 735c9d5e9084f..878e8e62c0e0f 100644 --- a/clients/client-batch/commands/DeleteJobQueueCommand.ts +++ b/clients/client-batch/commands/DeleteJobQueueCommand.ts @@ -22,7 +22,7 @@ export type DeleteJobQueueCommandOutput = DeleteJobQueueResponse & __MetadataBea /** *

Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue.

- *

It is not necessary to disassociate compute environments from a queue before submitting a + *

It's not necessary to disassociate compute environments from a queue before submitting a * DeleteJobQueue request.

*/ export class DeleteJobQueueCommand extends $Command< diff --git a/clients/client-batch/commands/DeregisterJobDefinitionCommand.ts b/clients/client-batch/commands/DeregisterJobDefinitionCommand.ts index b5af6594e6ca2..d4a7a765f8124 100644 --- a/clients/client-batch/commands/DeregisterJobDefinitionCommand.ts +++ b/clients/client-batch/commands/DeregisterJobDefinitionCommand.ts @@ -21,8 +21,7 @@ export type DeregisterJobDefinitionCommandInput = DeregisterJobDefinitionRequest export type DeregisterJobDefinitionCommandOutput = DeregisterJobDefinitionResponse & __MetadataBearer; /** - *

Deregisters an AWS Batch job definition. - * Job definitions will be permanently deleted after 180 days.

+ *

Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days.

*/ export class DeregisterJobDefinitionCommand extends $Command< DeregisterJobDefinitionCommandInput, diff --git a/clients/client-batch/commands/DescribeComputeEnvironmentsCommand.ts b/clients/client-batch/commands/DescribeComputeEnvironmentsCommand.ts index f8e76fe3fd553..3358012d9a3a5 100644 --- a/clients/client-batch/commands/DescribeComputeEnvironmentsCommand.ts +++ b/clients/client-batch/commands/DescribeComputeEnvironmentsCommand.ts @@ -22,7 +22,7 @@ export type DescribeComputeEnvironmentsCommandOutput = DescribeComputeEnvironmen /** *

Describes one or more of your compute environments.

- *

If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment + *

If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment * operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances * into.

*/ diff --git a/clients/client-batch/commands/ListJobsCommand.ts b/clients/client-batch/commands/ListJobsCommand.ts index b8445a74f4f7d..248068c659c07 100644 --- a/clients/client-batch/commands/ListJobsCommand.ts +++ b/clients/client-batch/commands/ListJobsCommand.ts @@ -22,19 +22,19 @@ export type ListJobsCommandOutput = ListJobsResponse & __MetadataBearer; /** *

Returns a list of AWS Batch jobs.

- *

You must specify only one of the following:

+ *

You must specify only one of the following items:

*
    *
  • - *

    a job queue ID to return a list of jobs in that job queue

    + *

    A job queue ID to return a list of jobs in that job queue

    *
  • *
  • - *

    a multi-node parallel job ID to return a list of that job's nodes

    + *

    A multi-node parallel job ID to return a list of that job's nodes

    *
  • *
  • - *

    an array job ID to return a list of that job's children

    + *

    An array job ID to return a list of that job's children

    *
  • *
- *

You can filter the results by job status with the jobStatus parameter. If you do not specify a + *

You can filter the results by job status with the jobStatus parameter. If you don't specify a * status, only RUNNING jobs are returned.

*/ export class ListJobsCommand extends $Command { diff --git a/clients/client-batch/commands/ListTagsForResourceCommand.ts b/clients/client-batch/commands/ListTagsForResourceCommand.ts index 44c4cb8d34e99..cacc7a370f9a1 100644 --- a/clients/client-batch/commands/ListTagsForResourceCommand.ts +++ b/clients/client-batch/commands/ListTagsForResourceCommand.ts @@ -21,7 +21,7 @@ export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; /** - *

List the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job + *

Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

*/ export class ListTagsForResourceCommand extends $Command< diff --git a/clients/client-batch/commands/SubmitJobCommand.ts b/clients/client-batch/commands/SubmitJobCommand.ts index 50e175ffe4640..c005e03a4c31c 100644 --- a/clients/client-batch/commands/SubmitJobCommand.ts +++ b/clients/client-batch/commands/SubmitJobCommand.ts @@ -23,6 +23,12 @@ export type SubmitJobCommandOutput = SubmitJobResponse & __MetadataBearer; /** *

Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override * parameters defined in the job definition.

+ * + *

Jobs run on Fargate resources + * don't + * run for more than 14 days. After 14 days, the Fargate resources might no longer be available and the job is + * terminated.

+ *
*/ export class SubmitJobCommand extends $Command< SubmitJobCommandInput, diff --git a/clients/client-batch/commands/TagResourceCommand.ts b/clients/client-batch/commands/TagResourceCommand.ts index e66ebe8726bd8..a640f3e816b32 100644 --- a/clients/client-batch/commands/TagResourceCommand.ts +++ b/clients/client-batch/commands/TagResourceCommand.ts @@ -22,7 +22,7 @@ export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; /** *

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a - * resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags + * resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags * associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

*/ diff --git a/clients/client-batch/models/models_0.ts b/clients/client-batch/models/models_0.ts index 7f9075b72d08b..4385e51e3e5ac 100644 --- a/clients/client-batch/models/models_0.ts +++ b/clients/client-batch/models/models_0.ts @@ -72,6 +72,11 @@ export namespace ArrayPropertiesSummary { }); } +export enum AssignPublicIp { + DISABLED = "DISABLED", + ENABLED = "ENABLED", +} + /** *

An object representing the elastic network interface for a multi-node parallel job node.

*/ @@ -206,7 +211,7 @@ export namespace CancelJobResponse { /** *

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that - * doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

+ * doesn't have permissions to use the action or resource, or specifying an identifier that isn't valid.

*/ export interface ClientException extends __SmithyException, $MetadataBearer { name: "ClientException"; @@ -243,37 +248,37 @@ export enum CRAllocationStrategy { /** *

Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If - * the Ec2Configuration is not specified, the default is ECS_AL1.

+ * the Ec2Configuration isn't specified, the default is ECS_AL1.

+ * + *

This object isn't applicable to jobs running on Fargate resources.

+ *
*/ export interface Ec2Configuration { /** - *

The image type to match with the instance type to pick an AMI. If the imageIdOverride parameter is - * not specified, then a recent Amazon ECS-optimized AMI will be used.

+ *

The image type to match with the instance type to select an AMI. If the imageIdOverride parameter + * isn't specified, then a recent Amazon ECS-optimized AMI is used.

*
*
ECS_AL2
*
*

* Amazon Linux - * 2− Default for all AWS Graviton-based instance - * families (for example, - * C6g, M6g, R6g, and T4g) and can be used for all non-GPU - * instance types.

+ * 2− Default for all AWS Graviton-based instance families (for example, C6g, + * M6g, R6g, and T4g) and can be used for all non-GPU instance types.

*
*
ECS_AL2_NVIDIA
*
*

* Amazon Linux - * 2 (GPU)−Default for all GPU instance - * families (for example - * P4 and G4) and can be used for all non-AWS Graviton-based instance types.

+ * 2 (GPU)−Default for all GPU instance families (for example P4 and G4) and + * can be used for all non-AWS Graviton-based instance types.

*
*
ECS_AL1
*
*

* Amazon - * Linux−Default for all non-GPU, non-AWS-Graviton instance - * families. Amazon Linux is - * reaching the end-of-life of standard support. For more information, see Amazon Linux AMI.

+ * Linux−Default for all non-GPU, non-AWS-Graviton instance families. Amazon Linux is reaching the + * end-of-life of standard support. For more information, see Amazon + * Linux AMI.

*
*
*/ @@ -295,6 +300,12 @@ export namespace Ec2Configuration { /** *

An object representing a launch template associated with a compute resource. You must specify either the launch * template ID or launch template name in the request, but not both.

+ *

If security groups are specified using both the securityGroupIds parameter of + * CreateComputeEnvironment and the launch template, the values in the securityGroupIds + * parameter of CreateComputeEnvironment will be used.

+ * + *

This object isn't applicable to jobs running on Fargate resources.

+ *
*/ export interface LaunchTemplateSpecification { /** @@ -324,6 +335,8 @@ export namespace LaunchTemplateSpecification { export enum CRType { EC2 = "EC2", + FARGATE = "FARGATE", + FARGATE_SPOT = "FARGATE_SPOT", SPOT = "SPOT", } @@ -332,72 +345,136 @@ export enum CRType { */ export interface ComputeResource { /** - *

The type of compute environment: EC2 or SPOT.

+ *

The type of compute environment: EC2, SPOT, FARGATE, or + * FARGATE_SPOT. For more information, see Compute Environments in the + * AWS Batch User Guide.

*/ type: CRType | string | undefined; /** - *

The allocation strategy to use for the compute resource in case not enough instances of the best fitting - * instance type can be allocated. This could be due to availability of the instance type in the region or Amazon EC2 service limits. If this is - * not specified, the default is BEST_FIT, which will use only the best fitting instance type, waiting for - * additional capacity if it's not available. This allocation strategy keeps costs lower but can limit scaling. If you - * are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be specified. - * BEST_FIT_PROGRESSIVE will select additional instance types that are large enough to meet the - * requirements of the jobs in the queue, with a preference for instance types with a lower cost per vCPU. - * SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute resources and will select - * additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference - * for instance types that are less likely to be interrupted. For more information, see Allocation Strategies in the - * AWS Batch User Guide.

+ *

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance + * type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more + * information, see Allocation + * Strategies in the AWS Batch User Guide.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
+ *
+ *
BEST_FIT (default)
+ *
+ *

AWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost + * instance type. If additional instances of the selected instance type aren't available, AWS Batch will wait for the + * additional instances to be available. If there are not enough instances available, or if the user is hitting + * Amazon EC2 service limits + * then additional jobs aren't run until currently running jobs have completed. This allocation strategy keeps costs + * lower but can limit scaling. If you are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role + * must be specified.

+ *
+ *
BEST_FIT_PROGRESSIVE
+ *
+ *

AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in + * the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the + * previously selected instance types aren't available, AWS Batch will select new instance types.

+ *
+ *
SPOT_CAPACITY_OPTIMIZED
+ *
+ *

AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in + * the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy + * is only available for Spot Instance compute resources.

+ *
+ *
+ *

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, AWS Batch might + * need to go above maxvCpus to meet your capacity requirements. In this event, AWS Batch never exceeds + * maxvCpus by more than a single instance.

*/ allocationStrategy?: CRAllocationStrategy | string; /** *

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is * DISABLED).

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ - minvCpus: number | undefined; + minvCpus?: number; /** *

The maximum number of Amazon EC2 vCPUs that an environment can reach.

+ * + *

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies, + * AWS Batch may need to go above maxvCpus to meet your capacity requirements. In this event, AWS Batch will + * never go above maxvCpus by more than a single instance (e.g., no more than a single instance from among + * those specified in your compute environment).

+ *
*/ maxvCpus: number | undefined; /** - *

The desired number of Amazon EC2 vCPUS in the compute environment.

+ *

The desired number of Amazon EC2 vCPUS in the compute environment. AWS Batch modifies this value between the minimum + * and maximum values, based on job queue demand.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ desiredvCpus?: number; /** *

The instances types that may be launched. You can specify instance families to launch any instance type within * those families (for example, c5 or p3), or you can specify specific sizes within a family - * (such as c5.8xlarge). You can also choose optimal to pick instance types (from the C, M, + * (such as c5.8xlarge). You can also choose optimal to select instance types (from the C, M, * and R instance families) on the fly that match the demand of your job queues.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
+ * + *

When you create a compute environment, the instance types that you select for the compute environment must + * share the same architecture. For example, you can't mix x86 and ARM instances in the same compute + * environment.

+ *
*/ - instanceTypes: string[] | undefined; + instanceTypes?: string[]; /** - *

The Amazon Machine Image (AMI) ID used for instances launched in the compute - * environment. This parameter is overridden by - * the imageIdOverride member of the Ec2Configuration structure.

+ *

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is + * overridden by the imageIdOverride member of the Ec2Configuration structure.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
+ * + *

The AMI that you choose for a compute environment must match the architecture of the instance types that + * you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, + * the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the + * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized + * Amazon Linux 2 AMI + * in the Amazon Elastic Container Service Developer Guide.

+ *
*/ imageId?: string; /** - *

The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon - * VPC User Guide.

+ *

The VPC subnets into which the compute resources are launched. These subnets must be within the same VPC. This + * parameter is required for jobs running on Fargate resources, where it can contain up to 16 subnets. For more + * information, see VPCs and Subnets in + * the Amazon VPC User Guide.

*/ subnets: string[] | undefined; /** *

The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security * groups must be specified, either in securityGroupIds or using a launch template referenced in - * launchTemplate. If security groups are specified using both securityGroupIds and - * launchTemplate, the values in securityGroupIds will be used.

+ * launchTemplate. This parameter is required for jobs running on Fargate resources and must contain at + * least one security group. (Fargate does not support launch templates.) If security groups are specified using both + * securityGroupIds and launchTemplate, the values in securityGroupIds will be + * used.

*/ securityGroupIds?: string[]; /** - *

The Amazon EC2 key pair that is used for instances launched in the compute environment.

+ *

The Amazon EC2 key pair that is used for instances launched in the compute environment. You can use this key pair to + * log in to your instances with SSH.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ ec2KeyPair?: string; @@ -411,16 +488,19 @@ export interface ComputeResource { * . * For more information, see Amazon ECS Instance * Role in the AWS Batch User Guide.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ - instanceRole: string | undefined; + instanceRole?: string; /** - *

Key-value pair tags to be applied to resources that are launched in the compute environment. For AWS Batch, these - * take the form of "String1": "String2", where String1 is the tag key and String2 is the tag value—for example, { - * "Name": "AWS Batch Instance - C4OnDemand" }. - * These tags can not be updated or removed after the compute environment has been created; any changes require creating - * a new compute environment and removing the old compute environment. These tags are not seen when using the AWS Batch - * ListTagsForResource API operation.

+ *

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For AWS Batch, + * these take the form of "String1": "String2", where String1 is the tag key and String2 is the tag value—for example, { + * "Name": "AWS Batch Instance - C4OnDemand" }. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 + * console. These tags can not be updated or removed after the compute environment has been created; any changes require + * creating a new compute environment and removing the old compute environment. These tags are not seen when using the + * AWS Batch ListTagsForResource API operation.

*/ tags?: { [key: string]: string }; @@ -430,6 +510,9 @@ export interface ComputeResource { * compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single * Availability Zone with high network flow potential. For more information, see Placement Groups in the Amazon EC2 User Guide for * Linux Instances.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ placementGroup?: string; @@ -439,15 +522,25 @@ export interface ComputeResource { * be below 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and * never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand * price.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ bidPercentage?: number; /** - *

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. - * This role is required if the allocation - * strategy set to BEST_FIT or if the allocation strategy is not specified. For more - * information, see Amazon EC2 Spot Fleet - * Role in the AWS Batch User Guide.

+ *

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is + * required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For + * more information, see Amazon EC2 Spot + * Fleet Role in the AWS Batch User Guide.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
+ * + *

To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot + * Instances. For more information, see Spot Instances not tagged on + * creation in the AWS Batch User Guide.

+ *
*/ spotIamFleetRole?: string; @@ -457,11 +550,18 @@ export interface ComputeResource { * must specify either the launch template ID or launch template name in the request, but not both. For more * information, see Launch Template * Support in the AWS Batch User Guide.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ launchTemplate?: LaunchTemplateSpecification; /** - *

Provides additional details used to selecting the AMI to use for instances in a compute environment.

+ *

Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If + * Ec2Configuration isn't specified, the default is ECS_AL1.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

+ *
*/ ec2Configuration?: Ec2Configuration[]; } @@ -490,8 +590,9 @@ export interface CreateComputeEnvironmentRequest { computeEnvironmentName: string | undefined; /** - *

The type of the compute environment. For more information, see Compute Environments in the - * AWS Batch User Guide.

+ *

The type of the compute environment: MANAGED or UNMANAGED. For more information, see + * Compute Environments in + * the AWS Batch User Guide.

*/ type: CEType | string | undefined; @@ -502,7 +603,7 @@ export interface CreateComputeEnvironmentRequest { state?: CEState | string; /** - *

Details of the compute resources managed by the compute environment. This parameter is required for managed + *

Details about the compute resources managed by the compute environment. This parameter is required for managed * compute environments. For more information, see Compute Environments in the * AWS Batch User Guide.

*/ @@ -515,7 +616,7 @@ export interface CreateComputeEnvironmentRequest { * (this is recommended) or prefix the role name with the path.

* *

Depending on how you created your AWS Batch service role, its ARN may contain the service-role path - * prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the + * prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the * service-role path prefix. Because of this, we recommend that you specify the full ARN of your service * role when you create compute environments.

*
@@ -526,8 +627,7 @@ export interface CreateComputeEnvironmentRequest { *

The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag * consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General * Reference.

- * - *

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags do not + *

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't * propagate to the underlying compute resources.

*/ tags?: { [key: string]: string }; @@ -564,7 +664,9 @@ export namespace CreateComputeEnvironmentResponse { */ export interface ComputeEnvironmentOrder { /** - *

The order of the compute environment.

+ *

The order of the compute environment. Compute environments are tried in ascending order. For example, if two + * compute environments are associated with a job queue, the compute environment with a lower order integer + * value is tried for job placement first.

*/ order: number | undefined; @@ -593,7 +695,7 @@ export interface CreateJobQueueRequest { /** *

The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the - * job queue state is DISABLED, new jobs cannot be added to the queue, but jobs already in the queue can + * job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can * finish.

*/ state?: JQState | string; @@ -601,16 +703,18 @@ export interface CreateJobQueueRequest { /** *

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the * priority parameter) are evaluated first when associated with the same compute environment. Priority is - * determined in descending order, for example, a job queue with a priority value of 10 is given scheduling + * determined in descending order. For example, a job queue with a priority value of 10 is given scheduling * preference over a job queue with a priority value of 1.

*/ priority: number | undefined; /** *

The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler - * uses this parameter to determine which compute environment should execute a given job. Compute environments must be - * in the VALID state before you can associate them with a job queue. You can associate up to three compute - * environments with a job queue.

+ * uses this parameter to determine which compute environment should run a specific job. Compute environments must be in + * the VALID state before you can associate them with a job queue. You can associate up to three compute + * environments with a job queue. All of the compute environments must be either EC2 (EC2 or + * SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute + * environments can't be mixed.

*/ computeEnvironmentOrder: ComputeEnvironmentOrder[] | undefined; @@ -720,7 +824,7 @@ export interface DescribeComputeEnvironmentsRequest { * When this parameter is used, DescribeComputeEnvironments only returns maxResults results in * a single page along with a nextToken response element. The remaining results of the initial request can * be seen by sending another DescribeComputeEnvironments request with the returned nextToken - * value. This value can be between 1 and 100. If this parameter is not used, then + * value. This value can be between 1 and 100. If this parameter isn't used, then * DescribeComputeEnvironments returns up to 100 results and a nextToken * value if applicable.

*/ @@ -779,7 +883,9 @@ export interface ComputeEnvironmentDetail { tags?: { [key: string]: string }; /** - *

The type of the compute environment.

+ *

The type of compute environment: EC2, SPOT, FARGATE, or + * FARGATE_SPOT. For more information, see Compute Environments in the + * AWS Batch User Guide.

*/ type?: CEType | string; @@ -788,7 +894,7 @@ export interface ComputeEnvironmentDetail { *

If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated * job queue on the compute resources within the environment. If the compute environment is managed, then it can scale * its instances out or in automatically, based on the job queue demand.

- *

If the state is DISABLED, then the AWS Batch scheduler does not attempt to place jobs within the + *

If the state is DISABLED, then the AWS Batch scheduler doesn't attempt to place jobs within the * environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed * compute environments in the DISABLED state do not scale out. However, they scale in to * minvCpus value after instances become idle.

@@ -856,7 +962,7 @@ export interface DescribeJobDefinitionsRequest { * parameter is used, DescribeJobDefinitions only returns maxResults results in a single page * along with a nextToken response element. The remaining results of the initial request can be seen by * sending another DescribeJobDefinitions request with the returned nextToken value. This - * value can be between 1 and 100. If this parameter is not used, then + * value can be between 1 and 100. If this parameter isn't used, then * DescribeJobDefinitions returns up to 100 results and a nextToken value * if applicable.

*/ @@ -868,7 +974,7 @@ export interface DescribeJobDefinitionsRequest { jobDefinitionName?: string; /** - *

The status with which to filter job definitions.

+ *

The status used to filter job definitions.

*/ status?: string; @@ -913,6 +1019,27 @@ export namespace KeyValuePair { }); } +/** + *

The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

+ */ +export interface FargatePlatformConfiguration { + /** + *

The AWS Fargate platform version on which the jobs are running. A platform version is specified only for jobs + * running on Fargate resources. If one isn't specified, the LATEST platform version is used by default. + * This will use a recent, approved version of the AWS Fargate platform for compute resources. For more information, + * see AWS Fargate platform + * versions in the Amazon Elastic Container Service Developer Guide.

+ */ + platformVersion?: string; +} + +export namespace FargatePlatformConfiguration { + export const filterSensitiveLog = (obj: FargatePlatformConfiguration): any => ({ + ...obj, + }); +} + export enum DeviceCgroupPermission { MKNOD = "MKNOD", READ = "READ", @@ -921,6 +1048,9 @@ export enum DeviceCgroupPermission { /** *

An object representing a container instance host device.

+ * + *

This object isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ export interface Device { /** @@ -929,7 +1059,7 @@ export interface Device { hostPath: string | undefined; /** - *

The path inside the container at which to expose the host device. By default the hostPath value is + *

The path inside the container used to expose the host device. By default the hostPath value is * used.

*/ containerPath?: string; @@ -949,10 +1079,13 @@ export namespace Device { /** *

The container path, mount options, and size of the tmpfs mount.

+ * + *

This object isn't applicable to jobs running on Fargate resources.

+ *
*/ export interface Tmpfs { /** - *

The absolute file path in the container where the tmpfs volume is to be mounted.

+ *

The absolute file path in the container where the tmpfs volume is mounted.

*/ containerPath: string | undefined; @@ -988,6 +1121,9 @@ export interface LinuxParameters { /** *

Any host devices to expose to the container. This parameter maps to Devices in the * Create a container section of the Docker Remote API and the --device option to docker run.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ devices?: Device[]; @@ -1004,38 +1140,47 @@ export interface LinuxParameters { /** *

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the * --shm-size option to docker run.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ sharedMemorySize?: number; /** *

The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the * --tmpfs option to docker run.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ tmpfs?: Tmpfs[]; /** - *

The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the - * --memory-swap option to docker run where the value would be - * the sum of the container memory plus the maxSwap - * value. For more information, - * see - * --memory-swap details in the Docker - * documentation.

- *

If a maxSwap value of 0 is specified, the container will not use swap. Accepted values - * are 0 or any positive integer. If the maxSwap parameter is omitted, the container will use - * the swap configuration for the container instance it is running on. A maxSwap value must be set for the - * swappiness parameter to be used.

+ *

The total amount of swap memory (in MiB) a container can use. This parameter is translated to the + * --memory-swap option to docker run where the value is the + * sum of the container memory plus the maxSwap value. For more information, see + * --memory-swap details in the Docker documentation.

+ *

If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values + * are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't + * use the swap configuration for the container instance it is running on. A maxSwap value must be set for + * the swappiness parameter to be used.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ maxSwap?: number; /** *

This allows you to tune a container's memory swappiness behavior. A swappiness value of - * 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of - * 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between - * 0 and 100. If the swappiness parameter is not specified, a default value of - * 60 is used. If a value is not specified for maxSwap then this parameter is ignored. This + * 0 causes swapping not to happen unless absolutely necessary. A swappiness value of + * 100 causes pages to be swapped very aggressively. Accepted values are whole numbers between + * 0 and 100. If the swappiness parameter isn't specified, a default value of + * 60 is used. If a value isn't specified for maxSwap then this parameter is ignored. This * parameter maps to the --memory-swappiness option to docker * run.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ swappiness?: number; } @@ -1069,8 +1214,8 @@ export enum LogDriver { * container definition parameter.

* * - *

For more information, see Specifying Sensitive Data in the - * Amazon Elastic Container Service Developer Guide.

+ *

For more information, see Specifying sensitive data in the + * AWS Batch User Guide.

*/ export interface Secret { /** @@ -1082,9 +1227,9 @@ export interface Secret { *

The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the * full ARN of the parameter in the AWS Systems Manager Parameter Store.

* - *

If the AWS Systems Manager Parameter Store parameter exists in the same Region as the task you are launching, then you can - * use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN - * must be specified.

+ *

If the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you are launching, then you can use + * either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must + * be specified.

*
*/ valueFrom: string | undefined; @@ -1106,7 +1251,10 @@ export interface LogConfiguration { *

The supported log drivers are awslogs, fluentd, gelf, * json-file, journald, logentries, syslog, and * splunk.

- * + * + *

Jobs running on Fargate resources are restricted to the awslogs and splunk log + * drivers.

+ *
*
*
awslogs
*
@@ -1145,12 +1293,12 @@ export interface LogConfiguration { * documentation.

*
*
- * * - *

If you have a custom driver that is not listed earlier that you would like to work with the Amazon ECS container - * agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests - * for changes that you would like to have included. However, Amazon Web Services does not currently support running modified - * copies of this software.

+ *

If you have a custom driver that isn't listed earlier that you want to work with the Amazon ECS container agent, you + * can fork the Amazon ECS container agent project that is available on + * GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that + * you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this + * software.

*
*

This parameter requires version 1.18 of the Docker Remote API or greater on your * container instance. To check the Docker Remote API version on your container instance, log into your @@ -1187,12 +1335,12 @@ export namespace LogConfiguration { */ export interface MountPoint { /** - *

The path on the container at which to mount the host volume.

+ *

The path on the container where the host volume is mounted.

*/ containerPath?: string; /** - *

If this value is true, the container has read-only access to the volume; otherwise, the container + *

If this value is true, the container has read-only access to the volume. Otherwise, the container * can write to the volume. The default value is false.

*/ readOnly?: boolean; @@ -1209,24 +1357,160 @@ export namespace MountPoint { }); } +/** + *

The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

+ */ +export interface NetworkConfiguration { + /** + *

Indicates whether the job should have a public IP address. + * For a job running on Fargate resources in a + * private subnet to send outbound traffic to the internet (for example, in order to pull container images), the private + * subnet requires a NAT gateway be attached to route requests to the internet. For more information, see Amazon ECS task + * networking. The default value is "DISABLED".

+ */ + assignPublicIp?: AssignPublicIp | string; +} + +export namespace NetworkConfiguration { + export const filterSensitiveLog = (obj: NetworkConfiguration): any => ({ + ...obj, + }); +} + export enum ResourceType { GPU = "GPU", + MEMORY = "MEMORY", + VCPU = "VCPU", } /** - *

The type and amount of a resource to assign to a container. Currently, the only supported resource type is - * GPU.

+ *

The type and amount of a resource to assign to a container. The supported resources include GPU, + * MEMORY, and VCPU.

*/ export interface ResourceRequirement { /** - *

The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a - * job should not exceed the number of available GPUs on the compute resource that the job is launched on.

+ *

The quantity of the specified resource to reserve for the container. The values vary based on the + * type specified.

+ *
+ *
type="GPU"
+ *
+ *

The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a + * job shouldn't exceed the number of available GPUs on the compute resource that the job is launched on.

+ * + *

GPUs are not available for jobs running on Fargate resources.

+ *
+ *
+ *
type="MEMORY"
+ *
+ *

For jobs running on EC2 resources, the hard limit (in MiB) of memory to present to the container. If your + * container attempts to exceed the memory specified here, the container is killed. This parameter maps to + * Memory in the Create a container section of the Docker Remote API and the + * --memory option to docker run. You must specify at least + * 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) + * jobs. It must be specified for each node at least once. This parameter maps to Memory in the + * Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job.

+ * + *

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for + * a particular instance type, see Memory + * Management in the AWS Batch User Guide.

+ *
+ *

For jobs running on Fargate resources, then value is the hard limit (in GiB), represented in + * decimal form, and must match one of the supported values (0.5 and whole numbers between 1 and 30, inclusive) and + * the VCPU values must be one of the values supported for that memory value.

+ *
+ *
value = 0.5
+ *
+ *

+ * VCPU = 0.25

+ *
+ *
value = 1
+ *
+ *

+ * VCPU = 0.25 or 0.5

+ *
+ *
value = 2
+ *
+ *

+ * VCPU = 0.25, 0.5, or 1

+ *
+ *
value = 3
+ *
+ *

+ * VCPU = 0.5, or 1

+ *
+ *
value = 4
+ *
+ *

+ * VCPU = 0.5, 1, or 2

+ *
+ *
value = 5, 6, or 7
+ *
+ *

+ * VCPU = 1 or 2

+ *
+ *
value = 8
+ *
+ *

+ * VCPU = 1, 2, or 4

+ *
+ *
value = 9, 10, 11, 12, 13, 14, 15, or 16
+ *
+ *

+ * VCPU = 2 or 4

+ *
+ *
value = 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, or 30
+ *
+ *

+ * VCPU = 4

+ *
+ *
+ *
+ *
type="VCPU"
+ *
+ *

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the + * Create a container section of the Docker Remote API and the --cpu-shares option to + * docker run. Each vCPU is equivalent to 1,024 CPU shares. You must + * specify at least one vCPU. This is required but can be specified in several places; it must be specified for each + * node at least once.

+ *

For jobs running on Fargate resources, then value must match one of the supported values and + * the MEMORY values must be one of the values supported for that VCPU value. The supported values are + * 0.25, 0.5, 1, 2, and 4

+ *
+ *
value = 0.25
+ *
+ *

+ * MEMORY = 0.5, 1, or 2

+ *
+ *
value = 0.5
+ *
+ *

+ * MEMORY = 1, 2, 3, or 4

+ *
+ *
value = 1
+ *
+ *

+ * MEMORY = 2, 3, 4, 5, 6, 7, or 8

+ *
+ *
value = 2
+ *
+ *

+ * MEMORY = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, or 16

+ *
+ *
value = 4
+ *
+ *

+ * MEMORY = 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, or 30

+ *
+ *
+ *
+ *
*/ value: string | undefined; /** - *

The type of resource to assign to a container. Currently, the only supported resource type is - * GPU.

+ *

The type of resource to assign to a container. The supported resources include GPU, + * MEMORY, and VCPU.

*/ type: ResourceType | string | undefined; } @@ -1239,6 +1523,9 @@ export namespace ResourceRequirement { /** *

The ulimit settings to pass to the container.

+ * + *

This object isn't applicable to jobs running on Fargate resources.

+ *
*/ export interface Ulimit { /** @@ -1265,8 +1552,8 @@ export namespace Ulimit { /** *

Determine whether your data volume persists on the host container instance and where it is stored. If this - * parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed - * to persist after the containers associated with it stop running.

+ * parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data isn't guaranteed to + * persist after the containers associated with it stop running.

*/ export interface Host { /** @@ -1275,6 +1562,9 @@ export interface Host { * persists at the specified location on the host container instance until you delete it manually. If the source path * location does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the * contents of the source path folder are exported.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ sourcePath?: string; } @@ -1292,8 +1582,11 @@ export interface Volume { /** *

The contents of the host parameter determine whether your data volume persists on the host * container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path - * for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop + * for your data volume. However, the data isn't guaranteed to persist after the containers associated with it stop * running.

+ * + *

This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

+ *
*/ host?: Host; @@ -1326,6 +1619,10 @@ export interface ContainerProperties { * periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of * the Docker Remote API and the IMAGE parameter of docker * run.

+ * + *

Docker image architecture must match the processor architecture of the compute resources that they're scheduled + * on. For example, ARM-based Docker images can only run on ARM-based compute resources.

+ *
*
    *
  • *

    Images in Amazon ECR repositories use the full registry and repository URI (for example, @@ -1348,24 +1645,32 @@ export interface ContainerProperties { image?: string; /** - *

    The number of vCPUs reserved for the container. This parameter maps to CpuShares in the - * Create a container section of the Docker Remote API and the --cpu-shares option to - * docker run. Each vCPU is equivalent to 1,024 CPU shares. You must - * specify at least one vCPU. This is required - * but can be specified in several places for multi-node parallel (MNP) jobs; it must be specified for each node at - * least once.

    + *

    This parameter is deprecated and not supported for jobs run on Fargate resources, see + * resourceRequirement. The number of vCPUs reserved for the container. Jobs running on EC2 resources can + * specify the vCPU requirement for the job using resourceRequirements but the vCPU requirements can't be + * specified both here and in the resourceRequirement structure. This parameter maps to + * CpuShares in the Create a container section of the Docker Remote API and the + * --cpu-shares option to docker run. Each vCPU is equivalent + * to 1,024 CPU shares. You must specify at least one vCPU. This is required but can be specified in several places. It + * must be specified for each node at least once.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. Jobs running + * on Fargate resources must specify the vCPU requirement for the job using resourceRequirements.

    + *
    */ vcpus?: number; /** - *

    The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory - * specified here, the container is killed. This parameter maps to Memory in the - * Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a - * job. This is required but can be specified in - * several places for multi-node parallel (MNP) jobs; it must be specified for each node at least - * once.

    + *

    This parameter is deprecated and not supported for jobs run on Fargate resources, use + * ResourceRequirement. For jobs run on EC2 resources can specify the memory requirement using the + * ResourceRequirement structure. The hard limit (in MiB) of memory to present to the container. If your + * container attempts to exceed the memory specified here, the container is killed. This parameter maps to + * Memory in the Create a container section of the Docker Remote API and the + * --memory option to docker run. You must specify at least 4 + * MiB of memory for a job. This is required but can be specified in several places; it must be specified for each node + * at least once.

    * - *

    If you are trying to maximize your resource utilization by providing your jobs as much memory as possible for a + *

    If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a * particular instance type, see Memory * Management in the AWS Batch User Guide.

    *
    @@ -1379,12 +1684,16 @@ export interface ContainerProperties { command?: string[]; /** - *

    The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions.

    + *

    The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions. For more information, see + * IAM Roles for Tasks + * in the Amazon Elastic Container Service Developer Guide.

    */ jobRoleArn?: string; /** - *

    The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

    + *

    The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. Jobs running on Fargate resources must provide an + * execution role. For more information, see AWS Batch execution IAM role in the + * AWS Batch User Guide.

    */ executionRoleArn?: string; @@ -1397,7 +1706,7 @@ export interface ContainerProperties { *

    The environment variables to pass to a container. This parameter maps to Env in the * Create a container section of the Docker Remote API and the --env option to docker run.

    * - *

    We do not recommend using plaintext environment variables for sensitive information, such as credential + *

    We don't recommend using plaintext environment variables for sensitive information, such as credential * data.

    *
    * @@ -1421,16 +1730,23 @@ export interface ContainerProperties { readonlyRootFilesystem?: boolean; /** - *

    When this parameter is true, the container is given elevated privileges on the host container instance (similar + *

    When this parameter is true, the container is given elevated permissions on the host container instance (similar * to the root user). This parameter maps to Privileged in the * Create a container section of the Docker Remote API and the --privileged option to - * docker run.

    + * docker run. The default value is false.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified + * as false.

    + *
    */ privileged?: boolean; /** *

    A list of ulimits to set in the container. This parameter maps to Ulimits in the * Create a container section of the Docker Remote API and the --ulimit option to docker run.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

    + *
    */ ulimits?: Ulimit[]; @@ -1441,14 +1757,18 @@ export interface ContainerProperties { user?: string; /** - *

    The instance type to use for a multi-node parallel job. Currently all node groups in a multi-node parallel job - * must use the same instance type. This parameter is not valid for single-node container jobs.

    + *

    The instance type to use for a multi-node parallel job. All node groups in a multi-node parallel job must use + * the same instance type.

    + * + *

    This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and + * shouldn't be provided.

    + *
    */ instanceType?: string; /** - *

    The type and amount of a resource to assign to a container. Currently, the only supported resource is - * GPU.

    + *

    The type and amount of resources to assign to a container. The supported resources include GPU, + * MEMORY, and VCPU.

    */ resourceRequirements?: ResourceRequirement[]; @@ -1461,7 +1781,7 @@ export interface ContainerProperties { *

    The log configuration specification for the container.

    *

    This parameter maps to LogConfig in the Create a container section of the * Docker Remote API and the --log-driver option to docker run. - * By default, containers use the same logging driver that the Docker daemon uses. However the container may use a + * By default, containers use the same logging driver that the Docker daemon uses. However the container might use a * different logging driver than the Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system must be configured properly on the * container instance (or on a different log server for remote logging options). For more information on the options for @@ -1484,10 +1804,22 @@ export interface ContainerProperties { logConfiguration?: LogConfiguration; /** - *

    The secrets for the container. For more information, see Specifying Sensitive Data in the - * Amazon Elastic Container Service Developer Guide.

    + *

    The secrets for the container. For more information, see Specifying sensitive data in the + * AWS Batch User Guide.

    */ secrets?: Secret[]; + + /** + *

    The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

    + */ + networkConfiguration?: NetworkConfiguration; + + /** + *

    The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

    + */ + fargatePlatformConfiguration?: FargatePlatformConfiguration; } export namespace ContainerProperties { @@ -1504,8 +1836,9 @@ export interface NodeRangeProperty { *

    The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of * 0 through 3. If the starting range value is omitted (:n), then 0 * is used to start the range. If the ending range value is omitted (n:), then the highest possible node - * index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You may nest node - * ranges, for example 0:10 and 4:5, in which case the 4:5 range properties override the 0:10 properties.

    + * index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You may + * nest node ranges, for example 0:10 and 4:5, in which case the 4:5 range + * properties override the 0:10 properties.

    */ targetNodes: string | undefined; @@ -1548,6 +1881,11 @@ export namespace NodeProperties { }); } +export enum PlatformCapability { + EC2 = "EC2", + FARGATE = "FARGATE", +} + export enum RetryAction { EXIT = "EXIT", RETRY = "RETRY", @@ -1560,14 +1898,14 @@ export enum RetryAction { export interface EvaluateOnExit { /** *

    Contains a glob pattern to match against the StatusReason returned for a job. The patten can be up - * to 512 characters long, can contain letters, numbers, periods (.), colons (:), and whitespace (spaces, tabs). and can - * optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

    + * to 512 characters long, can contain letters, numbers, periods (.), colons (:), and white space (spaces, tabs). and + * can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

    */ onStatusReason?: string; /** *

    Contains a glob pattern to match against the Reason returned for a job. The patten can be up to 512 - * characters long, can contain letters, numbers, periods (.), colons (:), and whitespace (spaces, tabs), and can + * characters long, can contain letters, numbers, periods (.), colons (:), and white space (spaces, tabs), and can * optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

    */ onReason?: string; @@ -1581,7 +1919,7 @@ export interface EvaluateOnExit { /** *

    Specifies the action to take if all of the specified conditions (onStatusReason, - * onReason, and onExitCode) are met.

    + * onReason, and onExitCode) are met. The values are not case sensitive.

    */ action: RetryAction | string | undefined; } @@ -1593,7 +1931,8 @@ export namespace EvaluateOnExit { } /** - *

    The retry strategy associated with a job.

    + *

    The retry strategy associated with a job. For more information, see Automated job retries in the + * AWS Batch User Guide.

    */ export interface RetryStrategy { /** @@ -1604,9 +1943,8 @@ export interface RetryStrategy { attempts?: number; /** - *

    Array of up to 5 objects that specify - * conditions under which the job should be retried or failed. If this parameter is specified, then the - * attempts parameter must also be specified.

    + *

    Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this + * parameter is specified, then the attempts parameter must also be specified.

    */ evaluateOnExit?: EvaluateOnExit[]; } @@ -1623,7 +1961,7 @@ export namespace RetryStrategy { export interface JobTimeout { /** *

    The time duration in seconds (measured from the job attempt's startedAt timestamp) after which - * AWS Batch terminates your jobs if they have not finished.

    + * AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds.

    */ attemptDurationSeconds?: number; } @@ -1659,7 +1997,9 @@ export interface JobDefinition { status?: string; /** - *

    The type of job definition.

    + *

    The type of job definition. If the job is run on Fargate resources, then multinode isn't + * supported. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the + * AWS Batch User Guide.

    */ type: string | undefined; @@ -1683,12 +2023,16 @@ export interface JobDefinition { /** *

    The timeout configuration for jobs that are submitted with this job definition. You can specify a timeout - * duration after which AWS Batch terminates your jobs if they have not finished.

    + * duration after which AWS Batch terminates your jobs if they haven't finished.

    */ timeout?: JobTimeout; /** *

    An object with various properties specific to multi-node parallel jobs.

    + * + *

    If the job runs on Fargate resources, then you must not specify nodeProperties; use + * containerProperties instead.

    + *
    */ nodeProperties?: NodeProperties; @@ -1696,6 +2040,20 @@ export interface JobDefinition { *

    The tags applied to the job definition.

    */ tags?: { [key: string]: string }; + + /** + *

    Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no + * value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For + * tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags + * from the job and job definition is over 50, the job is moved to the FAILED state.

    + */ + propagateTags?: boolean; + + /** + *

    The platform capabilities required by the job definition. If no value is specified, it defaults to + * EC2. Jobs run on Fargate resources specify FARGATE.

    + */ + platformCapabilities?: (PlatformCapability | string)[]; } export namespace JobDefinition { @@ -1735,7 +2093,7 @@ export interface DescribeJobQueuesRequest { * parameter is used, DescribeJobQueues only returns maxResults results in a single page along * with a nextToken response element. The remaining results of the initial request can be seen by sending * another DescribeJobQueues request with the returned nextToken value. This value can be - * between 1 and 100. If this parameter is not used, then DescribeJobQueues + * between 1 and 100. If this parameter isn't used, then DescribeJobQueues * returns up to 100 results and a nextToken value if applicable.

    */ maxResults?: number; @@ -1783,8 +2141,8 @@ export interface JobQueueDetail { jobQueueArn: string | undefined; /** - *

    Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it is - * able to accept jobs. If the job queue state is DISABLED, new jobs cannot be added to the queue, but jobs + *

    Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it's able + * to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs * already in the queue can finish.

    */ state: JQState | string | undefined; @@ -1805,7 +2163,7 @@ export interface JobQueueDetail { priority: number | undefined; /** - *

    The compute environments that are attached to the job queue and the order in which job placement is preferred. + *

    The compute environments that are attached to the job queue and the order that job placement is preferred. * Compute environments are selected for job placement in ascending order.

    */ computeEnvironmentOrder: ComputeEnvironmentOrder[] | undefined; @@ -1865,12 +2223,24 @@ export interface ContainerDetail { image?: string; /** - *

    The number of VCPUs allocated for the job. This is a required parameter.

    + *

    The number of vCPUs reserved for the container. Jobs running on EC2 resources can specify the vCPU requirement + * for the job using resourceRequirements but the vCPU requirements can't be specified both here and in the + * resourceRequirement object. This parameter maps to CpuShares in the + * Create a container section of the Docker Remote API and the --cpu-shares option to + * docker run. Each vCPU is equivalent to 1,024 CPU shares. You must + * specify at least one vCPU. This is required but can be specified in several places. It must be specified for each + * node at least once.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources. Jobs running on Fargate resources + * must specify the vCPU requirement for the job using resourceRequirements.

    + *
    */ vcpus?: number; /** - *

    The number of MiB of memory reserved for the job. This is a required parameter.

    + *

    For jobs run on EC2 resources that didn't specify memory requirements using ResourceRequirement, + * the number of MiB of memory reserved for the job. For other jobs, including all run on Fargate resources, see + * resourceRequirements.

    */ memory?: number; @@ -1885,7 +2255,8 @@ export interface ContainerDetail { jobRoleArn?: string; /** - *

    The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

    + *

    The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role in the + * AWS Batch User Guide.

    */ executionRoleArn?: string; @@ -1909,23 +2280,36 @@ export interface ContainerDetail { mountPoints?: MountPoint[]; /** - *

    When this parameter is true, the container is given read-only access to its root file system.

    + *

    When this parameter is true, the container is given read-only access to its root file system. This parameter + * maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and + * the --read-only option to + * docker run + * .

    */ readonlyRootFilesystem?: boolean; /** - *

    A list of ulimit values to set in the container.

    + *

    A list of ulimit values to set in the container. This parameter maps to Ulimits in the + * Create a container section of the Docker Remote API and the --ulimit option to docker run.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources.

    + *
    */ ulimits?: Ulimit[]; /** - *

    When this parameter is true, the container is given elevated privileges on the host container instance (similar - * to the root user).

    + *

    When this parameter is true, the container is given elevated permissions on the host container instance (similar + * to the root user). The default value is false.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified + * as false.

    + *
    */ privileged?: boolean; /** - *

    The user name to use inside the container.

    + *

    The user name to use inside the container. This parameter maps to User in the + * Create a container section of the Docker Remote API and the --user option to docker run.

    */ user?: string; @@ -1941,7 +2325,7 @@ export interface ContainerDetail { reason?: string; /** - *

    The Amazon Resource Name (ARN) of the container instance on which the container is running.

    + *

    The Amazon Resource Name (ARN) of the container instance that the container is running on.

    */ containerInstanceArn?: string; @@ -1960,6 +2344,9 @@ export interface ContainerDetail { /** *

    The instance type of the underlying host infrastructure of a multi-node parallel job.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources.

    + *
    */ instanceType?: string; @@ -1969,8 +2356,8 @@ export interface ContainerDetail { networkInterfaces?: NetworkInterface[]; /** - *

    The type and amount of a resource to assign to a container. Currently, the only supported resource is - * GPU.

    + *

    The type and amount of resources to assign to a container. The supported resources include GPU, + * MEMORY, and VCPU.

    */ resourceRequirements?: ResourceRequirement[]; @@ -1983,12 +2370,12 @@ export interface ContainerDetail { *

    The log configuration specification for the container.

    *

    This parameter maps to LogConfig in the Create a container section of the * Docker Remote API and the --log-driver option to docker run. - * By default, containers use the same logging driver that the Docker daemon uses. However the container may use a + * By default, containers use the same logging driver that the Docker daemon uses. However the container might use a * different logging driver than the Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system must be configured properly on the - * container instance (or on a different log server for remote logging options). For more information on the options for - * different supported log drivers, see Configure - * logging drivers in the Docker documentation.

    + * container instance. Or, alternatively, it must be configured on a different log server for remote logging options. + * For more information on the options for different supported log drivers, see Configure logging drivers in the Docker + * documentation.

    * *

    AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS * container agent.

    @@ -2007,10 +2394,22 @@ export interface ContainerDetail { logConfiguration?: LogConfiguration; /** - *

    The secrets to pass to the container. For more information, see Specifying Sensitive Data in the - * Amazon Elastic Container Service Developer Guide.

    + *

    The secrets to pass to the container. For more information, see Specifying sensitive data in the + * AWS Batch User Guide.

    */ secrets?: Secret[]; + + /** + *

    The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

    + */ + networkConfiguration?: NetworkConfiguration; + + /** + *

    The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not + * specify this parameter.

    + */ + fargatePlatformConfiguration?: FargatePlatformConfiguration; } export namespace ContainerDetail { @@ -2092,7 +2491,7 @@ export interface JobDetail { jobId: string | undefined; /** - *

    The Amazon Resource Name (ARN) of the job queue with which the job is associated.

    + *

    The Amazon Resource Name (ARN) of the job queue that the job is associated with.

    */ jobQueue: string | undefined; @@ -2130,9 +2529,8 @@ export interface JobDetail { /** *

    The Unix timestamp (in milliseconds) for when the job was started (when the job transitioned from the - * STARTING state to the RUNNING - * state). This parameter is not provided for - * child jobs of array jobs or multi-node parallel jobs.

    + * STARTING state to the RUNNING state). This parameter isn't provided for child jobs of + * array jobs or multi-node parallel jobs.

    */ startedAt: number | undefined; @@ -2143,7 +2541,7 @@ export interface JobDetail { stoppedAt?: number; /** - *

    A list of job IDs on which this job depends.

    + *

    A list of job IDs that this job depends on.

    */ dependsOn?: JobDependency[]; @@ -2159,7 +2557,7 @@ export interface JobDetail { parameters?: { [key: string]: string }; /** - *

    An object representing the details of the container that is associated with the job.

    + *

    An object representing the details of the container that's associated with the job.

    */ container?: ContainerDetail; @@ -2170,6 +2568,9 @@ export interface JobDetail { /** *

    An object representing the node properties of a multi-node parallel job.

    + * + *

    This isn't applicable to jobs running on Fargate resources.

    + *
    */ nodeProperties?: NodeProperties; @@ -2187,6 +2588,20 @@ export interface JobDetail { *

    The tags applied to the job.

    */ tags?: { [key: string]: string }; + + /** + *

    Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no + * value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For + * tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags + * from the job and job definition is over 50, the job is moved to the FAILED state.

    + */ + propagateTags?: boolean; + + /** + *

    The platform capabilities required by the job definition. If no value is specified, it defaults to + * EC2. Jobs run on Fargate resources specify FARGATE.

    + */ + platformCapabilities?: (PlatformCapability | string)[]; } export namespace JobDetail { @@ -2210,7 +2625,7 @@ export namespace DescribeJobsResponse { export interface ListJobsRequest { /** - *

    The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs.

    + *

    The name or full Amazon Resource Name (ARN) of the job queue used to list jobs.

    */ jobQueue?: string; @@ -2227,7 +2642,7 @@ export interface ListJobsRequest { multiNodeJobId?: string; /** - *

    The job status with which to filter jobs in the specified queue. If you do not specify a status, only + *

    The job status used to filter jobs in the specified queue. If you don't specify a status, only * RUNNING jobs are returned.

    */ jobStatus?: JobStatus | string; @@ -2237,7 +2652,7 @@ export interface ListJobsRequest { * used, ListJobs only returns maxResults results in a single page along with a * nextToken response element. The remaining results of the initial request can be seen by sending another * ListJobs request with the returned nextToken value. This value can be between - * 1 and 100. If this parameter is not used, then ListJobs returns up to + * 1 and 100. If this parameter isn't used, then ListJobs returns up to * 100 results and a nextToken value if applicable.

    */ maxResults?: number; @@ -2370,6 +2785,9 @@ export interface JobSummary { /** *

    The node properties for a single node in a job summary list.

    + * + *

    This isn't applicable to jobs running on Fargate resources.

    + *
    */ nodeProperties?: NodePropertiesSummary; } @@ -2402,7 +2820,7 @@ export namespace ListJobsResponse { export interface ListTagsForResourceRequest { /** - *

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job + *

    The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

    */ resourceArn: string | undefined; @@ -2440,7 +2858,11 @@ export interface RegisterJobDefinitionRequest { jobDefinitionName: string | undefined; /** - *

    The type of job definition.

    + *

    The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the + * AWS Batch User Guide.

    + * + *

    If the job is run on Fargate resources, then multinode isn't supported.

    + *
    */ type: JobDefinitionType | string | undefined; @@ -2455,6 +2877,10 @@ export interface RegisterJobDefinitionRequest { *

    An object with various properties specific to single-node container-based jobs. If the job definition's * type parameter is container, then you must specify either containerProperties * or nodeProperties.

    + * + *

    If the job runs on Fargate resources, then you must not specify nodeProperties; use only + * containerProperties.

    + *
    */ containerProperties?: ContainerProperties; @@ -2464,31 +2890,49 @@ export interface RegisterJobDefinitionRequest { * AWS Batch User Guide. If the job definition's type parameter is * container, then you must specify either containerProperties or * nodeProperties.

    + * + *

    If the job runs on Fargate resources, then you must not specify nodeProperties; use + * containerProperties instead.

    + *
    */ nodeProperties?: NodeProperties; /** *

    The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that * is specified during a SubmitJob operation overrides the retry strategy defined here. If a job is - * terminated due to a timeout, it is not retried.

    + * terminated due to a timeout, it isn't retried.

    */ retryStrategy?: RetryStrategy; + /** + *

    Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no + * value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For + * tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags + * from the job and job definition is over 50, the job is moved to the FAILED state.

    + */ + propagateTags?: boolean; + /** *

    The timeout configuration for jobs that are submitted with this job definition, after which AWS Batch terminates - * your jobs if they have not finished. If a job is terminated due to a timeout, it is not retried. The minimum value - * for the timeout is 60 seconds. Any timeout configuration that is specified during a SubmitJob - * operation overrides the timeout configuration defined here. For more information, see Job Timeouts in the - * Amazon Elastic Container Service Developer Guide.

    + * your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for + * the timeout is 60 seconds. Any timeout configuration that is specified during a SubmitJob operation + * overrides the timeout configuration defined here. For more information, see Job Timeouts in the + * AWS Batch User Guide.

    */ timeout?: JobTimeout; /** *

    The tags that you apply to the job definition to help you categorize and organize your resources. Each tag - * consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General - * Reference.

    + * consists of a key and an optional value. For more information, see Tagging AWS Resources in + * AWS Batch User Guide.

    */ tags?: { [key: string]: string }; + + /** + *

    The platform capabilities required by the job definition. If no value is specified, it defaults to + * EC2. To run the job on Fargate resources, specify FARGATE.

    + */ + platformCapabilities?: (PlatformCapability | string)[]; } export namespace RegisterJobDefinitionRequest { @@ -2525,14 +2969,25 @@ export namespace RegisterJobDefinitionResponse { */ export interface ContainerOverrides { /** - *

    The number of vCPUs to reserve for the container. This value overrides the value set in the job - * definition.

    + *

    This parameter is deprecated and not supported for jobs run on Fargate resources, see + * resourceRequirement. For jobs run on EC2 resources, the number of vCPUs to reserve for the container. + * This value overrides the value set in the job definition. Jobs run on EC2 resources can specify the vCPU requirement + * using resourceRequirement but the vCPU requirements can't be specified both here and in + * resourceRequirement. This parameter maps to CpuShares in the + * Create a container section of the Docker Remote API and the --cpu-shares option to + * docker run. Each vCPU is equivalent to 1,024 CPU shares. You must + * specify at least one vCPU.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. Jobs running + * on Fargate resources must specify the vCPU requirement for the job using resourceRequirements.

    + *
    */ vcpus?: number; /** - *

    The number of MiB of memory reserved for the job. This value overrides the value set in the job - * definition.

    + *

    This parameter is deprecated and not supported for jobs run on Fargate resources, use + * ResourceRequirement. For jobs run on EC2 resource, the number of MiB of memory reserved for the job. + * This value overrides the value set in the job definition.

    */ memory?: number; @@ -2543,8 +2998,11 @@ export interface ContainerOverrides { command?: string[]; /** - *

    The instance type to use for a multi-node parallel job. This parameter is not valid for single-node container - * jobs.

    + *

    The instance type to use for a multi-node parallel job.

    + * + *

    This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and + * shouldn't be provided.

    + *
    */ instanceType?: string; @@ -2560,8 +3018,8 @@ export interface ContainerOverrides { environment?: KeyValuePair[]; /** - *

    The type and amount of a resource to assign to a container. This value overrides the value set in the job - * definition. Currently, the only supported resource is GPU.

    + *

    The type and amount of resources to assign to a container. This overrides the settings in the job definition. + * The supported resources include GPU, MEMORY, and VCPU.

    */ resourceRequirements?: ResourceRequirement[]; } @@ -2578,10 +3036,10 @@ export namespace ContainerOverrides { */ export interface NodePropertyOverride { /** - *

    The range of nodes, using node index values, with which to override. A range of 0:3 indicates nodes - * with index values of 0 through 3. If the starting range value is omitted (:n), - * then 0 is used to start the range. If the ending range value is omitted (n:), then the - * highest possible node index is used to end the range.

    + *

    The range of nodes, using node index values, that's used to override. A range of 0:3 indicates + * nodes with index values of 0 through 3. If the starting range value is omitted + * (:n), then 0 is used to start the range. If the ending range value is omitted + * (n:), then the highest possible node index is used to end the range.

    */ targetNodes: string | undefined; @@ -2600,6 +3058,10 @@ export namespace NodePropertyOverride { /** *

    Object representing any node overrides to a job definition that is used in a SubmitJob API * operation.

    + * + *

    This isn't applicable to jobs running on Fargate resources and shouldn't be provided; use + * containerOverrides instead.

    + *
    */ export interface NodeOverrides { /** @@ -2665,8 +3127,8 @@ export interface SubmitJobRequest { /** *

    The job definition used by this job. This value can be one of name, name:revision, or - * the Amazon Resource Name (ARN) for the job definition. If - * name is specified without a revision then the latest active revision is used.

    + * the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active + * revision is used.

    */ jobDefinition: string | undefined; @@ -2689,6 +3151,10 @@ export interface SubmitJobRequest { /** *

    A list of node overrides in JSON format that specify the node range to target and the container overrides for * that node range.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources; use containerOverrides + * instead.

    + *
    */ nodeOverrides?: NodeOverrides; @@ -2698,10 +3164,19 @@ export interface SubmitJobRequest { */ retryStrategy?: RetryStrategy; + /** + *

    Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no + * value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For + * tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags + * from the job and job definition is over 50, the job is moved to the FAILED state. When specified, this + * overrides the tag propagation setting in the job definition.

    + */ + propagateTags?: boolean; + /** *

    The timeout configuration for this SubmitJob operation. You can specify a timeout duration - * after which AWS Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it is - * not retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration + * after which AWS Batch terminates your jobs if they haven't finished. If a job is terminated due to a timeout, it isn't + * retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration * specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job. * For more information, see Job * Timeouts in the Amazon Elastic Container Service Developer Guide.

    @@ -2747,7 +3222,7 @@ export namespace SubmitJobResponse { export interface TagResourceRequest { /** - *

    The Amazon Resource Name (ARN) of the resource to which to add tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job + *

    The Amazon Resource Name (ARN) of the resource that tags are added to. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job * queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

    */ resourceArn: string | undefined; @@ -2835,6 +3310,9 @@ export namespace UntagResourceResponse { export interface ComputeResourceUpdate { /** *

    The minimum number of Amazon EC2 vCPUs that an environment should maintain.

    + * + *

    This parameter isnt applicable to jobs running on Fargate resources, and shouldn't be specified.

    + *
    */ minvCpus?: number; @@ -2845,8 +3323,27 @@ export interface ComputeResourceUpdate { /** *

    The desired number of Amazon EC2 vCPUS in the compute environment.

    + * + *

    This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

    + *
    */ desiredvCpus?: number; + + /** + *

    The VPC subnets that the compute resources are launched into. This parameter is required for jobs running on + * Fargate compute resources, where it can contain up to 16 subnets. For more information, see VPCs and Subnets in the Amazon + * VPC User Guide. This can't be specified for EC2 compute resources. Providing an empty list will be + * handled as if this parameter wasn't specified and no change is made.

    + */ + subnets?: string[]; + + /** + *

    The Amazon EC2 security groups associated with instances launched in the compute environment. This parameter is + * required for Fargate compute resources, where it can contain up to 5 security groups. This can't be specified for + * EC2 compute resources. Providing an empty list is handled as if this parameter wasn't specified and no changeis + * made.

    + */ + securityGroupIds?: string[]; } export namespace ComputeResourceUpdate { @@ -2879,8 +3376,8 @@ export interface UpdateComputeEnvironmentRequest { *

    If your specified role has a path other than /, then you must either specify the full role ARN * (this is recommended) or prefix the role name with the path.

    * - *

    Depending on how you created your AWS Batch service role, its ARN may contain the service-role path - * prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the + *

    Depending on how you created your AWS Batch service role, its ARN might contain the service-role + * path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the * service-role path prefix. Because of this, we recommend that you specify the full ARN of your service * role when you create compute environments.

    *
    @@ -2935,8 +3432,9 @@ export interface UpdateJobQueueRequest { /** *

    Details the set of compute environments mapped to a job queue and their order relative to each other. This is - * one of the parameters used by the job scheduler to determine which compute environment should execute a given - * job.

    + * one of the parameters used by the job scheduler to determine which compute environment should run a given job. All of + * the compute environments must be either EC2 (EC2 or SPOT) or Fargate + * (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

    */ computeEnvironmentOrder?: ComputeEnvironmentOrder[]; } diff --git a/clients/client-batch/protocols/Aws_restJson1.ts b/clients/client-batch/protocols/Aws_restJson1.ts index 989b8ed183029..190d303308584 100644 --- a/clients/client-batch/protocols/Aws_restJson1.ts +++ b/clients/client-batch/protocols/Aws_restJson1.ts @@ -60,6 +60,7 @@ import { DeviceCgroupPermission, Ec2Configuration, EvaluateOnExit, + FargatePlatformConfiguration, Host, JobDefinition, JobDependency, @@ -72,6 +73,7 @@ import { LinuxParameters, LogConfiguration, MountPoint, + NetworkConfiguration, NetworkInterface, NodeDetails, NodeOverrides, @@ -79,6 +81,7 @@ import { NodePropertiesSummary, NodePropertyOverride, NodeRangeProperty, + PlatformCapability, ResourceRequirement, RetryStrategy, Secret, @@ -444,6 +447,10 @@ export const serializeAws_restJson1RegisterJobDefinitionCommand = async ( ...(input.parameters !== undefined && { parameters: serializeAws_restJson1ParametersMap(input.parameters, context), }), + ...(input.platformCapabilities !== undefined && { + platformCapabilities: serializeAws_restJson1PlatformCapabilityList(input.platformCapabilities, context), + }), + ...(input.propagateTags !== undefined && { propagateTags: input.propagateTags }), ...(input.retryStrategy !== undefined && { retryStrategy: serializeAws_restJson1RetryStrategy(input.retryStrategy, context), }), @@ -491,6 +498,7 @@ export const serializeAws_restJson1SubmitJobCommand = async ( ...(input.parameters !== undefined && { parameters: serializeAws_restJson1ParametersMap(input.parameters, context), }), + ...(input.propagateTags !== undefined && { propagateTags: input.propagateTags }), ...(input.retryStrategy !== undefined && { retryStrategy: serializeAws_restJson1RetryStrategy(input.retryStrategy, context), }), @@ -1971,6 +1979,10 @@ const serializeAws_restJson1ComputeResourceUpdate = (input: ComputeResourceUpdat ...(input.desiredvCpus !== undefined && { desiredvCpus: input.desiredvCpus }), ...(input.maxvCpus !== undefined && { maxvCpus: input.maxvCpus }), ...(input.minvCpus !== undefined && { minvCpus: input.minvCpus }), + ...(input.securityGroupIds !== undefined && { + securityGroupIds: serializeAws_restJson1StringList(input.securityGroupIds, context), + }), + ...(input.subnets !== undefined && { subnets: serializeAws_restJson1StringList(input.subnets, context) }), }; }; @@ -1996,6 +2008,12 @@ const serializeAws_restJson1ContainerProperties = (input: ContainerProperties, c environment: serializeAws_restJson1EnvironmentVariables(input.environment, context), }), ...(input.executionRoleArn !== undefined && { executionRoleArn: input.executionRoleArn }), + ...(input.fargatePlatformConfiguration !== undefined && { + fargatePlatformConfiguration: serializeAws_restJson1FargatePlatformConfiguration( + input.fargatePlatformConfiguration, + context + ), + }), ...(input.image !== undefined && { image: input.image }), ...(input.instanceType !== undefined && { instanceType: input.instanceType }), ...(input.jobRoleArn !== undefined && { jobRoleArn: input.jobRoleArn }), @@ -2009,6 +2027,9 @@ const serializeAws_restJson1ContainerProperties = (input: ContainerProperties, c ...(input.mountPoints !== undefined && { mountPoints: serializeAws_restJson1MountPoints(input.mountPoints, context), }), + ...(input.networkConfiguration !== undefined && { + networkConfiguration: serializeAws_restJson1NetworkConfiguration(input.networkConfiguration, context), + }), ...(input.privileged !== undefined && { privileged: input.privileged }), ...(input.readonlyRootFilesystem !== undefined && { readonlyRootFilesystem: input.readonlyRootFilesystem }), ...(input.resourceRequirements !== undefined && { @@ -2071,6 +2092,15 @@ const serializeAws_restJson1EvaluateOnExitList = (input: EvaluateOnExit[], conte return input.map((entry) => serializeAws_restJson1EvaluateOnExit(entry, context)); }; +const serializeAws_restJson1FargatePlatformConfiguration = ( + input: FargatePlatformConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.platformVersion !== undefined && { platformVersion: input.platformVersion }), + }; +}; + const serializeAws_restJson1Host = (input: Host, context: __SerdeContext): any => { return { ...(input.sourcePath !== undefined && { sourcePath: input.sourcePath }), @@ -2160,6 +2190,12 @@ const serializeAws_restJson1MountPoints = (input: MountPoint[], context: __Serde return input.map((entry) => serializeAws_restJson1MountPoint(entry, context)); }; +const serializeAws_restJson1NetworkConfiguration = (input: NetworkConfiguration, context: __SerdeContext): any => { + return { + ...(input.assignPublicIp !== undefined && { assignPublicIp: input.assignPublicIp }), + }; +}; + const serializeAws_restJson1NodeOverrides = (input: NodeOverrides, context: __SerdeContext): any => { return { ...(input.nodePropertyOverrides !== undefined && { @@ -2215,6 +2251,13 @@ const serializeAws_restJson1ParametersMap = (input: { [key: string]: string }, c ); }; +const serializeAws_restJson1PlatformCapabilityList = ( + input: (PlatformCapability | string)[], + context: __SerdeContext +): any => { + return input.map((entry) => entry); +}; + const serializeAws_restJson1ResourceRequirement = (input: ResourceRequirement, context: __SerdeContext): any => { return { ...(input.type !== undefined && { type: input.type }), @@ -2499,6 +2542,10 @@ const deserializeAws_restJson1ContainerDetail = (output: any, context: __SerdeCo executionRoleArn: output.executionRoleArn !== undefined && output.executionRoleArn !== null ? output.executionRoleArn : undefined, exitCode: output.exitCode !== undefined && output.exitCode !== null ? output.exitCode : undefined, + fargatePlatformConfiguration: + output.fargatePlatformConfiguration !== undefined && output.fargatePlatformConfiguration !== null + ? deserializeAws_restJson1FargatePlatformConfiguration(output.fargatePlatformConfiguration, context) + : undefined, image: output.image !== undefined && output.image !== null ? output.image : undefined, instanceType: output.instanceType !== undefined && output.instanceType !== null ? output.instanceType : undefined, jobRoleArn: output.jobRoleArn !== undefined && output.jobRoleArn !== null ? output.jobRoleArn : undefined, @@ -2517,6 +2564,10 @@ const deserializeAws_restJson1ContainerDetail = (output: any, context: __SerdeCo output.mountPoints !== undefined && output.mountPoints !== null ? deserializeAws_restJson1MountPoints(output.mountPoints, context) : undefined, + networkConfiguration: + output.networkConfiguration !== undefined && output.networkConfiguration !== null + ? deserializeAws_restJson1NetworkConfiguration(output.networkConfiguration, context) + : undefined, networkInterfaces: output.networkInterfaces !== undefined && output.networkInterfaces !== null ? deserializeAws_restJson1NetworkInterfaceList(output.networkInterfaces, context) @@ -2561,6 +2612,10 @@ const deserializeAws_restJson1ContainerProperties = (output: any, context: __Ser : undefined, executionRoleArn: output.executionRoleArn !== undefined && output.executionRoleArn !== null ? output.executionRoleArn : undefined, + fargatePlatformConfiguration: + output.fargatePlatformConfiguration !== undefined && output.fargatePlatformConfiguration !== null + ? deserializeAws_restJson1FargatePlatformConfiguration(output.fargatePlatformConfiguration, context) + : undefined, image: output.image !== undefined && output.image !== null ? output.image : undefined, instanceType: output.instanceType !== undefined && output.instanceType !== null ? output.instanceType : undefined, jobRoleArn: output.jobRoleArn !== undefined && output.jobRoleArn !== null ? output.jobRoleArn : undefined, @@ -2577,6 +2632,10 @@ const deserializeAws_restJson1ContainerProperties = (output: any, context: __Ser output.mountPoints !== undefined && output.mountPoints !== null ? deserializeAws_restJson1MountPoints(output.mountPoints, context) : undefined, + networkConfiguration: + output.networkConfiguration !== undefined && output.networkConfiguration !== null + ? deserializeAws_restJson1NetworkConfiguration(output.networkConfiguration, context) + : undefined, privileged: output.privileged !== undefined && output.privileged !== null ? output.privileged : undefined, readonlyRootFilesystem: output.readonlyRootFilesystem !== undefined && output.readonlyRootFilesystem !== null @@ -2663,6 +2722,16 @@ const deserializeAws_restJson1EvaluateOnExitList = (output: any, context: __Serd return (output || []).map((entry: any) => deserializeAws_restJson1EvaluateOnExit(entry, context)); }; +const deserializeAws_restJson1FargatePlatformConfiguration = ( + output: any, + context: __SerdeContext +): FargatePlatformConfiguration => { + return { + platformVersion: + output.platformVersion !== undefined && output.platformVersion !== null ? output.platformVersion : undefined, + } as any; +}; + const deserializeAws_restJson1Host = (output: any, context: __SerdeContext): Host => { return { sourcePath: output.sourcePath !== undefined && output.sourcePath !== null ? output.sourcePath : undefined, @@ -2689,6 +2758,12 @@ const deserializeAws_restJson1JobDefinition = (output: any, context: __SerdeCont output.parameters !== undefined && output.parameters !== null ? deserializeAws_restJson1ParametersMap(output.parameters, context) : undefined, + platformCapabilities: + output.platformCapabilities !== undefined && output.platformCapabilities !== null + ? deserializeAws_restJson1PlatformCapabilityList(output.platformCapabilities, context) + : undefined, + propagateTags: + output.propagateTags !== undefined && output.propagateTags !== null ? output.propagateTags : undefined, retryStrategy: output.retryStrategy !== undefined && output.retryStrategy !== null ? deserializeAws_restJson1RetryStrategy(output.retryStrategy, context) @@ -2759,6 +2834,12 @@ const deserializeAws_restJson1JobDetail = (output: any, context: __SerdeContext) output.parameters !== undefined && output.parameters !== null ? deserializeAws_restJson1ParametersMap(output.parameters, context) : undefined, + platformCapabilities: + output.platformCapabilities !== undefined && output.platformCapabilities !== null + ? deserializeAws_restJson1PlatformCapabilityList(output.platformCapabilities, context) + : undefined, + propagateTags: + output.propagateTags !== undefined && output.propagateTags !== null ? output.propagateTags : undefined, retryStrategy: output.retryStrategy !== undefined && output.retryStrategy !== null ? deserializeAws_restJson1RetryStrategy(output.retryStrategy, context) @@ -2926,6 +3007,13 @@ const deserializeAws_restJson1MountPoints = (output: any, context: __SerdeContex return (output || []).map((entry: any) => deserializeAws_restJson1MountPoint(entry, context)); }; +const deserializeAws_restJson1NetworkConfiguration = (output: any, context: __SerdeContext): NetworkConfiguration => { + return { + assignPublicIp: + output.assignPublicIp !== undefined && output.assignPublicIp !== null ? output.assignPublicIp : undefined, + } as any; +}; + const deserializeAws_restJson1NetworkInterface = (output: any, context: __SerdeContext): NetworkInterface => { return { attachmentId: output.attachmentId !== undefined && output.attachmentId !== null ? output.attachmentId : undefined, @@ -2991,6 +3079,13 @@ const deserializeAws_restJson1ParametersMap = (output: any, context: __SerdeCont ); }; +const deserializeAws_restJson1PlatformCapabilityList = ( + output: any, + context: __SerdeContext +): (PlatformCapability | string)[] => { + return (output || []).map((entry: any) => entry); +}; + const deserializeAws_restJson1ResourceRequirement = (output: any, context: __SerdeContext): ResourceRequirement => { return { type: output.type !== undefined && output.type !== null ? output.type : undefined, diff --git a/clients/client-compute-optimizer/ComputeOptimizer.ts b/clients/client-compute-optimizer/ComputeOptimizer.ts index 17fbe1aa69b9f..0596741ea2ad2 100644 --- a/clients/client-compute-optimizer/ComputeOptimizer.ts +++ b/clients/client-compute-optimizer/ComputeOptimizer.ts @@ -19,6 +19,11 @@ import { GetAutoScalingGroupRecommendationsCommandInput, GetAutoScalingGroupRecommendationsCommandOutput, } from "./commands/GetAutoScalingGroupRecommendationsCommand"; +import { + GetEBSVolumeRecommendationsCommand, + GetEBSVolumeRecommendationsCommandInput, + GetEBSVolumeRecommendationsCommandOutput, +} from "./commands/GetEBSVolumeRecommendationsCommand"; import { GetEC2InstanceRecommendationsCommand, GetEC2InstanceRecommendationsCommandInput, @@ -48,16 +53,15 @@ import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; /** *

    AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your - * AWS resources, such as EC2 instances and Auto Scaling groups. It reports whether your - * resources are optimal, and generates optimization recommendations to reduce the cost and - * improve the performance of your workloads. Compute Optimizer also provides recent utilization metric - * data, as well as projected utilization metric data for the recommendations, which you - * can use to evaluate which recommendation provides the best price-performance trade-off. - * The analysis of your usage patterns can help you decide when to move or resize your - * running resources, and still meet your performance and capacity requirements. For more - * information about Compute Optimizer, including the required permissions to use the service, see the - * AWS Compute Optimizer User - * Guide.

    + * AWS compute resources, such as EC2 instances, Auto Scaling groups, and Amazon EBS volumes. It + * reports whether your resources are optimal, and generates optimization recommendations + * to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides + * recent utilization metric data, as well as projected utilization metric data for the + * recommendations, which you can use to evaluate which recommendation provides the best + * price-performance trade-off. The analysis of your usage patterns can help you decide + * when to move or resize your running resources, and still meet your performance and + * capacity requirements. For more information about Compute Optimizer, including the required + * permissions to use the service, see the AWS Compute Optimizer User Guide.

    */ export class ComputeOptimizer extends ComputeOptimizerClient { /** @@ -213,6 +217,42 @@ export class ComputeOptimizer extends ComputeOptimizerClient { } } + /** + *

    Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations.

    + * + *

    AWS Compute Optimizer generates recommendations for Amazon EBS volumes that meet a specific set of + * requirements. For more information, see the Supported resources and + * requirements in the AWS Compute Optimizer User Guide.

    + */ + public getEBSVolumeRecommendations( + args: GetEBSVolumeRecommendationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getEBSVolumeRecommendations( + args: GetEBSVolumeRecommendationsCommandInput, + cb: (err: any, data?: GetEBSVolumeRecommendationsCommandOutput) => void + ): void; + public getEBSVolumeRecommendations( + args: GetEBSVolumeRecommendationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetEBSVolumeRecommendationsCommandOutput) => void + ): void; + public getEBSVolumeRecommendations( + args: GetEBSVolumeRecommendationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetEBSVolumeRecommendationsCommandOutput) => void), + cb?: (err: any, data?: GetEBSVolumeRecommendationsCommandOutput) => void + ): Promise | void { + const command = new GetEBSVolumeRecommendationsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Returns Amazon EC2 instance recommendations.

    * @@ -291,8 +331,8 @@ export class ComputeOptimizer extends ComputeOptimizerClient { /** *

    Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

    - *

    If the account is the master account of an organization, this action also confirms the - * enrollment status of member accounts within the organization.

    + *

    If the account is the management account of an organization, this action also confirms + * the enrollment status of member accounts within the organization.

    */ public getEnrollmentStatus( args: GetEnrollmentStatusCommandInput, @@ -360,8 +400,8 @@ export class ComputeOptimizer extends ComputeOptimizerClient { /** *

    Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

    - *

    If the account is a master account of an organization, this action can also be used to - * enroll member accounts within the organization.

    + *

    If the account is a management account of an organization, this action can also be used + * to enroll member accounts within the organization.

    */ public updateEnrollmentStatus( args: UpdateEnrollmentStatusCommandInput, diff --git a/clients/client-compute-optimizer/ComputeOptimizerClient.ts b/clients/client-compute-optimizer/ComputeOptimizerClient.ts index 3313fadd89e0f..137aadcf4e66d 100644 --- a/clients/client-compute-optimizer/ComputeOptimizerClient.ts +++ b/clients/client-compute-optimizer/ComputeOptimizerClient.ts @@ -14,6 +14,10 @@ import { GetAutoScalingGroupRecommendationsCommandInput, GetAutoScalingGroupRecommendationsCommandOutput, } from "./commands/GetAutoScalingGroupRecommendationsCommand"; +import { + GetEBSVolumeRecommendationsCommandInput, + GetEBSVolumeRecommendationsCommandOutput, +} from "./commands/GetEBSVolumeRecommendationsCommand"; import { GetEC2InstanceRecommendationsCommandInput, GetEC2InstanceRecommendationsCommandOutput, @@ -88,6 +92,7 @@ export type ServiceInputTypes = | ExportAutoScalingGroupRecommendationsCommandInput | ExportEC2InstanceRecommendationsCommandInput | GetAutoScalingGroupRecommendationsCommandInput + | GetEBSVolumeRecommendationsCommandInput | GetEC2InstanceRecommendationsCommandInput | GetEC2RecommendationProjectedMetricsCommandInput | GetEnrollmentStatusCommandInput @@ -99,6 +104,7 @@ export type ServiceOutputTypes = | ExportAutoScalingGroupRecommendationsCommandOutput | ExportEC2InstanceRecommendationsCommandOutput | GetAutoScalingGroupRecommendationsCommandOutput + | GetEBSVolumeRecommendationsCommandOutput | GetEC2InstanceRecommendationsCommandOutput | GetEC2RecommendationProjectedMetricsCommandOutput | GetEnrollmentStatusCommandOutput @@ -219,16 +225,15 @@ export type ComputeOptimizerClientResolvedConfig = __SmithyResolvedConfiguration /** *

    AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your - * AWS resources, such as EC2 instances and Auto Scaling groups. It reports whether your - * resources are optimal, and generates optimization recommendations to reduce the cost and - * improve the performance of your workloads. Compute Optimizer also provides recent utilization metric - * data, as well as projected utilization metric data for the recommendations, which you - * can use to evaluate which recommendation provides the best price-performance trade-off. - * The analysis of your usage patterns can help you decide when to move or resize your - * running resources, and still meet your performance and capacity requirements. For more - * information about Compute Optimizer, including the required permissions to use the service, see the - * AWS Compute Optimizer User - * Guide.

    + * AWS compute resources, such as EC2 instances, Auto Scaling groups, and Amazon EBS volumes. It + * reports whether your resources are optimal, and generates optimization recommendations + * to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides + * recent utilization metric data, as well as projected utilization metric data for the + * recommendations, which you can use to evaluate which recommendation provides the best + * price-performance trade-off. The analysis of your usage patterns can help you decide + * when to move or resize your running resources, and still meet your performance and + * capacity requirements. For more information about Compute Optimizer, including the required + * permissions to use the service, see the AWS Compute Optimizer User Guide.

    */ export class ComputeOptimizerClient extends __Client< __HttpHandlerOptions, diff --git a/clients/client-compute-optimizer/commands/GetEBSVolumeRecommendationsCommand.ts b/clients/client-compute-optimizer/commands/GetEBSVolumeRecommendationsCommand.ts new file mode 100644 index 0000000000000..594b76186c170 --- /dev/null +++ b/clients/client-compute-optimizer/commands/GetEBSVolumeRecommendationsCommand.ts @@ -0,0 +1,95 @@ +import { ComputeOptimizerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ComputeOptimizerClient"; +import { GetEBSVolumeRecommendationsRequest, GetEBSVolumeRecommendationsResponse } from "../models/models_0"; +import { + deserializeAws_json1_0GetEBSVolumeRecommendationsCommand, + serializeAws_json1_0GetEBSVolumeRecommendationsCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetEBSVolumeRecommendationsCommandInput = GetEBSVolumeRecommendationsRequest; +export type GetEBSVolumeRecommendationsCommandOutput = GetEBSVolumeRecommendationsResponse & __MetadataBearer; + +/** + *

    Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations.

    + * + *

    AWS Compute Optimizer generates recommendations for Amazon EBS volumes that meet a specific set of + * requirements. For more information, see the Supported resources and + * requirements in the AWS Compute Optimizer User Guide.

    + */ +export class GetEBSVolumeRecommendationsCommand extends $Command< + GetEBSVolumeRecommendationsCommandInput, + GetEBSVolumeRecommendationsCommandOutput, + ComputeOptimizerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetEBSVolumeRecommendationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComputeOptimizerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComputeOptimizerClient"; + const commandName = "GetEBSVolumeRecommendationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetEBSVolumeRecommendationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetEBSVolumeRecommendationsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetEBSVolumeRecommendationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0GetEBSVolumeRecommendationsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_0GetEBSVolumeRecommendationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-compute-optimizer/commands/GetEnrollmentStatusCommand.ts b/clients/client-compute-optimizer/commands/GetEnrollmentStatusCommand.ts index e7795a2f36a70..1dfd1c1f182d6 100644 --- a/clients/client-compute-optimizer/commands/GetEnrollmentStatusCommand.ts +++ b/clients/client-compute-optimizer/commands/GetEnrollmentStatusCommand.ts @@ -22,8 +22,8 @@ export type GetEnrollmentStatusCommandOutput = GetEnrollmentStatusResponse & __M /** *

    Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

    - *

    If the account is the master account of an organization, this action also confirms the - * enrollment status of member accounts within the organization.

    + *

    If the account is the management account of an organization, this action also confirms + * the enrollment status of member accounts within the organization.

    */ export class GetEnrollmentStatusCommand extends $Command< GetEnrollmentStatusCommandInput, diff --git a/clients/client-compute-optimizer/commands/UpdateEnrollmentStatusCommand.ts b/clients/client-compute-optimizer/commands/UpdateEnrollmentStatusCommand.ts index 232493337e0b8..18fd023ad76a1 100644 --- a/clients/client-compute-optimizer/commands/UpdateEnrollmentStatusCommand.ts +++ b/clients/client-compute-optimizer/commands/UpdateEnrollmentStatusCommand.ts @@ -22,8 +22,8 @@ export type UpdateEnrollmentStatusCommandOutput = UpdateEnrollmentStatusResponse /** *

    Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

    - *

    If the account is a master account of an organization, this action can also be used to - * enroll member accounts within the organization.

    + *

    If the account is a management account of an organization, this action can also be used + * to enroll member accounts within the organization.

    */ export class UpdateEnrollmentStatusCommand extends $Command< UpdateEnrollmentStatusCommandInput, diff --git a/clients/client-compute-optimizer/index.ts b/clients/client-compute-optimizer/index.ts index ace66912d5e6e..3178318f078a6 100644 --- a/clients/client-compute-optimizer/index.ts +++ b/clients/client-compute-optimizer/index.ts @@ -4,6 +4,7 @@ export * from "./commands/DescribeRecommendationExportJobsCommand"; export * from "./commands/ExportAutoScalingGroupRecommendationsCommand"; export * from "./commands/ExportEC2InstanceRecommendationsCommand"; export * from "./commands/GetAutoScalingGroupRecommendationsCommand"; +export * from "./commands/GetEBSVolumeRecommendationsCommand"; export * from "./commands/GetEC2InstanceRecommendationsCommand"; export * from "./commands/GetEC2RecommendationProjectedMetricsCommand"; export * from "./commands/GetEnrollmentStatusCommand"; diff --git a/clients/client-compute-optimizer/models/models_0.ts b/clients/client-compute-optimizer/models/models_0.ts index 1970309b1cbfd..4c98879fcaedf 100644 --- a/clients/client-compute-optimizer/models/models_0.ts +++ b/clients/client-compute-optimizer/models/models_0.ts @@ -21,24 +21,24 @@ export namespace AccessDeniedException { */ export interface AutoScalingGroupConfiguration { /** - *

    The instance type for the Auto Scaling group.

    + *

    The desired capacity, or number of instances, for the Auto Scaling group.

    */ - instanceType?: string; + desiredCapacity?: number; /** - *

    The maximum size, or maximum number of instances, for the Auto Scaling group.

    + *

    The minimum size, or minimum number of instances, for the Auto Scaling group.

    */ - maxSize?: number; + minSize?: number; /** - *

    The desired capacity, or number of instances, for the Auto Scaling group.

    + *

    The maximum size, or maximum number of instances, for the Auto Scaling group.

    */ - desiredCapacity?: number; + maxSize?: number; /** - *

    The minimum size, or minimum number of instances, for the Auto Scaling group.

    + *

    The instance type for the Auto Scaling group.

    */ - minSize?: number; + instanceType?: string; } export namespace AutoScalingGroupConfiguration { @@ -70,26 +70,90 @@ export enum MetricStatistic { /** *

    Describes a utilization metric of a resource, such as an Amazon EC2 instance.

    + * + *

    Compare the utilization metric data of your resource against its projected utilization + * metric data to determine the performance difference between your current resource and + * the recommended option.

    */ export interface UtilizationMetric { /** *

    The name of the utilization metric.

    - * - *

    The Memory metric is returned only for resources that have the - * unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

    - *
    + *

    The following utilization metrics are available:

    + *
      + *
    • + *

      + * Cpu - The percentage of allocated EC2 compute units that are + * currently in use on the instance. This metric identifies the processing power + * required to run an application on the instance.

      + *

      Depending on the instance type, tools in your operating system can show a + * lower percentage than CloudWatch when the instance is not allocated a full + * processor core.

      + *

      Units: Percent

      + *
    • + *
    • + *

      + * Memory - The percentage of memory that is currently in use on the + * instance. This metric identifies the amount of memory required to run an + * application on the instance.

      + *

      Units: Percent

      + * + *

      The Memory metric is returned only for resources that have + * the unified CloudWatch agent installed on them. For more information, see Enabling Memory + * Utilization with the CloudWatch Agent.

      + *
      + *
    • + *
    • + *

      + * EBS_READ_OPS_PER_SECOND - The completed read operations from all + * EBS volumes attached to the instance in a specified period of time.

      + *

      Unit: Count

      + *
    • + *
    • + *

      + * EBS_WRITE_OPS_PER_SECOND - The completed write operations to all + * EBS volumes attached to the instance in a specified period of time.

      + *

      Unit: Count

      + *
    • + *
    • + *

      + * EBS_READ_BYTES_PER_SECOND - The bytes read from all EBS volumes + * attached to the instance in a specified period of time.

      + *

      Unit: Bytes

      + *
    • + *
    • + *

      + * EBS_WRITE_BYTES_PER_SECOND - The bytes written to all EBS volumes + * attached to the instance in a specified period of time.

      + *

      Unit: Bytes

      + *
    • + *
    */ name?: MetricName | string; /** - *

    The value of the utilization metric.

    + *

    The statistic of the utilization metric.

    + *

    The following statistics are available:

    + *
      + *
    • + *

      + * Average - This is the value of Sum / SampleCount during the + * specified period, or the average value observed during the specified + * period.

      + *
    • + *
    • + *

      + * Maximum - The highest value observed during the specified period. + * Use this value to determine high volumes of activity for your + * application.

      + *
    • + *
    */ - value?: number; + statistic?: MetricStatistic | string; /** - *

    The statistic of the utilization metric.

    + *

    The value of the utilization metric.

    */ - statistic?: MetricStatistic | string; + value?: number; } export namespace UtilizationMetric { @@ -102,6 +166,11 @@ export namespace UtilizationMetric { *

    Describes a recommendation option for an Auto Scaling group.

    */ export interface AutoScalingGroupRecommendationOption { + /** + *

    An array of objects that describe an Auto Scaling group configuration.

    + */ + configuration?: AutoScalingGroupConfiguration; + /** *

    An array of objects that describe the projected utilization metrics of the Auto Scaling group * recommendation option.

    @@ -116,11 +185,6 @@ export interface AutoScalingGroupRecommendationOption { */ projectedUtilizationMetrics?: UtilizationMetric[]; - /** - *

    An array of objects that describe an Auto Scaling group configuration.

    - */ - configuration?: AutoScalingGroupConfiguration; - /** *

    The performance risk of the Auto Scaling group configuration recommendation.

    *

    Performance risk is the likelihood of the recommended instance type not meeting the @@ -147,6 +211,21 @@ export namespace AutoScalingGroupRecommendationOption { *

    Describes an Auto Scaling group recommendation.

    */ export interface AutoScalingGroupRecommendation { + /** + *

    The AWS account ID of the Auto Scaling group.

    + */ + accountId?: string; + + /** + *

    The Amazon Resource Name (ARN) of the Auto Scaling group.

    + */ + autoScalingGroupArn?: string; + + /** + *

    The name of the Auto Scaling group.

    + */ + autoScalingGroupName?: string; + /** *

    The finding classification for the Auto Scaling group.

    *

    Findings for Auto Scaling groups include:

    @@ -169,23 +248,19 @@ export interface AutoScalingGroupRecommendation { * optimized resources, Compute Optimizer might recommend a new generation instance type.

    *
  • *
- * - *

The values that are returned might be NOT_OPTIMIZED or - * OPTIMIZED.

- *
*/ finding?: Finding | string; /** - *

The name of the Auto Scaling group.

+ *

An array of objects that describe the utilization metrics of the Auto Scaling group.

*/ - autoScalingGroupName?: string; + utilizationMetrics?: UtilizationMetric[]; /** - *

An array of objects that describe the recommendation options for the Auto Scaling + *

The number of days for which utilization metrics were analyzed for the Auto Scaling * group.

*/ - recommendationOptions?: AutoScalingGroupRecommendationOption[]; + lookBackPeriodInDays?: number; /** *

An array of objects that describe the current configuration of the Auto Scaling group.

@@ -193,25 +268,10 @@ export interface AutoScalingGroupRecommendation { currentConfiguration?: AutoScalingGroupConfiguration; /** - *

The AWS account ID of the Auto Scaling group.

- */ - accountId?: string; - - /** - *

The Amazon Resource Name (ARN) of the Auto Scaling group.

- */ - autoScalingGroupArn?: string; - - /** - *

The number of days for which utilization metrics were analyzed for the Auto Scaling + *

An array of objects that describe the recommendation options for the Auto Scaling * group.

*/ - lookBackPeriodInDays?: number; - - /** - *

An array of objects that describe the utilization metrics of the Auto Scaling group.

- */ - utilizationMetrics?: UtilizationMetric[]; + recommendationOptions?: AutoScalingGroupRecommendationOption[]; /** *

The time stamp of when the Auto Scaling group recommendation was last refreshed.

@@ -233,14 +293,17 @@ export enum JobFilterName { /** *

Describes a filter that returns a more specific list of recommendation export * jobs.

+ * *

This filter is used with the DescribeRecommendationExportJobs * action.

*/ export interface JobFilter { /** *

The name of the filter.

+ * *

Specify ResourceType to return export jobs of a specific resource type * (e.g., Ec2Instance).

+ * *

Specify JobStatus to return export jobs with a specific status (e.g, * Complete).

*/ @@ -248,11 +311,23 @@ export interface JobFilter { /** *

The value of the filter.

- *

If you specify the name parameter as ResourceType, the valid - * values are Ec2Instance or AutoScalingGroup.

- *

If you specify the name parameter as JobStatus, the valid - * values are Queued, InProgress, Complete, or - * Failed.

+ * + *

The valid values for this parameter are as follows, depending on what you specify for + * the name parameter:

+ * + *
    + *
  • + *

    Specify Ec2Instance or AutoScalingGroup if you + * specified the name parameter as ResourceType. There is + * no filter for EBS volumes because volume recommendations cannot be exported at + * this time.

    + *
  • + *
  • + *

    Specify Queued, InProgress, Complete, + * or Failed if you specified the name parameter as + * JobStatus.

    + *
  • + *
*/ values?: string[]; } @@ -264,19 +339,6 @@ export namespace JobFilter { } export interface DescribeRecommendationExportJobsRequest { - /** - *

An array of objects that describe a filter to return a more specific list of export - * jobs.

- */ - filters?: JobFilter[]; - - /** - *

The maximum number of export jobs to return with a single request.

- *

To retrieve the remaining results, make another request with the returned - * NextToken value.

- */ - maxResults?: number; - /** *

The identification numbers of the export jobs to return.

* @@ -289,10 +351,23 @@ export interface DescribeRecommendationExportJobsRequest { */ jobIds?: string[]; + /** + *

An array of objects that describe a filter to return a more specific list of export + * jobs.

+ */ + filters?: JobFilter[]; + /** *

The token to advance to the next page of export jobs.

*/ nextToken?: string; + + /** + *

The maximum number of export jobs to return with a single request.

+ *

To retrieve the remaining results, make another request with the returned + * NextToken value.

+ */ + maxResults?: number; } export namespace DescribeRecommendationExportJobsRequest { @@ -307,10 +382,9 @@ export namespace DescribeRecommendationExportJobsRequest { */ export interface S3Destination { /** - *

The Amazon S3 bucket key of a metadata file.

- *

The key uniquely identifies the object, or metadata file, in the S3 bucket.

+ *

The name of the Amazon S3 bucket used as the destination of an export file.

*/ - metadataKey?: string; + bucket?: string; /** *

The Amazon S3 bucket key of an export file.

@@ -319,9 +393,10 @@ export interface S3Destination { key?: string; /** - *

The name of the Amazon S3 bucket used as the destination of an export file.

+ *

The Amazon S3 bucket key of a metadata file.

+ *

The key uniquely identifies the object, or metadata file, in the S3 bucket.

*/ - bucket?: string; + metadataKey?: string; } export namespace S3Destination { @@ -372,15 +447,20 @@ export enum JobStatus { * recommendations.

*/ export interface RecommendationExportJob { + /** + *

The identification number of the export job.

+ */ + jobId?: string; + /** *

An object that describes the destination of the export file.

*/ destination?: ExportDestination; /** - *

The timestamp of when the export job was created.

+ *

The resource type of the exported recommendations.

*/ - creationTimestamp?: Date; + resourceType?: ResourceType | string; /** *

The status of the export job.

@@ -388,20 +468,15 @@ export interface RecommendationExportJob { status?: JobStatus | string; /** - *

The resource type of the exported recommendations.

+ *

The timestamp of when the export job was created.

*/ - resourceType?: ResourceType | string; + creationTimestamp?: Date; /** *

The timestamp of when the export job was last updated.

*/ lastUpdatedTimestamp?: Date; - /** - *

The identification number of the export job.

- */ - jobId?: string; - /** *

The reason for an export job failure.

*/ @@ -416,15 +491,15 @@ export namespace RecommendationExportJob { export interface DescribeRecommendationExportJobsResponse { /** - *

The token to use to advance to the next page of export jobs.

- *

This value is null when there are no more pages of export jobs to return.

+ *

An array of objects that describe recommendation export jobs.

*/ - nextToken?: string; + recommendationExportJobs?: RecommendationExportJob[]; /** - *

An array of objects that describe recommendation export jobs.

+ *

The token to use to advance to the next page of export jobs.

+ *

This value is null when there are no more pages of export jobs to return.

*/ - recommendationExportJobs?: RecommendationExportJob[]; + nextToken?: string; } export namespace DescribeRecommendationExportJobsResponse { @@ -590,31 +665,49 @@ export enum FilterName { /** *

Describes a filter that returns a more specific list of recommendations.

+ * + *

This filter is used with the GetAutoScalingGroupRecommendations and + * GetEC2InstanceRecommendations actions.

*/ export interface Filter { - /** - *

The value of the filter.

- *

If you specify the name parameter as Finding, and you - * request recommendations for an instance, then the valid values are - * Underprovisioned, Overprovisioned, - * NotOptimized, or Optimized.

- *

If you specify the name parameter as Finding, and you - * request recommendations for an Auto Scaling group, then the valid values - * are Optimized, or NotOptimized.

- *

If you specify the name parameter as - * RecommendationSourceType, then the valid values are - * Ec2Instance, or AutoScalingGroup.

- */ - values?: string[]; - /** *

The name of the filter.

- *

Specify Finding to return recommendations with a specific findings + * + *

Specify Finding to return recommendations with a specific finding * classification (e.g., Overprovisioned).

+ * *

Specify RecommendationSourceType to return recommendations of a specific * resource type (e.g., AutoScalingGroup).

*/ name?: FilterName | string; + + /** + *

The value of the filter.

+ * + *

The valid values for this parameter are as follows, depending on what you specify for + * the name parameter and the resource type that you wish to filter results + * for:

+ * + *
    + *
  • + *

    Specify Optimized or NotOptimized if you specified + * the name parameter as Finding and you want to filter + * results for Auto Scaling groups.

    + *
  • + *
  • + *

    Specify Underprovisioned, Overprovisioned, or + * Optimized if you specified the name parameter as + * Finding and you want to filter results for EC2 + * instances.

    + *
  • + *
  • + *

    Specify Ec2Instance or AutoScalingGroup if you + * specified the name parameter as + * RecommendationSourceType.

    + *
  • + *
+ */ + values?: string[]; } export namespace Filter { @@ -636,14 +729,14 @@ export namespace Filter { */ export interface S3DestinationConfig { /** - *

The Amazon S3 bucket prefix for an export job.

+ *

The name of the Amazon S3 bucket to use as the destination for an export job.

*/ - keyPrefix?: string; + bucket?: string; /** - *

The name of the Amazon S3 bucket to use as the destination for an export job.

+ *

The Amazon S3 bucket prefix for an export job.

*/ - bucket?: string; + keyPrefix?: string; } export namespace S3DestinationConfig { @@ -653,6 +746,30 @@ export namespace S3DestinationConfig { } export interface ExportAutoScalingGroupRecommendationsRequest { + /** + *

The IDs of the AWS accounts for which to export Auto Scaling group recommendations.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to export recommendations.

+ *

This parameter cannot be specified together with the include member accounts + * parameter. The parameters are mutually exclusive.

+ *

Recommendations for member accounts are not included in the export if this parameter, + * or the include member accounts parameter, is omitted.

+ *

You can specify multiple account IDs per request.

+ */ + accountIds?: string[]; + + /** + *

An array of objects that describe a filter to export a more specific set of Auto Scaling group + * recommendations.

+ */ + filters?: Filter[]; + + /** + *

The recommendations data to include in the export file. For more information about the + * fields that can be exported, see Exported files in the Compute Optimizer User Guide.

+ */ + fieldsToExport?: (ExportableAutoScalingGroupField | string)[]; + /** *

An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for * the export job.

@@ -666,9 +783,15 @@ export interface ExportAutoScalingGroupRecommendationsRequest { */ s3DestinationConfig: S3DestinationConfig | undefined; + /** + *

The format of the export file.

+ *

The only export file format currently supported is Csv.

+ */ + fileFormat?: FileFormat | string; + /** *

Indicates whether to include recommendations for resources in all member accounts of - * the organization if your account is the master account of an organization.

+ * the organization if your account is the management account of an organization.

*

The member accounts must also be opted in to Compute Optimizer.

*

Recommendations for member accounts of the organization are not included in the export * file if this parameter is omitted.

@@ -678,57 +801,27 @@ export interface ExportAutoScalingGroupRecommendationsRequest { * or the account IDs parameter, is omitted.

*/ includeMemberAccounts?: boolean; +} - /** - *

The format of the export file.

- *

The only export file format currently supported is Csv.

- */ - fileFormat?: FileFormat | string; +export namespace ExportAutoScalingGroupRecommendationsRequest { + export const filterSensitiveLog = (obj: ExportAutoScalingGroupRecommendationsRequest): any => ({ + ...obj, + }); +} +export interface ExportAutoScalingGroupRecommendationsResponse { /** - *

An array of objects that describe a filter to export a more specific set of Auto Scaling group - * recommendations.

- */ - filters?: Filter[]; - - /** - *

The recommendations data to include in the export file. For more information about the - * fields that can be exported, see Exported files in the Compute Optimizer User Guide.

- */ - fieldsToExport?: (ExportableAutoScalingGroupField | string)[]; - - /** - *

The IDs of the AWS accounts for which to export Auto Scaling group recommendations.

- *

If your account is the master account of an organization, use this parameter to - * specify the member accounts for which you want to export recommendations.

- *

This parameter cannot be specified together with the include member accounts - * parameter. The parameters are mutually exclusive.

- *

Recommendations for member accounts are not included in the export if this parameter, - * or the include member accounts parameter, is omitted.

- *

You can specify multiple account IDs per request.

+ *

The identification number of the export job.

+ *

Use the DescribeRecommendationExportJobs action, and specify the job ID + * to view the status of an export job.

*/ - accountIds?: string[]; -} - -export namespace ExportAutoScalingGroupRecommendationsRequest { - export const filterSensitiveLog = (obj: ExportAutoScalingGroupRecommendationsRequest): any => ({ - ...obj, - }); -} + jobId?: string; -export interface ExportAutoScalingGroupRecommendationsResponse { /** *

An object that describes the destination Amazon S3 bucket of a recommendations export * file.

*/ s3Destination?: S3Destination; - - /** - *

The identification number of the export job.

- *

Use the DescribeRecommendationExportJobs action, and specify the job ID - * to view the status of an export job.

- */ - jobId?: string; } export namespace ExportAutoScalingGroupRecommendationsResponse { @@ -789,6 +882,30 @@ export enum ExportableInstanceField { } export interface ExportEC2InstanceRecommendationsRequest { + /** + *

The IDs of the AWS accounts for which to export instance recommendations.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to export recommendations.

+ *

This parameter cannot be specified together with the include member accounts + * parameter. The parameters are mutually exclusive.

+ *

Recommendations for member accounts are not included in the export if this parameter, + * or the include member accounts parameter, is omitted.

+ *

You can specify multiple account IDs per request.

+ */ + accountIds?: string[]; + + /** + *

An array of objects that describe a filter to export a more specific set of instance + * recommendations.

+ */ + filters?: Filter[]; + + /** + *

The recommendations data to include in the export file. For more information about the + * fields that can be exported, see Exported files in the Compute Optimizer User Guide.

+ */ + fieldsToExport?: (ExportableInstanceField | string)[]; + /** *

An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for * the export job.

@@ -802,9 +919,15 @@ export interface ExportEC2InstanceRecommendationsRequest { */ s3DestinationConfig: S3DestinationConfig | undefined; + /** + *

The format of the export file.

+ *

The only export file format currently supported is Csv.

+ */ + fileFormat?: FileFormat | string; + /** *

Indicates whether to include recommendations for resources in all member accounts of - * the organization if your account is the master account of an organization.

+ * the organization if your account is the management account of an organization.

*

The member accounts must also be opted in to Compute Optimizer.

*

Recommendations for member accounts of the organization are not included in the export * file if this parameter is omitted.

@@ -812,177 +935,477 @@ export interface ExportEC2InstanceRecommendationsRequest { * or the account IDs parameter, is omitted.

*/ includeMemberAccounts?: boolean; +} +export namespace ExportEC2InstanceRecommendationsRequest { + export const filterSensitiveLog = (obj: ExportEC2InstanceRecommendationsRequest): any => ({ + ...obj, + }); +} + +export interface ExportEC2InstanceRecommendationsResponse { /** - *

The format of the export file.

- *

The only export file format currently supported is Csv.

+ *

The identification number of the export job.

+ *

Use the DescribeRecommendationExportJobs action, and specify the job ID + * to view the status of an export job.

*/ - fileFormat?: FileFormat | string; + jobId?: string; /** - *

The recommendations data to include in the export file. For more information about the - * fields that can be exported, see Exported files in the Compute Optimizer User Guide.

+ *

An object that describes the destination Amazon S3 bucket of a recommendations export + * file.

*/ - fieldsToExport?: (ExportableInstanceField | string)[]; + s3Destination?: S3Destination; +} +export namespace ExportEC2InstanceRecommendationsResponse { + export const filterSensitiveLog = (obj: ExportEC2InstanceRecommendationsResponse): any => ({ + ...obj, + }); +} + +export interface GetAutoScalingGroupRecommendationsRequest { /** - *

The IDs of the AWS accounts for which to export instance recommendations.

- *

If your account is the master account of an organization, use this parameter to - * specify the member accounts for which you want to export recommendations.

- *

This parameter cannot be specified together with the include member accounts - * parameter. The parameters are mutually exclusive.

- *

Recommendations for member accounts are not included in the export if this parameter, - * or the include member accounts parameter, is omitted.

- *

You can specify multiple account IDs per request.

+ *

The IDs of the AWS accounts for which to return Auto Scaling group recommendations.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to return Auto Scaling group + * recommendations.

+ *

Only one account ID can be specified per request.

*/ accountIds?: string[]; /** - *

An array of objects that describe a filter to export a more specific set of instance + *

The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return * recommendations.

*/ + autoScalingGroupArns?: string[]; + + /** + *

The token to advance to the next page of Auto Scaling group recommendations.

+ */ + nextToken?: string; + + /** + *

The maximum number of Auto Scaling group recommendations to return with a single + * request.

+ *

To retrieve the remaining results, make another request with the returned + * NextToken value.

+ */ + maxResults?: number; + + /** + *

An array of objects that describe a filter that returns a more specific list of Auto Scaling + * group recommendations.

+ */ filters?: Filter[]; } -export namespace ExportEC2InstanceRecommendationsRequest { - export const filterSensitiveLog = (obj: ExportEC2InstanceRecommendationsRequest): any => ({ +export namespace GetAutoScalingGroupRecommendationsRequest { + export const filterSensitiveLog = (obj: GetAutoScalingGroupRecommendationsRequest): any => ({ ...obj, }); } -export interface ExportEC2InstanceRecommendationsResponse { +/** + *

Describes an error experienced when getting recommendations.

+ *

For example, an error is returned if you request recommendations for an unsupported + * Auto Scaling group, or if you request recommendations for an instance of an unsupported instance + * family.

+ */ +export interface GetRecommendationError { /** - *

An object that describes the destination Amazon S3 bucket of a recommendations export - * file.

+ *

The ID of the error.

*/ - s3Destination?: S3Destination; + identifier?: string; /** - *

The identification number of the export job.

- *

Use the DescribeRecommendationExportJobs action, and specify the job ID - * to view the status of an export job.

+ *

The error code.

*/ - jobId?: string; + code?: string; + + /** + *

The message, or reason, for the error.

+ */ + message?: string; } -export namespace ExportEC2InstanceRecommendationsResponse { - export const filterSensitiveLog = (obj: ExportEC2InstanceRecommendationsResponse): any => ({ +export namespace GetRecommendationError { + export const filterSensitiveLog = (obj: GetRecommendationError): any => ({ ...obj, }); } -export interface GetAutoScalingGroupRecommendationsRequest { +export interface GetAutoScalingGroupRecommendationsResponse { /** - *

The IDs of the AWS accounts for which to return Auto Scaling group recommendations.

- *

If your account is the master account of an organization, use this parameter to - * specify the member accounts for which you want to return Auto Scaling group + *

The token to use to advance to the next page of Auto Scaling group recommendations.

+ *

This value is null when there are no more pages of Auto Scaling group recommendations to + * return.

+ */ + nextToken?: string; + + /** + *

An array of objects that describe Auto Scaling group recommendations.

+ */ + autoScalingGroupRecommendations?: AutoScalingGroupRecommendation[]; + + /** + *

An array of objects that describe errors of the request.

+ *

For example, an error is returned if you request recommendations for an unsupported + * Auto Scaling group.

+ */ + errors?: GetRecommendationError[]; +} + +export namespace GetAutoScalingGroupRecommendationsResponse { + export const filterSensitiveLog = (obj: GetAutoScalingGroupRecommendationsResponse): any => ({ + ...obj, + }); +} + +export enum EBSFilterName { + FINDING = "Finding", +} + +/** + *

Describes a filter that returns a more specific list of Amazon Elastic Block Store (Amazon EBS) volume + * recommendations.

+ * + *

This filter is used with the GetEBSVolumeRecommendations action.

+ */ +export interface EBSFilter { + /** + *

The name of the filter.

+ * + *

Specify Finding to return recommendations with a specific finding + * classification (e.g., Optimized).

+ */ + name?: EBSFilterName | string; + + /** + *

The value of the filter.

+ * + *

The valid values are Optimized, or NotOptimized.

+ */ + values?: string[]; +} + +export namespace EBSFilter { + export const filterSensitiveLog = (obj: EBSFilter): any => ({ + ...obj, + }); +} + +export interface GetEBSVolumeRecommendationsRequest { + /** + *

The Amazon Resource Name (ARN) of the volumes for which to return * recommendations.

+ */ + volumeArns?: string[]; + + /** + *

The token to advance to the next page of volume recommendations.

+ */ + nextToken?: string; + + /** + *

The maximum number of volume recommendations to return with a single request.

+ *

To retrieve the remaining results, make another request with the returned + * NextToken value.

+ */ + maxResults?: number; + + /** + *

An array of objects that describe a filter that returns a more specific list of volume + * recommendations.

+ */ + filters?: EBSFilter[]; + + /** + *

The IDs of the AWS accounts for which to return volume recommendations.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to return volume recommendations.

*

Only one account ID can be specified per request.

*/ accountIds?: string[]; +} + +export namespace GetEBSVolumeRecommendationsRequest { + export const filterSensitiveLog = (obj: GetEBSVolumeRecommendationsRequest): any => ({ + ...obj, + }); +} + +/** + *

Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) volume.

+ */ +export interface VolumeConfiguration { + /** + *

The volume type.

+ *

This can be gp2 for General Purpose SSD, io1 or + * io2 for Provisioned IOPS SSD, st1 for Throughput Optimized + * HDD, sc1 for Cold HDD, or standard for Magnetic + * volumes.

+ */ + volumeType?: string; + + /** + *

The size of the volume, in GiB.

+ */ + volumeSize?: number; + + /** + *

The baseline IOPS of the volume.

+ */ + volumeBaselineIOPS?: number; + + /** + *

The burst IOPS of the volume.

+ */ + volumeBurstIOPS?: number; + + /** + *

The baseline throughput of the volume.

+ */ + volumeBaselineThroughput?: number; + + /** + *

The burst throughput of the volume.

+ */ + volumeBurstThroughput?: number; +} + +export namespace VolumeConfiguration { + export const filterSensitiveLog = (obj: VolumeConfiguration): any => ({ + ...obj, + }); +} + +export enum EBSFinding { + NOT_OPTIMIZED = "NotOptimized", + OPTIMIZED = "Optimized", +} + +export enum EBSMetricName { + VOLUME_READ_BYTES_PER_SECOND = "VolumeReadBytesPerSecond", + VOLUME_READ_OPS_PER_SECOND = "VolumeReadOpsPerSecond", + VOLUME_WRITE_BYTES_PER_SECOND = "VolumeWriteBytesPerSecond", + VOLUME_WRITE_OPS_PER_SECOND = "VolumeWriteOpsPerSecond", +} + +/** + *

Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS) volume.

+ * + *

Compare the utilization metric data of your resource against its projected utilization + * metric data to determine the performance difference between your current resource and + * the recommended option.

+ */ +export interface EBSUtilizationMetric { + /** + *

The name of the utilization metric.

+ *

The following utilization metrics are available:

+ *
    + *
  • + *

    + * VolumeReadOpsPerSecond - The completed read operations per second + * from the volume in a specified period of time.

    + *

    Unit: Count

    + *
  • + *
  • + *

    + * VolumeWriteOpsPerSecond - The completed write operations per + * second to the volume in a specified period of time.

    + *

    Unit: Count

    + *
  • + *
  • + *

    + * VolumeReadBytesPerSecond - The bytes read per second from the + * volume in a specified period of time.

    + *

    Unit: Bytes

    + *
  • + *
  • + *

    + * VolumeWriteBytesPerSecond - The bytes written to the volume in a + * specified period of time.

    + *

    Unit: Bytes

    + *
  • + *
+ */ + name?: EBSMetricName | string; + + /** + *

The statistic of the utilization metric.

+ *

The following statistics are available:

+ *
    + *
  • + *

    + * Average - This is the value of Sum / SampleCount during the + * specified period, or the average value observed during the specified + * period.

    + *
  • + *
  • + *

    + * Maximum - The highest value observed during the specified period. + * Use this value to determine high volumes of activity for your + * application.

    + *
  • + *
+ */ + statistic?: MetricStatistic | string; + + /** + *

The value of the utilization metric.

+ */ + value?: number; +} + +export namespace EBSUtilizationMetric { + export const filterSensitiveLog = (obj: EBSUtilizationMetric): any => ({ + ...obj, + }); +} + +/** + *

Describes a recommendation option for an Amazon Elastic Block Store (Amazon EBS) instance.

+ */ +export interface VolumeRecommendationOption { + /** + *

An array of objects that describe a volume configuration.

+ */ + configuration?: VolumeConfiguration; + + /** + *

The performance risk of the volume recommendation option.

+ *

Performance risk is the likelihood of the recommended volume type not meeting the + * performance requirement of your workload.

+ *

The lowest performance risk is categorized as 0, and the highest as + * 5.

+ */ + performanceRisk?: number; + + /** + *

The rank of the volume recommendation option.

+ *

The top recommendation option is ranked as 1.

+ */ + rank?: number; +} + +export namespace VolumeRecommendationOption { + export const filterSensitiveLog = (obj: VolumeRecommendationOption): any => ({ + ...obj, + }); +} +/** + *

Describes an Amazon Elastic Block Store (Amazon EBS) volume recommendation.

+ */ +export interface VolumeRecommendation { /** - *

An array of objects that describe a filter that returns a more specific list of Auto Scaling - * group recommendations.

+ *

The Amazon Resource Name (ARN) of the current volume.

*/ - filters?: Filter[]; + volumeArn?: string; /** - *

The maximum number of Auto Scaling group recommendations to return with a single - * request.

- *

To retrieve the remaining results, make another request with the returned - * NextToken value.

+ *

The AWS account ID of the volume.

*/ - maxResults?: number; + accountId?: string; /** - *

The token to advance to the next page of Auto Scaling group recommendations.

+ *

An array of objects that describe the current configuration of the volume.

*/ - nextToken?: string; + currentConfiguration?: VolumeConfiguration; /** - *

The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return - * recommendations.

+ *

The finding classification for the volume.

+ *

Findings for volumes include:

+ *
    + *
  • + *

    + * + * NotOptimized + * —A volume is + * considered not optimized when AWS Compute Optimizer identifies a recommendation that can + * provide better performance for your workload.

    + * + *
  • + *
  • + *

    + * + * Optimized + * —An volume is + * considered optimized when Compute Optimizer determines that the volume is correctly + * provisioned to run your workload based on the chosen volume type. For optimized + * resources, Compute Optimizer might recommend a new generation volume type.

    + * + *
  • + *
*/ - autoScalingGroupArns?: string[]; -} + finding?: EBSFinding | string; -export namespace GetAutoScalingGroupRecommendationsRequest { - export const filterSensitiveLog = (obj: GetAutoScalingGroupRecommendationsRequest): any => ({ - ...obj, - }); -} + /** + *

An array of objects that describe the utilization metrics of the volume.

+ */ + utilizationMetrics?: EBSUtilizationMetric[]; -/** - *

Describes an error experienced when getting recommendations.

- *

For example, an error is returned if you request recommendations for an unsupported - * Auto Scaling group, or if you request recommendations for an instance of an unsupported instance - * family.

- */ -export interface GetRecommendationError { /** - *

The error code.

+ *

The number of days for which utilization metrics were analyzed for the volume.

*/ - code?: string; + lookBackPeriodInDays?: number; /** - *

The message, or reason, for the error.

+ *

An array of objects that describe the recommendation options for the volume.

*/ - message?: string; + volumeRecommendationOptions?: VolumeRecommendationOption[]; /** - *

The ID of the error.

+ *

The time stamp of when the volume recommendation was last refreshed.

*/ - identifier?: string; + lastRefreshTimestamp?: Date; } -export namespace GetRecommendationError { - export const filterSensitiveLog = (obj: GetRecommendationError): any => ({ +export namespace VolumeRecommendation { + export const filterSensitiveLog = (obj: VolumeRecommendation): any => ({ ...obj, }); } -export interface GetAutoScalingGroupRecommendationsResponse { +export interface GetEBSVolumeRecommendationsResponse { /** - *

An array of objects that describe errors of the request.

- *

For example, an error is returned if you request recommendations for an unsupported - * Auto Scaling group.

+ *

The token to use to advance to the next page of volume recommendations.

+ *

This value is null when there are no more pages of volume recommendations to + * return.

*/ - errors?: GetRecommendationError[]; + nextToken?: string; /** - *

The token to use to advance to the next page of Auto Scaling group recommendations.

- *

This value is null when there are no more pages of Auto Scaling group recommendations to - * return.

+ *

An array of objects that describe volume recommendations.

*/ - nextToken?: string; + volumeRecommendations?: VolumeRecommendation[]; /** - *

An array of objects that describe Auto Scaling group recommendations.

+ *

An array of objects that describe errors of the request.

+ *

For example, an error is returned if you request recommendations for an unsupported + * volume.

*/ - autoScalingGroupRecommendations?: AutoScalingGroupRecommendation[]; + errors?: GetRecommendationError[]; } -export namespace GetAutoScalingGroupRecommendationsResponse { - export const filterSensitiveLog = (obj: GetAutoScalingGroupRecommendationsResponse): any => ({ +export namespace GetEBSVolumeRecommendationsResponse { + export const filterSensitiveLog = (obj: GetEBSVolumeRecommendationsResponse): any => ({ ...obj, }); } export interface GetEC2InstanceRecommendationsRequest { /** - *

The token to advance to the next page of instance recommendations.

+ *

The Amazon Resource Name (ARN) of the instances for which to return + * recommendations.

*/ - nextToken?: string; + instanceArns?: string[]; /** - *

The IDs of the AWS accounts for which to return instance recommendations.

- *

If your account is the master account of an organization, use this parameter to - * specify the member accounts for which you want to return instance - * recommendations.

- *

Only one account ID can be specified per request.

+ *

The token to advance to the next page of instance recommendations.

*/ - accountIds?: string[]; + nextToken?: string; /** *

The maximum number of instance recommendations to return with a single request.

@@ -998,10 +1421,13 @@ export interface GetEC2InstanceRecommendationsRequest { filters?: Filter[]; /** - *

The Amazon Resource Name (ARN) of the instances for which to return + *

The IDs of the AWS accounts for which to return instance recommendations.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to return instance * recommendations.

+ *

Only one account ID can be specified per request.

*/ - instanceArns?: string[]; + accountIds?: string[]; } export namespace GetEC2InstanceRecommendationsRequest { @@ -1014,6 +1440,11 @@ export namespace GetEC2InstanceRecommendationsRequest { *

Describes a recommendation option for an Amazon EC2 instance.

*/ export interface InstanceRecommendationOption { + /** + *

The instance type of the instance recommendation.

+ */ + instanceType?: string; + /** *

An array of objects that describe the projected utilization metrics of the instance * recommendation option.

@@ -1028,17 +1459,6 @@ export interface InstanceRecommendationOption { */ projectedUtilizationMetrics?: UtilizationMetric[]; - /** - *

The instance type of the instance recommendation.

- */ - instanceType?: string; - - /** - *

The rank of the instance recommendation option.

- *

The top recommendation option is ranked as 1.

- */ - rank?: number; - /** *

The performance risk of the instance recommendation option.

*

Performance risk is the likelihood of the recommended instance type not meeting the @@ -1047,6 +1467,12 @@ export interface InstanceRecommendationOption { * 5.

*/ performanceRisk?: number; + + /** + *

The rank of the instance recommendation option.

+ *

The top recommendation option is ranked as 1.

+ */ + rank?: number; } export namespace InstanceRecommendationOption { @@ -1057,6 +1483,7 @@ export namespace InstanceRecommendationOption { export enum RecommendationSourceType { AUTO_SCALING_GROUP = "AutoScalingGroup", + EBS_VOLUME = "EbsVolume", EC2_INSTANCE = "Ec2Instance", } @@ -1066,14 +1493,14 @@ export enum RecommendationSourceType { */ export interface RecommendationSource { /** - *

The resource type of the recommendation source.

+ *

The Amazon Resource Name (ARN) of the recommendation source.

*/ - recommendationSourceType?: RecommendationSourceType | string; + recommendationSourceArn?: string; /** - *

The Amazon Resource Name (ARN) of the recommendation source.

+ *

The resource type of the recommendation source.

*/ - recommendationSourceArn?: string; + recommendationSourceType?: RecommendationSourceType | string; } export namespace RecommendationSource { @@ -1087,29 +1514,24 @@ export namespace RecommendationSource { */ export interface InstanceRecommendation { /** - *

The name of the current instance.

- */ - instanceName?: string; - - /** - *

The instance type of the current instance.

+ *

The Amazon Resource Name (ARN) of the current instance.

*/ - currentInstanceType?: string; + instanceArn?: string; /** - *

An array of objects that describe the utilization metrics of the instance.

+ *

The AWS account ID of the instance.

*/ - utilizationMetrics?: UtilizationMetric[]; + accountId?: string; /** - *

The AWS account ID of the instance.

+ *

The name of the current instance.

*/ - accountId?: string; + instanceName?: string; /** - *

An array of objects that describe the recommendation options for the instance.

+ *

The instance type of the current instance.

*/ - recommendationOptions?: InstanceRecommendationOption[]; + currentInstanceType?: string; /** *

The finding classification for the instance.

@@ -1148,22 +1570,13 @@ export interface InstanceRecommendation { * recommend a new generation instance type.

* * - * - *

The values that are returned might be UNDER_PROVISIONED, - * OVER_PROVISIONED, or OPTIMIZED.

- *
*/ finding?: Finding | string; /** - *

The Amazon Resource Name (ARN) of the current instance.

- */ - instanceArn?: string; - - /** - *

The time stamp of when the instance recommendation was last refreshed.

+ *

An array of objects that describe the utilization metrics of the instance.

*/ - lastRefreshTimestamp?: Date; + utilizationMetrics?: UtilizationMetric[]; /** *

The number of days for which utilization metrics were analyzed for the @@ -1171,10 +1584,20 @@ export interface InstanceRecommendation { */ lookBackPeriodInDays?: number; + /** + *

An array of objects that describe the recommendation options for the instance.

+ */ + recommendationOptions?: InstanceRecommendationOption[]; + /** *

An array of objects that describe the source resource of the recommendation.

*/ recommendationSources?: RecommendationSource[]; + + /** + *

The time stamp of when the instance recommendation was last refreshed.

+ */ + lastRefreshTimestamp?: Date; } export namespace InstanceRecommendation { @@ -1184,11 +1607,6 @@ export namespace InstanceRecommendation { } export interface GetEC2InstanceRecommendationsResponse { - /** - *

An array of objects that describe instance recommendations.

- */ - instanceRecommendations?: InstanceRecommendation[]; - /** *

The token to use to advance to the next page of instance recommendations.

*

This value is null when there are no more pages of instance recommendations to @@ -1196,6 +1614,11 @@ export interface GetEC2InstanceRecommendationsResponse { */ nextToken?: string; + /** + *

An array of objects that describe instance recommendations.

+ */ + instanceRecommendations?: InstanceRecommendation[]; + /** *

An array of objects that describe errors of the request.

*

For example, an error is returned if you request recommendations for an instance of an @@ -1212,30 +1635,30 @@ export namespace GetEC2InstanceRecommendationsResponse { export interface GetEC2RecommendationProjectedMetricsRequest { /** - *

The granularity, in seconds, of the projected metrics data points.

+ *

The Amazon Resource Name (ARN) of the instances for which to return recommendation + * projected metrics.

*/ - period: number | undefined; + instanceArn: string | undefined; /** - *

The time stamp of the first projected metrics data point to return.

+ *

The statistic of the projected metrics.

*/ - startTime: Date | undefined; + stat: MetricStatistic | string | undefined; /** - *

The statistic of the projected metrics.

+ *

The granularity, in seconds, of the projected metrics data points.

*/ - stat: MetricStatistic | string | undefined; + period: number | undefined; /** - *

The time stamp of the last projected metrics data point to return.

+ *

The time stamp of the first projected metrics data point to return.

*/ - endTime: Date | undefined; + startTime: Date | undefined; /** - *

The Amazon Resource Name (ARN) of the instances for which to return recommendation - * projected metrics.

+ *

The time stamp of the last projected metrics data point to return.

*/ - instanceArn: string | undefined; + endTime: Date | undefined; } export namespace GetEC2RecommendationProjectedMetricsRequest { @@ -1246,7 +1669,12 @@ export namespace GetEC2RecommendationProjectedMetricsRequest { /** *

Describes a projected utilization metric of a recommendation option, such as an Amazon EC2 - * instance.

+ * instance. This represents the projected utilization of a recommendation option had you + * used that resource during the analyzed period.

+ * + *

Compare the utilization metric data of your resource against its projected utilization + * metric data to determine the performance difference between your current resource and + * the recommended option.

* * *

The Cpu and Memory metrics are the only projected @@ -1260,18 +1688,45 @@ export namespace GetEC2RecommendationProjectedMetricsRequest { export interface ProjectedMetric { /** *

The name of the projected utilization metric.

+ *

The following projected utilization metrics are returned:

+ *
    + *
  • + *

    + * Cpu - The projected percentage of allocated EC2 compute units + * that would be in use on the recommendation option had you used that resource + * during the analyzed period. This metric identifies the processing power required + * to run an application on the recommendation option.

    + *

    Depending on the instance type, tools in your operating system can show a + * lower percentage than CloudWatch when the instance is not allocated a full + * processor core.

    + *

    Units: Percent

    + *
  • + *
  • + *

    + * Memory - The percentage of memory that would be in use on the + * recommendation option had you used that resource during the analyzed period. + * This metric identifies the amount of memory required to run an application on + * the recommendation option.

    + *

    Units: Percent

    + * + *

    The Memory metric is returned only for resources that have + * the unified CloudWatch agent installed on them. For more information, see Enabling Memory + * Utilization with the CloudWatch Agent.

    + *
    + *
  • + *
*/ name?: MetricName | string; /** - *

The values of the projected utilization metrics.

+ *

The time stamps of the projected utilization metric.

*/ - values?: number[]; + timestamps?: Date[]; /** - *

The time stamps of the projected utilization metric.

+ *

The values of the projected utilization metrics.

*/ - timestamps?: Date[]; + values?: number[]; } export namespace ProjectedMetric { @@ -1349,10 +1804,9 @@ export enum Status { export interface GetEnrollmentStatusResponse { /** - *

Confirms the enrollment status of member accounts within the organization, if the - * account is a master account of an organization.

+ *

The enrollment status of the account.

*/ - memberAccountsEnrolled?: boolean; + status?: Status | string; /** *

The reason for the enrollment status of the account.

@@ -1362,9 +1816,10 @@ export interface GetEnrollmentStatusResponse { statusReason?: string; /** - *

The enrollment status of the account.

+ *

Confirms the enrollment status of member accounts within the organization, if the + * account is a management account of an organization.

*/ - status?: Status | string; + memberAccountsEnrolled?: boolean; } export namespace GetEnrollmentStatusResponse { @@ -1374,6 +1829,15 @@ export namespace GetEnrollmentStatusResponse { } export interface GetRecommendationSummariesRequest { + /** + *

The IDs of the AWS accounts for which to return recommendation summaries.

+ *

If your account is the management account of an organization, use this parameter to + * specify the member accounts for which you want to return recommendation + * summaries.

+ *

Only one account ID can be specified per request.

+ */ + accountIds?: string[]; + /** *

The token to advance to the next page of recommendation summaries.

*/ @@ -1385,15 +1849,6 @@ export interface GetRecommendationSummariesRequest { * NextToken value.

*/ maxResults?: number; - - /** - *

The IDs of the AWS accounts for which to return recommendation summaries.

- *

If your account is the master account of an organization, use this parameter to - * specify the member accounts for which you want to return recommendation - * summaries.

- *

Only one account ID can be specified per request.

- */ - accountIds?: string[]; } export namespace GetRecommendationSummariesRequest { @@ -1428,14 +1883,14 @@ export namespace Summary { */ export interface RecommendationSummary { /** - *

The resource type of the recommendation.

+ *

An array of objects that describe a recommendation summary.

*/ - recommendationResourceType?: RecommendationSourceType | string; + summaries?: Summary[]; /** - *

An array of objects that describe a recommendation summary.

+ *

The resource type of the recommendation.

*/ - summaries?: Summary[]; + recommendationResourceType?: RecommendationSourceType | string; /** *

The AWS account ID of the recommendation summary.

@@ -1470,18 +1925,18 @@ export namespace GetRecommendationSummariesResponse { } export interface UpdateEnrollmentStatusRequest { - /** - *

Indicates whether to enroll member accounts of the organization if the your account is - * the master account of an organization.

- */ - includeMemberAccounts?: boolean; - /** *

The new enrollment status of the account.

*

Accepted options are Active or Inactive. You will get an * error if Pending or Failed are specified.

*/ status: Status | string | undefined; + + /** + *

Indicates whether to enroll member accounts of the organization if the your account is + * the management account of an organization.

+ */ + includeMemberAccounts?: boolean; } export namespace UpdateEnrollmentStatusRequest { diff --git a/clients/client-compute-optimizer/protocols/Aws_json1_0.ts b/clients/client-compute-optimizer/protocols/Aws_json1_0.ts index 6a8c8c29f3d6d..b2ebcb0211412 100644 --- a/clients/client-compute-optimizer/protocols/Aws_json1_0.ts +++ b/clients/client-compute-optimizer/protocols/Aws_json1_0.ts @@ -14,6 +14,10 @@ import { GetAutoScalingGroupRecommendationsCommandInput, GetAutoScalingGroupRecommendationsCommandOutput, } from "../commands/GetAutoScalingGroupRecommendationsCommand"; +import { + GetEBSVolumeRecommendationsCommandInput, + GetEBSVolumeRecommendationsCommandOutput, +} from "../commands/GetEBSVolumeRecommendationsCommand"; import { GetEC2InstanceRecommendationsCommandInput, GetEC2InstanceRecommendationsCommandOutput, @@ -41,6 +45,8 @@ import { AutoScalingGroupRecommendationOption, DescribeRecommendationExportJobsRequest, DescribeRecommendationExportJobsResponse, + EBSFilter, + EBSUtilizationMetric, ExportAutoScalingGroupRecommendationsRequest, ExportAutoScalingGroupRecommendationsResponse, ExportDestination, @@ -51,6 +57,8 @@ import { Filter, GetAutoScalingGroupRecommendationsRequest, GetAutoScalingGroupRecommendationsResponse, + GetEBSVolumeRecommendationsRequest, + GetEBSVolumeRecommendationsResponse, GetEC2InstanceRecommendationsRequest, GetEC2InstanceRecommendationsResponse, GetEC2RecommendationProjectedMetricsRequest, @@ -82,6 +90,9 @@ import { UpdateEnrollmentStatusRequest, UpdateEnrollmentStatusResponse, UtilizationMetric, + VolumeConfiguration, + VolumeRecommendation, + VolumeRecommendationOption, } from "../models/models_0"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; @@ -145,6 +156,19 @@ export const serializeAws_json1_0GetAutoScalingGroupRecommendationsCommand = asy return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_0GetEBSVolumeRecommendationsCommand = async ( + input: GetEBSVolumeRecommendationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "ComputeOptimizerService.GetEBSVolumeRecommendations", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0GetEBSVolumeRecommendationsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_0GetEC2InstanceRecommendationsCommand = async ( input: GetEC2InstanceRecommendationsCommandInput, context: __SerdeContext @@ -654,6 +678,117 @@ const deserializeAws_json1_0GetAutoScalingGroupRecommendationsCommandError = asy return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_0GetEBSVolumeRecommendationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0GetEBSVolumeRecommendationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0GetEBSVolumeRecommendationsResponse(data, context); + const response: GetEBSVolumeRecommendationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0GetEBSVolumeRecommendationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.computeoptimizer#AccessDeniedException": + response = { + ...(await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.computeoptimizer#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.computeoptimizer#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_0InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "MissingAuthenticationToken": + case "com.amazonaws.computeoptimizer#MissingAuthenticationToken": + response = { + ...(await deserializeAws_json1_0MissingAuthenticationTokenResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OptInRequiredException": + case "com.amazonaws.computeoptimizer#OptInRequiredException": + response = { + ...(await deserializeAws_json1_0OptInRequiredExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.computeoptimizer#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceUnavailableException": + case "com.amazonaws.computeoptimizer#ServiceUnavailableException": + response = { + ...(await deserializeAws_json1_0ServiceUnavailableExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.computeoptimizer#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_0GetEC2InstanceRecommendationsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1324,6 +1459,17 @@ const serializeAws_json1_0DescribeRecommendationExportJobsRequest = ( }; }; +const serializeAws_json1_0EBSFilter = (input: EBSFilter, context: __SerdeContext): any => { + return { + ...(input.name !== undefined && { name: input.name }), + ...(input.values !== undefined && { values: serializeAws_json1_0FilterValues(input.values, context) }), + }; +}; + +const serializeAws_json1_0EBSFilters = (input: EBSFilter[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_0EBSFilter(entry, context)); +}; + const serializeAws_json1_0ExportableAutoScalingGroupFields = ( input: (ExportableAutoScalingGroupField | string)[], context: __SerdeContext @@ -1404,6 +1550,19 @@ const serializeAws_json1_0GetAutoScalingGroupRecommendationsRequest = ( }; }; +const serializeAws_json1_0GetEBSVolumeRecommendationsRequest = ( + input: GetEBSVolumeRecommendationsRequest, + context: __SerdeContext +): any => { + return { + ...(input.accountIds !== undefined && { accountIds: serializeAws_json1_0AccountIds(input.accountIds, context) }), + ...(input.filters !== undefined && { filters: serializeAws_json1_0EBSFilters(input.filters, context) }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.volumeArns !== undefined && { volumeArns: serializeAws_json1_0VolumeArns(input.volumeArns, context) }), + }; +}; + const serializeAws_json1_0GetEC2InstanceRecommendationsRequest = ( input: GetEC2InstanceRecommendationsRequest, context: __SerdeContext @@ -1486,6 +1645,10 @@ const serializeAws_json1_0UpdateEnrollmentStatusRequest = ( }; }; +const serializeAws_json1_0VolumeArns = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const deserializeAws_json1_0AccessDeniedException = (output: any, context: __SerdeContext): AccessDeniedException => { return { message: output.message !== undefined && output.message !== null ? output.message : undefined, @@ -1589,6 +1752,18 @@ const deserializeAws_json1_0DescribeRecommendationExportJobsResponse = ( } as any; }; +const deserializeAws_json1_0EBSUtilizationMetric = (output: any, context: __SerdeContext): EBSUtilizationMetric => { + return { + name: output.name !== undefined && output.name !== null ? output.name : undefined, + statistic: output.statistic !== undefined && output.statistic !== null ? output.statistic : undefined, + value: output.value !== undefined && output.value !== null ? output.value : undefined, + } as any; +}; + +const deserializeAws_json1_0EBSUtilizationMetrics = (output: any, context: __SerdeContext): EBSUtilizationMetric[] => { + return (output || []).map((entry: any) => deserializeAws_json1_0EBSUtilizationMetric(entry, context)); +}; + const deserializeAws_json1_0ExportAutoScalingGroupRecommendationsResponse = ( output: any, context: __SerdeContext @@ -1641,6 +1816,23 @@ const deserializeAws_json1_0GetAutoScalingGroupRecommendationsResponse = ( } as any; }; +const deserializeAws_json1_0GetEBSVolumeRecommendationsResponse = ( + output: any, + context: __SerdeContext +): GetEBSVolumeRecommendationsResponse => { + return { + errors: + output.errors !== undefined && output.errors !== null + ? deserializeAws_json1_0GetRecommendationErrors(output.errors, context) + : undefined, + nextToken: output.nextToken !== undefined && output.nextToken !== null ? output.nextToken : undefined, + volumeRecommendations: + output.volumeRecommendations !== undefined && output.volumeRecommendations !== null + ? deserializeAws_json1_0VolumeRecommendations(output.volumeRecommendations, context) + : undefined, + } as any; +}; + const deserializeAws_json1_0GetEC2InstanceRecommendationsResponse = ( output: any, context: __SerdeContext @@ -2006,6 +2198,81 @@ const deserializeAws_json1_0UtilizationMetrics = (output: any, context: __SerdeC return (output || []).map((entry: any) => deserializeAws_json1_0UtilizationMetric(entry, context)); }; +const deserializeAws_json1_0VolumeConfiguration = (output: any, context: __SerdeContext): VolumeConfiguration => { + return { + volumeBaselineIOPS: + output.volumeBaselineIOPS !== undefined && output.volumeBaselineIOPS !== null + ? output.volumeBaselineIOPS + : undefined, + volumeBaselineThroughput: + output.volumeBaselineThroughput !== undefined && output.volumeBaselineThroughput !== null + ? output.volumeBaselineThroughput + : undefined, + volumeBurstIOPS: + output.volumeBurstIOPS !== undefined && output.volumeBurstIOPS !== null ? output.volumeBurstIOPS : undefined, + volumeBurstThroughput: + output.volumeBurstThroughput !== undefined && output.volumeBurstThroughput !== null + ? output.volumeBurstThroughput + : undefined, + volumeSize: output.volumeSize !== undefined && output.volumeSize !== null ? output.volumeSize : undefined, + volumeType: output.volumeType !== undefined && output.volumeType !== null ? output.volumeType : undefined, + } as any; +}; + +const deserializeAws_json1_0VolumeRecommendation = (output: any, context: __SerdeContext): VolumeRecommendation => { + return { + accountId: output.accountId !== undefined && output.accountId !== null ? output.accountId : undefined, + currentConfiguration: + output.currentConfiguration !== undefined && output.currentConfiguration !== null + ? deserializeAws_json1_0VolumeConfiguration(output.currentConfiguration, context) + : undefined, + finding: output.finding !== undefined && output.finding !== null ? output.finding : undefined, + lastRefreshTimestamp: + output.lastRefreshTimestamp !== undefined && output.lastRefreshTimestamp !== null + ? new Date(Math.round(output.lastRefreshTimestamp * 1000)) + : undefined, + lookBackPeriodInDays: + output.lookBackPeriodInDays !== undefined && output.lookBackPeriodInDays !== null + ? output.lookBackPeriodInDays + : undefined, + utilizationMetrics: + output.utilizationMetrics !== undefined && output.utilizationMetrics !== null + ? deserializeAws_json1_0EBSUtilizationMetrics(output.utilizationMetrics, context) + : undefined, + volumeArn: output.volumeArn !== undefined && output.volumeArn !== null ? output.volumeArn : undefined, + volumeRecommendationOptions: + output.volumeRecommendationOptions !== undefined && output.volumeRecommendationOptions !== null + ? deserializeAws_json1_0VolumeRecommendationOptions(output.volumeRecommendationOptions, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_0VolumeRecommendationOption = ( + output: any, + context: __SerdeContext +): VolumeRecommendationOption => { + return { + configuration: + output.configuration !== undefined && output.configuration !== null + ? deserializeAws_json1_0VolumeConfiguration(output.configuration, context) + : undefined, + performanceRisk: + output.performanceRisk !== undefined && output.performanceRisk !== null ? output.performanceRisk : undefined, + rank: output.rank !== undefined && output.rank !== null ? output.rank : undefined, + } as any; +}; + +const deserializeAws_json1_0VolumeRecommendationOptions = ( + output: any, + context: __SerdeContext +): VolumeRecommendationOption[] => { + return (output || []).map((entry: any) => deserializeAws_json1_0VolumeRecommendationOption(entry, context)); +}; + +const deserializeAws_json1_0VolumeRecommendations = (output: any, context: __SerdeContext): VolumeRecommendation[] => { + return (output || []).map((entry: any) => deserializeAws_json1_0VolumeRecommendation(entry, context)); +}; + const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, httpHeaders: output.headers, diff --git a/clients/client-customer-profiles/.gitignore b/clients/client-customer-profiles/.gitignore new file mode 100644 index 0000000000000..b41c05b597c42 --- /dev/null +++ b/clients/client-customer-profiles/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-customer-profiles/.npmignore b/clients/client-customer-profiles/.npmignore new file mode 100644 index 0000000000000..b7ff81137c4ad --- /dev/null +++ b/clients/client-customer-profiles/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-customer-profiles/CustomerProfiles.ts b/clients/client-customer-profiles/CustomerProfiles.ts new file mode 100644 index 0000000000000..2043edbe3262a --- /dev/null +++ b/clients/client-customer-profiles/CustomerProfiles.ts @@ -0,0 +1,1063 @@ +import { CustomerProfilesClient } from "./CustomerProfilesClient"; +import { + AddProfileKeyCommand, + AddProfileKeyCommandInput, + AddProfileKeyCommandOutput, +} from "./commands/AddProfileKeyCommand"; +import { + CreateDomainCommand, + CreateDomainCommandInput, + CreateDomainCommandOutput, +} from "./commands/CreateDomainCommand"; +import { + CreateProfileCommand, + CreateProfileCommandInput, + CreateProfileCommandOutput, +} from "./commands/CreateProfileCommand"; +import { + DeleteDomainCommand, + DeleteDomainCommandInput, + DeleteDomainCommandOutput, +} from "./commands/DeleteDomainCommand"; +import { + DeleteIntegrationCommand, + DeleteIntegrationCommandInput, + DeleteIntegrationCommandOutput, +} from "./commands/DeleteIntegrationCommand"; +import { + DeleteProfileCommand, + DeleteProfileCommandInput, + DeleteProfileCommandOutput, +} from "./commands/DeleteProfileCommand"; +import { + DeleteProfileKeyCommand, + DeleteProfileKeyCommandInput, + DeleteProfileKeyCommandOutput, +} from "./commands/DeleteProfileKeyCommand"; +import { + DeleteProfileObjectCommand, + DeleteProfileObjectCommandInput, + DeleteProfileObjectCommandOutput, +} from "./commands/DeleteProfileObjectCommand"; +import { + DeleteProfileObjectTypeCommand, + DeleteProfileObjectTypeCommandInput, + DeleteProfileObjectTypeCommandOutput, +} from "./commands/DeleteProfileObjectTypeCommand"; +import { GetDomainCommand, GetDomainCommandInput, GetDomainCommandOutput } from "./commands/GetDomainCommand"; +import { + GetIntegrationCommand, + GetIntegrationCommandInput, + GetIntegrationCommandOutput, +} from "./commands/GetIntegrationCommand"; +import { + GetProfileObjectTypeCommand, + GetProfileObjectTypeCommandInput, + GetProfileObjectTypeCommandOutput, +} from "./commands/GetProfileObjectTypeCommand"; +import { + GetProfileObjectTypeTemplateCommand, + GetProfileObjectTypeTemplateCommandInput, + GetProfileObjectTypeTemplateCommandOutput, +} from "./commands/GetProfileObjectTypeTemplateCommand"; +import { + ListAccountIntegrationsCommand, + ListAccountIntegrationsCommandInput, + ListAccountIntegrationsCommandOutput, +} from "./commands/ListAccountIntegrationsCommand"; +import { ListDomainsCommand, ListDomainsCommandInput, ListDomainsCommandOutput } from "./commands/ListDomainsCommand"; +import { + ListIntegrationsCommand, + ListIntegrationsCommandInput, + ListIntegrationsCommandOutput, +} from "./commands/ListIntegrationsCommand"; +import { + ListProfileObjectTypeTemplatesCommand, + ListProfileObjectTypeTemplatesCommandInput, + ListProfileObjectTypeTemplatesCommandOutput, +} from "./commands/ListProfileObjectTypeTemplatesCommand"; +import { + ListProfileObjectTypesCommand, + ListProfileObjectTypesCommandInput, + ListProfileObjectTypesCommandOutput, +} from "./commands/ListProfileObjectTypesCommand"; +import { + ListProfileObjectsCommand, + ListProfileObjectsCommandInput, + ListProfileObjectsCommandOutput, +} from "./commands/ListProfileObjectsCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + PutIntegrationCommand, + PutIntegrationCommandInput, + PutIntegrationCommandOutput, +} from "./commands/PutIntegrationCommand"; +import { + PutProfileObjectCommand, + PutProfileObjectCommandInput, + PutProfileObjectCommandOutput, +} from "./commands/PutProfileObjectCommand"; +import { + PutProfileObjectTypeCommand, + PutProfileObjectTypeCommandInput, + PutProfileObjectTypeCommandOutput, +} from "./commands/PutProfileObjectTypeCommand"; +import { + SearchProfilesCommand, + SearchProfilesCommandInput, + SearchProfilesCommandOutput, +} from "./commands/SearchProfilesCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; +import { + UpdateDomainCommand, + UpdateDomainCommandInput, + UpdateDomainCommandOutput, +} from "./commands/UpdateDomainCommand"; +import { + UpdateProfileCommand, + UpdateProfileCommandInput, + UpdateProfileCommandOutput, +} from "./commands/UpdateProfileCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + * Amazon Connect Customer Profiles + *

Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides + * information about the Amazon Connect Customer Profiles API, including supported operations, + * data types, parameters, and schemas.

+ *

Amazon Connect Customer Profiles is a unified customer profile for your contact center + * that has pre-built connectors powered by AppFlow that make it easy to combine customer + * information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and + * your enterprise resource planning (ERP), with contact history from your Amazon Connect + * contact center.

+ *

If you're new to Amazon Connect, you might find it helpful to also review the Amazon Connect Administrator Guide.

+ */ +export class CustomerProfiles extends CustomerProfilesClient { + /** + *

Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) + * ContactId.

+ *

A profile object can have a single unique key and any number of additional keys that can + * be used to identify the profile that it belongs to.

+ */ + public addProfileKey( + args: AddProfileKeyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public addProfileKey( + args: AddProfileKeyCommandInput, + cb: (err: any, data?: AddProfileKeyCommandOutput) => void + ): void; + public addProfileKey( + args: AddProfileKeyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AddProfileKeyCommandOutput) => void + ): void; + public addProfileKey( + args: AddProfileKeyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AddProfileKeyCommandOutput) => void), + cb?: (err: any, data?: AddProfileKeyCommandOutput) => void + ): Promise | void { + const command = new AddProfileKeyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Creates a domain, which is a container for all customer data, such as customer profile + * attributes, object types, profile keys, and encryption keys. You can create multiple + * domains, and each domain can have multiple third-party integrations.

+ *

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon + * Connect instances can be associated with one domain.

+ */ + public createDomain( + args: CreateDomainCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createDomain(args: CreateDomainCommandInput, cb: (err: any, data?: CreateDomainCommandOutput) => void): void; + public createDomain( + args: CreateDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateDomainCommandOutput) => void + ): void; + public createDomain( + args: CreateDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateDomainCommandOutput) => void), + cb?: (err: any, data?: CreateDomainCommandOutput) => void + ): Promise | void { + const command = new CreateDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Creates a standard profile.

+ *

A standard profile represents the following attributes for a customer profile in a + * domain.

+ */ + public createProfile( + args: CreateProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createProfile( + args: CreateProfileCommandInput, + cb: (err: any, data?: CreateProfileCommandOutput) => void + ): void; + public createProfile( + args: CreateProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateProfileCommandOutput) => void + ): void; + public createProfile( + args: CreateProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateProfileCommandOutput) => void), + cb?: (err: any, data?: CreateProfileCommandOutput) => void + ): Promise | void { + const command = new CreateProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes a specific domain and all of its customer data, such as customer profile + * attributes and their related objects.

+ */ + public deleteDomain( + args: DeleteDomainCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteDomain(args: DeleteDomainCommandInput, cb: (err: any, data?: DeleteDomainCommandOutput) => void): void; + public deleteDomain( + args: DeleteDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteDomainCommandOutput) => void + ): void; + public deleteDomain( + args: DeleteDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteDomainCommandOutput) => void), + cb?: (err: any, data?: DeleteDomainCommandOutput) => void + ): Promise | void { + const command = new DeleteDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Removes an integration from a specific domain.

+ */ + public deleteIntegration( + args: DeleteIntegrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteIntegration( + args: DeleteIntegrationCommandInput, + cb: (err: any, data?: DeleteIntegrationCommandOutput) => void + ): void; + public deleteIntegration( + args: DeleteIntegrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteIntegrationCommandOutput) => void + ): void; + public deleteIntegration( + args: DeleteIntegrationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteIntegrationCommandOutput) => void), + cb?: (err: any, data?: DeleteIntegrationCommandOutput) => void + ): Promise | void { + const command = new DeleteIntegrationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes the standard customer profile and all data pertaining to the profile.

+ */ + public deleteProfile( + args: DeleteProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteProfile( + args: DeleteProfileCommandInput, + cb: (err: any, data?: DeleteProfileCommandOutput) => void + ): void; + public deleteProfile( + args: DeleteProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteProfileCommandOutput) => void + ): void; + public deleteProfile( + args: DeleteProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteProfileCommandOutput) => void), + cb?: (err: any, data?: DeleteProfileCommandOutput) => void + ): Promise | void { + const command = new DeleteProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Removes a searchable key from a customer profile.

+ */ + public deleteProfileKey( + args: DeleteProfileKeyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteProfileKey( + args: DeleteProfileKeyCommandInput, + cb: (err: any, data?: DeleteProfileKeyCommandOutput) => void + ): void; + public deleteProfileKey( + args: DeleteProfileKeyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteProfileKeyCommandOutput) => void + ): void; + public deleteProfileKey( + args: DeleteProfileKeyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteProfileKeyCommandOutput) => void), + cb?: (err: any, data?: DeleteProfileKeyCommandOutput) => void + ): Promise | void { + const command = new DeleteProfileKeyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Removes an object associated with a profile of a given ProfileObjectType.

+ */ + public deleteProfileObject( + args: DeleteProfileObjectCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteProfileObject( + args: DeleteProfileObjectCommandInput, + cb: (err: any, data?: DeleteProfileObjectCommandOutput) => void + ): void; + public deleteProfileObject( + args: DeleteProfileObjectCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteProfileObjectCommandOutput) => void + ): void; + public deleteProfileObject( + args: DeleteProfileObjectCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteProfileObjectCommandOutput) => void), + cb?: (err: any, data?: DeleteProfileObjectCommandOutput) => void + ): Promise | void { + const command = new DeleteProfileObjectCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Removes a ProfileObjectType from a specific domain as well as removes all the + * ProfileObjects of that type. It also disables integrations from this specific + * ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that + * were populated from this ProfileObjectType.

+ */ + public deleteProfileObjectType( + args: DeleteProfileObjectTypeCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteProfileObjectType( + args: DeleteProfileObjectTypeCommandInput, + cb: (err: any, data?: DeleteProfileObjectTypeCommandOutput) => void + ): void; + public deleteProfileObjectType( + args: DeleteProfileObjectTypeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteProfileObjectTypeCommandOutput) => void + ): void; + public deleteProfileObjectType( + args: DeleteProfileObjectTypeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteProfileObjectTypeCommandOutput) => void), + cb?: (err: any, data?: DeleteProfileObjectTypeCommandOutput) => void + ): Promise | void { + const command = new DeleteProfileObjectTypeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns information about a specific domain.

+ */ + public getDomain(args: GetDomainCommandInput, options?: __HttpHandlerOptions): Promise; + public getDomain(args: GetDomainCommandInput, cb: (err: any, data?: GetDomainCommandOutput) => void): void; + public getDomain( + args: GetDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetDomainCommandOutput) => void + ): void; + public getDomain( + args: GetDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetDomainCommandOutput) => void), + cb?: (err: any, data?: GetDomainCommandOutput) => void + ): Promise | void { + const command = new GetDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns an integration for a domain.

+ */ + public getIntegration( + args: GetIntegrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getIntegration( + args: GetIntegrationCommandInput, + cb: (err: any, data?: GetIntegrationCommandOutput) => void + ): void; + public getIntegration( + args: GetIntegrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetIntegrationCommandOutput) => void + ): void; + public getIntegration( + args: GetIntegrationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetIntegrationCommandOutput) => void), + cb?: (err: any, data?: GetIntegrationCommandOutput) => void + ): Promise | void { + const command = new GetIntegrationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns the object types for a specific domain.

+ */ + public getProfileObjectType( + args: GetProfileObjectTypeCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getProfileObjectType( + args: GetProfileObjectTypeCommandInput, + cb: (err: any, data?: GetProfileObjectTypeCommandOutput) => void + ): void; + public getProfileObjectType( + args: GetProfileObjectTypeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetProfileObjectTypeCommandOutput) => void + ): void; + public getProfileObjectType( + args: GetProfileObjectTypeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetProfileObjectTypeCommandOutput) => void), + cb?: (err: any, data?: GetProfileObjectTypeCommandOutput) => void + ): Promise | void { + const command = new GetProfileObjectTypeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns the template information for a specific object type.

+ *

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or + * “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, + * with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the + * template.

+ */ + public getProfileObjectTypeTemplate( + args: GetProfileObjectTypeTemplateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getProfileObjectTypeTemplate( + args: GetProfileObjectTypeTemplateCommandInput, + cb: (err: any, data?: GetProfileObjectTypeTemplateCommandOutput) => void + ): void; + public getProfileObjectTypeTemplate( + args: GetProfileObjectTypeTemplateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetProfileObjectTypeTemplateCommandOutput) => void + ): void; + public getProfileObjectTypeTemplate( + args: GetProfileObjectTypeTemplateCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetProfileObjectTypeTemplateCommandOutput) => void), + cb?: (err: any, data?: GetProfileObjectTypeTemplateCommandOutput) => void + ): Promise | void { + const command = new GetProfileObjectTypeTemplateCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Lists all of the integrations associated to a specific URI in the AWS account.

+ */ + public listAccountIntegrations( + args: ListAccountIntegrationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAccountIntegrations( + args: ListAccountIntegrationsCommandInput, + cb: (err: any, data?: ListAccountIntegrationsCommandOutput) => void + ): void; + public listAccountIntegrations( + args: ListAccountIntegrationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAccountIntegrationsCommandOutput) => void + ): void; + public listAccountIntegrations( + args: ListAccountIntegrationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAccountIntegrationsCommandOutput) => void), + cb?: (err: any, data?: ListAccountIntegrationsCommandOutput) => void + ): Promise | void { + const command = new ListAccountIntegrationsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns a list of all the domains for an AWS account that have been created.

+ */ + public listDomains(args: ListDomainsCommandInput, options?: __HttpHandlerOptions): Promise; + public listDomains(args: ListDomainsCommandInput, cb: (err: any, data?: ListDomainsCommandOutput) => void): void; + public listDomains( + args: ListDomainsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDomainsCommandOutput) => void + ): void; + public listDomains( + args: ListDomainsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDomainsCommandOutput) => void), + cb?: (err: any, data?: ListDomainsCommandOutput) => void + ): Promise | void { + const command = new ListDomainsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Lists all of the integrations in your domain.

+ */ + public listIntegrations( + args: ListIntegrationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listIntegrations( + args: ListIntegrationsCommandInput, + cb: (err: any, data?: ListIntegrationsCommandOutput) => void + ): void; + public listIntegrations( + args: ListIntegrationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListIntegrationsCommandOutput) => void + ): void; + public listIntegrations( + args: ListIntegrationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListIntegrationsCommandOutput) => void), + cb?: (err: any, data?: ListIntegrationsCommandOutput) => void + ): Promise | void { + const command = new ListIntegrationsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns a list of objects associated with a profile of a given ProfileObjectType.

+ */ + public listProfileObjects( + args: ListProfileObjectsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listProfileObjects( + args: ListProfileObjectsCommandInput, + cb: (err: any, data?: ListProfileObjectsCommandOutput) => void + ): void; + public listProfileObjects( + args: ListProfileObjectsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListProfileObjectsCommandOutput) => void + ): void; + public listProfileObjects( + args: ListProfileObjectsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListProfileObjectsCommandOutput) => void), + cb?: (err: any, data?: ListProfileObjectsCommandOutput) => void + ): Promise | void { + const command = new ListProfileObjectsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Lists all of the templates available within the service.

+ */ + public listProfileObjectTypes( + args: ListProfileObjectTypesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listProfileObjectTypes( + args: ListProfileObjectTypesCommandInput, + cb: (err: any, data?: ListProfileObjectTypesCommandOutput) => void + ): void; + public listProfileObjectTypes( + args: ListProfileObjectTypesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListProfileObjectTypesCommandOutput) => void + ): void; + public listProfileObjectTypes( + args: ListProfileObjectTypesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListProfileObjectTypesCommandOutput) => void), + cb?: (err: any, data?: ListProfileObjectTypesCommandOutput) => void + ): Promise | void { + const command = new ListProfileObjectTypesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Lists all of the template information for object types.

+ */ + public listProfileObjectTypeTemplates( + args: ListProfileObjectTypeTemplatesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listProfileObjectTypeTemplates( + args: ListProfileObjectTypeTemplatesCommandInput, + cb: (err: any, data?: ListProfileObjectTypeTemplatesCommandOutput) => void + ): void; + public listProfileObjectTypeTemplates( + args: ListProfileObjectTypeTemplatesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListProfileObjectTypeTemplatesCommandOutput) => void + ): void; + public listProfileObjectTypeTemplates( + args: ListProfileObjectTypeTemplatesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListProfileObjectTypeTemplatesCommandOutput) => void), + cb?: (err: any, data?: ListProfileObjectTypeTemplatesCommandOutput) => void + ): Promise | void { + const command = new ListProfileObjectTypeTemplatesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Displays the tags associated with an Amazon Connect Customer Profiles resource. In + * Connect Customer Profiles, domains, profile object types, and integrations can be + * tagged.

+ */ + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTagsForResourceCommandOutput) => void), + cb?: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): Promise | void { + const command = new ListTagsForResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Adds an integration between the service and a third-party service, which includes Amazon + * AppFlow and Amazon Connect.

+ *

An integration can belong to only one domain.

+ */ + public putIntegration( + args: PutIntegrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putIntegration( + args: PutIntegrationCommandInput, + cb: (err: any, data?: PutIntegrationCommandOutput) => void + ): void; + public putIntegration( + args: PutIntegrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutIntegrationCommandOutput) => void + ): void; + public putIntegration( + args: PutIntegrationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutIntegrationCommandOutput) => void), + cb?: (err: any, data?: PutIntegrationCommandOutput) => void + ): Promise | void { + const command = new PutIntegrationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Adds additional objects to customer profiles of a given ObjectType.

+ *

When adding a specific profile object, like a Contact Trace Record (CTR), an inferred + * profile can get created if it is not mapped to an existing profile. The resulting profile + * will only have a phone number populated in the standard ProfileObject. Any additional CTRs + * with the same phone number will be mapped to the same inferred profile.

+ *

When a ProfileObject is created and if a ProfileObjectType already exists for the + * ProfileObject, it will provide data to a standard profile depending on the + * ProfileObjectType definition.

+ *

PutProfileObject needs an ObjectType, which can be created using + * PutProfileObjectType.

+ */ + public putProfileObject( + args: PutProfileObjectCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putProfileObject( + args: PutProfileObjectCommandInput, + cb: (err: any, data?: PutProfileObjectCommandOutput) => void + ): void; + public putProfileObject( + args: PutProfileObjectCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutProfileObjectCommandOutput) => void + ): void; + public putProfileObject( + args: PutProfileObjectCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutProfileObjectCommandOutput) => void), + cb?: (err: any, data?: PutProfileObjectCommandOutput) => void + ): Promise | void { + const command = new PutProfileObjectCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Defines a ProfileObjectType.

+ */ + public putProfileObjectType( + args: PutProfileObjectTypeCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putProfileObjectType( + args: PutProfileObjectTypeCommandInput, + cb: (err: any, data?: PutProfileObjectTypeCommandOutput) => void + ): void; + public putProfileObjectType( + args: PutProfileObjectTypeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutProfileObjectTypeCommandOutput) => void + ): void; + public putProfileObjectType( + args: PutProfileObjectTypeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutProfileObjectTypeCommandOutput) => void), + cb?: (err: any, data?: PutProfileObjectTypeCommandOutput) => void + ): Promise | void { + const command = new PutProfileObjectTypeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Searches for profiles within a specific domain name using name, phone number, email + * address, account number, or a custom defined index.

+ */ + public searchProfiles( + args: SearchProfilesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public searchProfiles( + args: SearchProfilesCommandInput, + cb: (err: any, data?: SearchProfilesCommandOutput) => void + ): void; + public searchProfiles( + args: SearchProfilesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: SearchProfilesCommandOutput) => void + ): void; + public searchProfiles( + args: SearchProfilesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: SearchProfilesCommandOutput) => void), + cb?: (err: any, data?: SearchProfilesCommandOutput) => void + ): Promise | void { + const command = new SearchProfilesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer + * Profiles resource. Tags can help you organize and categorize your resources. You can also + * use them to scope user permissions by granting a user permission to access or change only + * resources with certain tag values. In Connect Customer Profiles, domains, profile object + * types, and integrations can be tagged.

+ *

Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of + * characters.

+ *

You can use the TagResource action with a resource that already has tags. If you specify + * a new tag key, this tag is appended to the list of tags associated with the resource. If + * you specify a tag key that is already associated with the resource, the new tag value that + * you specify replaces the previous value for that tag.

+ *

You can associate as many as 50 tags with a resource.

+ */ + public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + public tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + public tagResource( + args: TagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: TagResourceCommandOutput) => void), + cb?: (err: any, data?: TagResourceCommandOutput) => void + ): Promise | void { + const command = new TagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Removes one or more tags from the specified Amazon Connect Customer Profiles resource. + * In Connect Customer Profiles, domains, profile object types, and integrations can be + * tagged.

+ */ + public untagResource( + args: UntagResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public untagResource( + args: UntagResourceCommandInput, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UntagResourceCommandOutput) => void), + cb?: (err: any, data?: UntagResourceCommandOutput) => void + ): Promise | void { + const command = new UntagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates the properties of a domain, including creating or selecting a dead letter queue + * or an encryption key.

+ *

Once a domain is created, the name can’t be changed.

+ */ + public updateDomain( + args: UpdateDomainCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateDomain(args: UpdateDomainCommandInput, cb: (err: any, data?: UpdateDomainCommandOutput) => void): void; + public updateDomain( + args: UpdateDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateDomainCommandOutput) => void + ): void; + public updateDomain( + args: UpdateDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateDomainCommandOutput) => void), + cb?: (err: any, data?: UpdateDomainCommandOutput) => void + ): Promise | void { + const command = new UpdateDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates the properties of a profile. The ProfileId is required for updating a customer + * profile.

+ *

When calling the UpdateProfile API, specifying an empty string value means that any + * existing value will be removed. Not specifying a string value means that any value already + * there will be kept.

+ */ + public updateProfile( + args: UpdateProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateProfile( + args: UpdateProfileCommandInput, + cb: (err: any, data?: UpdateProfileCommandOutput) => void + ): void; + public updateProfile( + args: UpdateProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateProfileCommandOutput) => void + ): void; + public updateProfile( + args: UpdateProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateProfileCommandOutput) => void), + cb?: (err: any, data?: UpdateProfileCommandOutput) => void + ): Promise | void { + const command = new UpdateProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-customer-profiles/CustomerProfilesClient.ts b/clients/client-customer-profiles/CustomerProfilesClient.ts new file mode 100644 index 0000000000000..625dcad9ba46f --- /dev/null +++ b/clients/client-customer-profiles/CustomerProfilesClient.ts @@ -0,0 +1,321 @@ +import { AddProfileKeyCommandInput, AddProfileKeyCommandOutput } from "./commands/AddProfileKeyCommand"; +import { CreateDomainCommandInput, CreateDomainCommandOutput } from "./commands/CreateDomainCommand"; +import { CreateProfileCommandInput, CreateProfileCommandOutput } from "./commands/CreateProfileCommand"; +import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "./commands/DeleteDomainCommand"; +import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "./commands/DeleteIntegrationCommand"; +import { DeleteProfileCommandInput, DeleteProfileCommandOutput } from "./commands/DeleteProfileCommand"; +import { DeleteProfileKeyCommandInput, DeleteProfileKeyCommandOutput } from "./commands/DeleteProfileKeyCommand"; +import { + DeleteProfileObjectCommandInput, + DeleteProfileObjectCommandOutput, +} from "./commands/DeleteProfileObjectCommand"; +import { + DeleteProfileObjectTypeCommandInput, + DeleteProfileObjectTypeCommandOutput, +} from "./commands/DeleteProfileObjectTypeCommand"; +import { GetDomainCommandInput, GetDomainCommandOutput } from "./commands/GetDomainCommand"; +import { GetIntegrationCommandInput, GetIntegrationCommandOutput } from "./commands/GetIntegrationCommand"; +import { + GetProfileObjectTypeCommandInput, + GetProfileObjectTypeCommandOutput, +} from "./commands/GetProfileObjectTypeCommand"; +import { + GetProfileObjectTypeTemplateCommandInput, + GetProfileObjectTypeTemplateCommandOutput, +} from "./commands/GetProfileObjectTypeTemplateCommand"; +import { + ListAccountIntegrationsCommandInput, + ListAccountIntegrationsCommandOutput, +} from "./commands/ListAccountIntegrationsCommand"; +import { ListDomainsCommandInput, ListDomainsCommandOutput } from "./commands/ListDomainsCommand"; +import { ListIntegrationsCommandInput, ListIntegrationsCommandOutput } from "./commands/ListIntegrationsCommand"; +import { + ListProfileObjectTypeTemplatesCommandInput, + ListProfileObjectTypeTemplatesCommandOutput, +} from "./commands/ListProfileObjectTypeTemplatesCommand"; +import { + ListProfileObjectTypesCommandInput, + ListProfileObjectTypesCommandOutput, +} from "./commands/ListProfileObjectTypesCommand"; +import { ListProfileObjectsCommandInput, ListProfileObjectsCommandOutput } from "./commands/ListProfileObjectsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { PutIntegrationCommandInput, PutIntegrationCommandOutput } from "./commands/PutIntegrationCommand"; +import { PutProfileObjectCommandInput, PutProfileObjectCommandOutput } from "./commands/PutProfileObjectCommand"; +import { + PutProfileObjectTypeCommandInput, + PutProfileObjectTypeCommandOutput, +} from "./commands/PutProfileObjectTypeCommand"; +import { SearchProfilesCommandInput, SearchProfilesCommandOutput } from "./commands/SearchProfilesCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; +import { UpdateDomainCommandInput, UpdateDomainCommandOutput } from "./commands/UpdateDomainCommand"; +import { UpdateProfileCommandInput, UpdateProfileCommandOutput } from "./commands/UpdateProfileCommand"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, +} from "@aws-sdk/types"; + +export type ServiceInputTypes = + | AddProfileKeyCommandInput + | CreateDomainCommandInput + | CreateProfileCommandInput + | DeleteDomainCommandInput + | DeleteIntegrationCommandInput + | DeleteProfileCommandInput + | DeleteProfileKeyCommandInput + | DeleteProfileObjectCommandInput + | DeleteProfileObjectTypeCommandInput + | GetDomainCommandInput + | GetIntegrationCommandInput + | GetProfileObjectTypeCommandInput + | GetProfileObjectTypeTemplateCommandInput + | ListAccountIntegrationsCommandInput + | ListDomainsCommandInput + | ListIntegrationsCommandInput + | ListProfileObjectTypeTemplatesCommandInput + | ListProfileObjectTypesCommandInput + | ListProfileObjectsCommandInput + | ListTagsForResourceCommandInput + | PutIntegrationCommandInput + | PutProfileObjectCommandInput + | PutProfileObjectTypeCommandInput + | SearchProfilesCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput + | UpdateDomainCommandInput + | UpdateProfileCommandInput; + +export type ServiceOutputTypes = + | AddProfileKeyCommandOutput + | CreateDomainCommandOutput + | CreateProfileCommandOutput + | DeleteDomainCommandOutput + | DeleteIntegrationCommandOutput + | DeleteProfileCommandOutput + | DeleteProfileKeyCommandOutput + | DeleteProfileObjectCommandOutput + | DeleteProfileObjectTypeCommandOutput + | GetDomainCommandOutput + | GetIntegrationCommandOutput + | GetProfileObjectTypeCommandOutput + | GetProfileObjectTypeTemplateCommandOutput + | ListAccountIntegrationsCommandOutput + | ListDomainsCommandOutput + | ListIntegrationsCommandOutput + | ListProfileObjectTypeTemplatesCommandOutput + | ListProfileObjectTypesCommandOutput + | ListProfileObjectsCommandOutput + | ListTagsForResourceCommandOutput + | PutIntegrationCommandOutput + | PutProfileObjectCommandOutput + | PutProfileObjectTypeCommandOutput + | SearchProfilesCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput + | UpdateDomainCommandOutput + | UpdateProfileCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type CustomerProfilesClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type CustomerProfilesClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + * Amazon Connect Customer Profiles + *

Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides + * information about the Amazon Connect Customer Profiles API, including supported operations, + * data types, parameters, and schemas.

+ *

Amazon Connect Customer Profiles is a unified customer profile for your contact center + * that has pre-built connectors powered by AppFlow that make it easy to combine customer + * information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and + * your enterprise resource planning (ERP), with contact history from your Amazon Connect + * contact center.

+ *

If you're new to Amazon Connect, you might find it helpful to also review the Amazon Connect Administrator Guide.

+ */ +export class CustomerProfilesClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + CustomerProfilesClientResolvedConfig +> { + readonly config: CustomerProfilesClientResolvedConfig; + + constructor(configuration: CustomerProfilesClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration, + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + } + + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-customer-profiles/LICENSE b/clients/client-customer-profiles/LICENSE new file mode 100644 index 0000000000000..dd65ae06be7a9 --- /dev/null +++ b/clients/client-customer-profiles/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/clients/client-customer-profiles/README.md b/clients/client-customer-profiles/README.md new file mode 100644 index 0000000000000..aff30ee93643e --- /dev/null +++ b/clients/client-customer-profiles/README.md @@ -0,0 +1,6 @@ +# @aws-sdk/client-customer-profiles + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-customer-profiles/rc.svg)](https://www.npmjs.com/package/@aws-sdk/client-customer-profiles) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-customer-profiles.svg)](https://www.npmjs.com/package/@aws-sdk/client-customer-profiles) + +For SDK usage, please step to [SDK readme](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-customer-profiles/commands/AddProfileKeyCommand.ts b/clients/client-customer-profiles/commands/AddProfileKeyCommand.ts new file mode 100644 index 0000000000000..ca1c25e417de9 --- /dev/null +++ b/clients/client-customer-profiles/commands/AddProfileKeyCommand.ts @@ -0,0 +1,91 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { AddProfileKeyRequest, AddProfileKeyResponse } from "../models/models_0"; +import { + deserializeAws_restJson1AddProfileKeyCommand, + serializeAws_restJson1AddProfileKeyCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type AddProfileKeyCommandInput = AddProfileKeyRequest; +export type AddProfileKeyCommandOutput = AddProfileKeyResponse & __MetadataBearer; + +/** + *

Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) + * ContactId.

+ *

A profile object can have a single unique key and any number of additional keys that can + * be used to identify the profile that it belongs to.

+ */ +export class AddProfileKeyCommand extends $Command< + AddProfileKeyCommandInput, + AddProfileKeyCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AddProfileKeyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "AddProfileKeyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AddProfileKeyRequest.filterSensitiveLog, + outputFilterSensitiveLog: AddProfileKeyResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AddProfileKeyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1AddProfileKeyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1AddProfileKeyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/CreateDomainCommand.ts b/clients/client-customer-profiles/commands/CreateDomainCommand.ts new file mode 100644 index 0000000000000..c5df86fc4706a --- /dev/null +++ b/clients/client-customer-profiles/commands/CreateDomainCommand.ts @@ -0,0 +1,92 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { CreateDomainRequest, CreateDomainResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateDomainCommand, + serializeAws_restJson1CreateDomainCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateDomainCommandInput = CreateDomainRequest; +export type CreateDomainCommandOutput = CreateDomainResponse & __MetadataBearer; + +/** + *

Creates a domain, which is a container for all customer data, such as customer profile + * attributes, object types, profile keys, and encryption keys. You can create multiple + * domains, and each domain can have multiple third-party integrations.

+ *

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon + * Connect instances can be associated with one domain.

+ */ +export class CreateDomainCommand extends $Command< + CreateDomainCommandInput, + CreateDomainCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateDomainCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "CreateDomainCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateDomainRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateDomainResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateDomainCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateDomainCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateDomainCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/CreateProfileCommand.ts b/clients/client-customer-profiles/commands/CreateProfileCommand.ts new file mode 100644 index 0000000000000..6388798d1177a --- /dev/null +++ b/clients/client-customer-profiles/commands/CreateProfileCommand.ts @@ -0,0 +1,90 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { CreateProfileRequest, CreateProfileResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateProfileCommand, + serializeAws_restJson1CreateProfileCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateProfileCommandInput = CreateProfileRequest; +export type CreateProfileCommandOutput = CreateProfileResponse & __MetadataBearer; + +/** + *

Creates a standard profile.

+ *

A standard profile represents the following attributes for a customer profile in a + * domain.

+ */ +export class CreateProfileCommand extends $Command< + CreateProfileCommandInput, + CreateProfileCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "CreateProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateProfileRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateProfileResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteDomainCommand.ts b/clients/client-customer-profiles/commands/DeleteDomainCommand.ts new file mode 100644 index 0000000000000..d53f551e2a717 --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteDomainCommand.ts @@ -0,0 +1,89 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteDomainRequest, DeleteDomainResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteDomainCommand, + serializeAws_restJson1DeleteDomainCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteDomainCommandInput = DeleteDomainRequest; +export type DeleteDomainCommandOutput = DeleteDomainResponse & __MetadataBearer; + +/** + *

Deletes a specific domain and all of its customer data, such as customer profile + * attributes and their related objects.

+ */ +export class DeleteDomainCommand extends $Command< + DeleteDomainCommandInput, + DeleteDomainCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteDomainCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteDomainCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteDomainRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteDomainResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteDomainCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteDomainCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteDomainCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteIntegrationCommand.ts b/clients/client-customer-profiles/commands/DeleteIntegrationCommand.ts new file mode 100644 index 0000000000000..045ebac320077 --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteIntegrationCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteIntegrationRequest, DeleteIntegrationResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteIntegrationCommand, + serializeAws_restJson1DeleteIntegrationCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteIntegrationCommandInput = DeleteIntegrationRequest; +export type DeleteIntegrationCommandOutput = DeleteIntegrationResponse & __MetadataBearer; + +/** + *

Removes an integration from a specific domain.

+ */ +export class DeleteIntegrationCommand extends $Command< + DeleteIntegrationCommandInput, + DeleteIntegrationCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteIntegrationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteIntegrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteIntegrationRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteIntegrationResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteIntegrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteIntegrationCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteIntegrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteProfileCommand.ts b/clients/client-customer-profiles/commands/DeleteProfileCommand.ts new file mode 100644 index 0000000000000..bf6e5981b7176 --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteProfileCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteProfileRequest, DeleteProfileResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteProfileCommand, + serializeAws_restJson1DeleteProfileCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteProfileCommandInput = DeleteProfileRequest; +export type DeleteProfileCommandOutput = DeleteProfileResponse & __MetadataBearer; + +/** + *

Deletes the standard customer profile and all data pertaining to the profile.

+ */ +export class DeleteProfileCommand extends $Command< + DeleteProfileCommandInput, + DeleteProfileCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteProfileRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteProfileResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteProfileKeyCommand.ts b/clients/client-customer-profiles/commands/DeleteProfileKeyCommand.ts new file mode 100644 index 0000000000000..983fc19a23b14 --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteProfileKeyCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteProfileKeyRequest, DeleteProfileKeyResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteProfileKeyCommand, + serializeAws_restJson1DeleteProfileKeyCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteProfileKeyCommandInput = DeleteProfileKeyRequest; +export type DeleteProfileKeyCommandOutput = DeleteProfileKeyResponse & __MetadataBearer; + +/** + *

Removes a searchable key from a customer profile.

+ */ +export class DeleteProfileKeyCommand extends $Command< + DeleteProfileKeyCommandInput, + DeleteProfileKeyCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteProfileKeyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteProfileKeyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteProfileKeyRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteProfileKeyResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteProfileKeyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteProfileKeyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteProfileKeyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteProfileObjectCommand.ts b/clients/client-customer-profiles/commands/DeleteProfileObjectCommand.ts new file mode 100644 index 0000000000000..16797c262e8fb --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteProfileObjectCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteProfileObjectRequest, DeleteProfileObjectResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteProfileObjectCommand, + serializeAws_restJson1DeleteProfileObjectCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteProfileObjectCommandInput = DeleteProfileObjectRequest; +export type DeleteProfileObjectCommandOutput = DeleteProfileObjectResponse & __MetadataBearer; + +/** + *

Removes an object associated with a profile of a given ProfileObjectType.

+ */ +export class DeleteProfileObjectCommand extends $Command< + DeleteProfileObjectCommandInput, + DeleteProfileObjectCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteProfileObjectCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteProfileObjectCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteProfileObjectRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteProfileObjectResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteProfileObjectCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteProfileObjectCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteProfileObjectCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/DeleteProfileObjectTypeCommand.ts b/clients/client-customer-profiles/commands/DeleteProfileObjectTypeCommand.ts new file mode 100644 index 0000000000000..9386c1396372b --- /dev/null +++ b/clients/client-customer-profiles/commands/DeleteProfileObjectTypeCommand.ts @@ -0,0 +1,91 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { DeleteProfileObjectTypeRequest, DeleteProfileObjectTypeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteProfileObjectTypeCommand, + serializeAws_restJson1DeleteProfileObjectTypeCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteProfileObjectTypeCommandInput = DeleteProfileObjectTypeRequest; +export type DeleteProfileObjectTypeCommandOutput = DeleteProfileObjectTypeResponse & __MetadataBearer; + +/** + *

Removes a ProfileObjectType from a specific domain as well as removes all the + * ProfileObjects of that type. It also disables integrations from this specific + * ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that + * were populated from this ProfileObjectType.

+ */ +export class DeleteProfileObjectTypeCommand extends $Command< + DeleteProfileObjectTypeCommandInput, + DeleteProfileObjectTypeCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteProfileObjectTypeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "DeleteProfileObjectTypeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteProfileObjectTypeRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteProfileObjectTypeResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteProfileObjectTypeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteProfileObjectTypeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteProfileObjectTypeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/GetDomainCommand.ts b/clients/client-customer-profiles/commands/GetDomainCommand.ts new file mode 100644 index 0000000000000..ef1f6fff82bd3 --- /dev/null +++ b/clients/client-customer-profiles/commands/GetDomainCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { GetDomainRequest, GetDomainResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetDomainCommand, + serializeAws_restJson1GetDomainCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetDomainCommandInput = GetDomainRequest; +export type GetDomainCommandOutput = GetDomainResponse & __MetadataBearer; + +/** + *

Returns information about a specific domain.

+ */ +export class GetDomainCommand extends $Command< + GetDomainCommandInput, + GetDomainCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetDomainCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "GetDomainCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetDomainRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetDomainResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetDomainCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetDomainCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetDomainCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/GetIntegrationCommand.ts b/clients/client-customer-profiles/commands/GetIntegrationCommand.ts new file mode 100644 index 0000000000000..e7f3252d0308c --- /dev/null +++ b/clients/client-customer-profiles/commands/GetIntegrationCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { GetIntegrationRequest, GetIntegrationResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetIntegrationCommand, + serializeAws_restJson1GetIntegrationCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetIntegrationCommandInput = GetIntegrationRequest; +export type GetIntegrationCommandOutput = GetIntegrationResponse & __MetadataBearer; + +/** + *

Returns an integration for a domain.

+ */ +export class GetIntegrationCommand extends $Command< + GetIntegrationCommandInput, + GetIntegrationCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetIntegrationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "GetIntegrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetIntegrationRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetIntegrationResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetIntegrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetIntegrationCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetIntegrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/GetProfileObjectTypeCommand.ts b/clients/client-customer-profiles/commands/GetProfileObjectTypeCommand.ts new file mode 100644 index 0000000000000..a04a9cd36c69f --- /dev/null +++ b/clients/client-customer-profiles/commands/GetProfileObjectTypeCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { GetProfileObjectTypeRequest, GetProfileObjectTypeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetProfileObjectTypeCommand, + serializeAws_restJson1GetProfileObjectTypeCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetProfileObjectTypeCommandInput = GetProfileObjectTypeRequest; +export type GetProfileObjectTypeCommandOutput = GetProfileObjectTypeResponse & __MetadataBearer; + +/** + *

Returns the object types for a specific domain.

+ */ +export class GetProfileObjectTypeCommand extends $Command< + GetProfileObjectTypeCommandInput, + GetProfileObjectTypeCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetProfileObjectTypeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "GetProfileObjectTypeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetProfileObjectTypeRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetProfileObjectTypeResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetProfileObjectTypeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetProfileObjectTypeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetProfileObjectTypeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/GetProfileObjectTypeTemplateCommand.ts b/clients/client-customer-profiles/commands/GetProfileObjectTypeTemplateCommand.ts new file mode 100644 index 0000000000000..348c68c053a6f --- /dev/null +++ b/clients/client-customer-profiles/commands/GetProfileObjectTypeTemplateCommand.ts @@ -0,0 +1,95 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { GetProfileObjectTypeTemplateRequest, GetProfileObjectTypeTemplateResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetProfileObjectTypeTemplateCommand, + serializeAws_restJson1GetProfileObjectTypeTemplateCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetProfileObjectTypeTemplateCommandInput = GetProfileObjectTypeTemplateRequest; +export type GetProfileObjectTypeTemplateCommandOutput = GetProfileObjectTypeTemplateResponse & __MetadataBearer; + +/** + *

Returns the template information for a specific object type.

+ *

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or + * “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, + * with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the + * template.

+ */ +export class GetProfileObjectTypeTemplateCommand extends $Command< + GetProfileObjectTypeTemplateCommandInput, + GetProfileObjectTypeTemplateCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetProfileObjectTypeTemplateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "GetProfileObjectTypeTemplateCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetProfileObjectTypeTemplateRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetProfileObjectTypeTemplateResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetProfileObjectTypeTemplateCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetProfileObjectTypeTemplateCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetProfileObjectTypeTemplateCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListAccountIntegrationsCommand.ts b/clients/client-customer-profiles/commands/ListAccountIntegrationsCommand.ts new file mode 100644 index 0000000000000..b02eff505738c --- /dev/null +++ b/clients/client-customer-profiles/commands/ListAccountIntegrationsCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListAccountIntegrationsRequest, ListAccountIntegrationsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListAccountIntegrationsCommand, + serializeAws_restJson1ListAccountIntegrationsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListAccountIntegrationsCommandInput = ListAccountIntegrationsRequest; +export type ListAccountIntegrationsCommandOutput = ListAccountIntegrationsResponse & __MetadataBearer; + +/** + *

Lists all of the integrations associated to a specific URI in the AWS account.

+ */ +export class ListAccountIntegrationsCommand extends $Command< + ListAccountIntegrationsCommandInput, + ListAccountIntegrationsCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAccountIntegrationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListAccountIntegrationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAccountIntegrationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAccountIntegrationsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAccountIntegrationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListAccountIntegrationsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListAccountIntegrationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListDomainsCommand.ts b/clients/client-customer-profiles/commands/ListDomainsCommand.ts new file mode 100644 index 0000000000000..5de5cd7e8ffa3 --- /dev/null +++ b/clients/client-customer-profiles/commands/ListDomainsCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListDomainsRequest, ListDomainsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListDomainsCommand, + serializeAws_restJson1ListDomainsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListDomainsCommandInput = ListDomainsRequest; +export type ListDomainsCommandOutput = ListDomainsResponse & __MetadataBearer; + +/** + *

Returns a list of all the domains for an AWS account that have been created.

+ */ +export class ListDomainsCommand extends $Command< + ListDomainsCommandInput, + ListDomainsCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDomainsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListDomainsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDomainsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDomainsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDomainsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListDomainsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListDomainsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListIntegrationsCommand.ts b/clients/client-customer-profiles/commands/ListIntegrationsCommand.ts new file mode 100644 index 0000000000000..1293d2c7f660d --- /dev/null +++ b/clients/client-customer-profiles/commands/ListIntegrationsCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListIntegrationsRequest, ListIntegrationsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListIntegrationsCommand, + serializeAws_restJson1ListIntegrationsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListIntegrationsCommandInput = ListIntegrationsRequest; +export type ListIntegrationsCommandOutput = ListIntegrationsResponse & __MetadataBearer; + +/** + *

Lists all of the integrations in your domain.

+ */ +export class ListIntegrationsCommand extends $Command< + ListIntegrationsCommandInput, + ListIntegrationsCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListIntegrationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListIntegrationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListIntegrationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListIntegrationsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListIntegrationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListIntegrationsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListIntegrationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListProfileObjectTypeTemplatesCommand.ts b/clients/client-customer-profiles/commands/ListProfileObjectTypeTemplatesCommand.ts new file mode 100644 index 0000000000000..48210c568f2db --- /dev/null +++ b/clients/client-customer-profiles/commands/ListProfileObjectTypeTemplatesCommand.ts @@ -0,0 +1,94 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListProfileObjectTypeTemplatesRequest, ListProfileObjectTypeTemplatesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListProfileObjectTypeTemplatesCommand, + serializeAws_restJson1ListProfileObjectTypeTemplatesCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListProfileObjectTypeTemplatesCommandInput = ListProfileObjectTypeTemplatesRequest; +export type ListProfileObjectTypeTemplatesCommandOutput = ListProfileObjectTypeTemplatesResponse & __MetadataBearer; + +/** + *

Lists all of the template information for object types.

+ */ +export class ListProfileObjectTypeTemplatesCommand extends $Command< + ListProfileObjectTypeTemplatesCommandInput, + ListProfileObjectTypeTemplatesCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListProfileObjectTypeTemplatesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListProfileObjectTypeTemplatesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListProfileObjectTypeTemplatesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListProfileObjectTypeTemplatesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListProfileObjectTypeTemplatesCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1ListProfileObjectTypeTemplatesCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ListProfileObjectTypeTemplatesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListProfileObjectTypesCommand.ts b/clients/client-customer-profiles/commands/ListProfileObjectTypesCommand.ts new file mode 100644 index 0000000000000..ba29a8547303b --- /dev/null +++ b/clients/client-customer-profiles/commands/ListProfileObjectTypesCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListProfileObjectTypesRequest, ListProfileObjectTypesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListProfileObjectTypesCommand, + serializeAws_restJson1ListProfileObjectTypesCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListProfileObjectTypesCommandInput = ListProfileObjectTypesRequest; +export type ListProfileObjectTypesCommandOutput = ListProfileObjectTypesResponse & __MetadataBearer; + +/** + *

Lists all of the templates available within the service.

+ */ +export class ListProfileObjectTypesCommand extends $Command< + ListProfileObjectTypesCommandInput, + ListProfileObjectTypesCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListProfileObjectTypesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListProfileObjectTypesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListProfileObjectTypesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListProfileObjectTypesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListProfileObjectTypesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListProfileObjectTypesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListProfileObjectTypesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListProfileObjectsCommand.ts b/clients/client-customer-profiles/commands/ListProfileObjectsCommand.ts new file mode 100644 index 0000000000000..0c26048bec44e --- /dev/null +++ b/clients/client-customer-profiles/commands/ListProfileObjectsCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListProfileObjectsRequest, ListProfileObjectsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListProfileObjectsCommand, + serializeAws_restJson1ListProfileObjectsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListProfileObjectsCommandInput = ListProfileObjectsRequest; +export type ListProfileObjectsCommandOutput = ListProfileObjectsResponse & __MetadataBearer; + +/** + *

Returns a list of objects associated with a profile of a given ProfileObjectType.

+ */ +export class ListProfileObjectsCommand extends $Command< + ListProfileObjectsCommandInput, + ListProfileObjectsCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListProfileObjectsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListProfileObjectsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListProfileObjectsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListProfileObjectsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListProfileObjectsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListProfileObjectsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListProfileObjectsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/ListTagsForResourceCommand.ts b/clients/client-customer-profiles/commands/ListTagsForResourceCommand.ts new file mode 100644 index 0000000000000..88359a5d98d3d --- /dev/null +++ b/clients/client-customer-profiles/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,90 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListTagsForResourceCommand, + serializeAws_restJson1ListTagsForResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; +export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; + +/** + *

Displays the tags associated with an Amazon Connect Customer Profiles resource. In + * Connect Customer Profiles, domains, profile object types, and integrations can be + * tagged.

+ */ +export class ListTagsForResourceCommand extends $Command< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTagsForResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "ListTagsForResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTagsForResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTagsForResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTagsForResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListTagsForResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListTagsForResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/PutIntegrationCommand.ts b/clients/client-customer-profiles/commands/PutIntegrationCommand.ts new file mode 100644 index 0000000000000..b0a829549e495 --- /dev/null +++ b/clients/client-customer-profiles/commands/PutIntegrationCommand.ts @@ -0,0 +1,90 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { PutIntegrationRequest, PutIntegrationResponse } from "../models/models_0"; +import { + deserializeAws_restJson1PutIntegrationCommand, + serializeAws_restJson1PutIntegrationCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type PutIntegrationCommandInput = PutIntegrationRequest; +export type PutIntegrationCommandOutput = PutIntegrationResponse & __MetadataBearer; + +/** + *

Adds an integration between the service and a third-party service, which includes Amazon + * AppFlow and Amazon Connect.

+ *

An integration can belong to only one domain.

+ */ +export class PutIntegrationCommand extends $Command< + PutIntegrationCommandInput, + PutIntegrationCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutIntegrationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "PutIntegrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutIntegrationRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutIntegrationResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutIntegrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1PutIntegrationCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1PutIntegrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/PutProfileObjectCommand.ts b/clients/client-customer-profiles/commands/PutProfileObjectCommand.ts new file mode 100644 index 0000000000000..f023760478302 --- /dev/null +++ b/clients/client-customer-profiles/commands/PutProfileObjectCommand.ts @@ -0,0 +1,97 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { PutProfileObjectRequest, PutProfileObjectResponse } from "../models/models_0"; +import { + deserializeAws_restJson1PutProfileObjectCommand, + serializeAws_restJson1PutProfileObjectCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type PutProfileObjectCommandInput = PutProfileObjectRequest; +export type PutProfileObjectCommandOutput = PutProfileObjectResponse & __MetadataBearer; + +/** + *

Adds additional objects to customer profiles of a given ObjectType.

+ *

When adding a specific profile object, like a Contact Trace Record (CTR), an inferred + * profile can get created if it is not mapped to an existing profile. The resulting profile + * will only have a phone number populated in the standard ProfileObject. Any additional CTRs + * with the same phone number will be mapped to the same inferred profile.

+ *

When a ProfileObject is created and if a ProfileObjectType already exists for the + * ProfileObject, it will provide data to a standard profile depending on the + * ProfileObjectType definition.

+ *

PutProfileObject needs an ObjectType, which can be created using + * PutProfileObjectType.

+ */ +export class PutProfileObjectCommand extends $Command< + PutProfileObjectCommandInput, + PutProfileObjectCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutProfileObjectCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "PutProfileObjectCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutProfileObjectRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutProfileObjectResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutProfileObjectCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1PutProfileObjectCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1PutProfileObjectCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/PutProfileObjectTypeCommand.ts b/clients/client-customer-profiles/commands/PutProfileObjectTypeCommand.ts new file mode 100644 index 0000000000000..1973b0e1a9ea4 --- /dev/null +++ b/clients/client-customer-profiles/commands/PutProfileObjectTypeCommand.ts @@ -0,0 +1,88 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { PutProfileObjectTypeRequest, PutProfileObjectTypeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1PutProfileObjectTypeCommand, + serializeAws_restJson1PutProfileObjectTypeCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type PutProfileObjectTypeCommandInput = PutProfileObjectTypeRequest; +export type PutProfileObjectTypeCommandOutput = PutProfileObjectTypeResponse & __MetadataBearer; + +/** + *

Defines a ProfileObjectType.

+ */ +export class PutProfileObjectTypeCommand extends $Command< + PutProfileObjectTypeCommandInput, + PutProfileObjectTypeCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutProfileObjectTypeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "PutProfileObjectTypeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutProfileObjectTypeRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutProfileObjectTypeResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutProfileObjectTypeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1PutProfileObjectTypeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1PutProfileObjectTypeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/SearchProfilesCommand.ts b/clients/client-customer-profiles/commands/SearchProfilesCommand.ts new file mode 100644 index 0000000000000..3aa68ec34a6cc --- /dev/null +++ b/clients/client-customer-profiles/commands/SearchProfilesCommand.ts @@ -0,0 +1,89 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { SearchProfilesRequest, SearchProfilesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1SearchProfilesCommand, + serializeAws_restJson1SearchProfilesCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type SearchProfilesCommandInput = SearchProfilesRequest; +export type SearchProfilesCommandOutput = SearchProfilesResponse & __MetadataBearer; + +/** + *

Searches for profiles within a specific domain name using name, phone number, email + * address, account number, or a custom defined index.

+ */ +export class SearchProfilesCommand extends $Command< + SearchProfilesCommandInput, + SearchProfilesCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: SearchProfilesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "SearchProfilesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: SearchProfilesRequest.filterSensitiveLog, + outputFilterSensitiveLog: SearchProfilesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: SearchProfilesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1SearchProfilesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1SearchProfilesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/TagResourceCommand.ts b/clients/client-customer-profiles/commands/TagResourceCommand.ts new file mode 100644 index 0000000000000..3785c4e242715 --- /dev/null +++ b/clients/client-customer-profiles/commands/TagResourceCommand.ts @@ -0,0 +1,99 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1TagResourceCommand, + serializeAws_restJson1TagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type TagResourceCommandInput = TagResourceRequest; +export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; + +/** + *

Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer + * Profiles resource. Tags can help you organize and categorize your resources. You can also + * use them to scope user permissions by granting a user permission to access or change only + * resources with certain tag values. In Connect Customer Profiles, domains, profile object + * types, and integrations can be tagged.

+ *

Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of + * characters.

+ *

You can use the TagResource action with a resource that already has tags. If you specify + * a new tag key, this tag is appended to the list of tags associated with the resource. If + * you specify a tag key that is already associated with the resource, the new tag value that + * you specify replaces the previous value for that tag.

+ *

You can associate as many as 50 tags with a resource.

+ */ +export class TagResourceCommand extends $Command< + TagResourceCommandInput, + TagResourceCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: TagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "TagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: TagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: TagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: TagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1TagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1TagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/UntagResourceCommand.ts b/clients/client-customer-profiles/commands/UntagResourceCommand.ts new file mode 100644 index 0000000000000..72d8316c80ef5 --- /dev/null +++ b/clients/client-customer-profiles/commands/UntagResourceCommand.ts @@ -0,0 +1,90 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UntagResourceCommand, + serializeAws_restJson1UntagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UntagResourceCommandInput = UntagResourceRequest; +export type UntagResourceCommandOutput = UntagResourceResponse & __MetadataBearer; + +/** + *

Removes one or more tags from the specified Amazon Connect Customer Profiles resource. + * In Connect Customer Profiles, domains, profile object types, and integrations can be + * tagged.

+ */ +export class UntagResourceCommand extends $Command< + UntagResourceCommandInput, + UntagResourceCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UntagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "UntagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UntagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: UntagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UntagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UntagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UntagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/UpdateDomainCommand.ts b/clients/client-customer-profiles/commands/UpdateDomainCommand.ts new file mode 100644 index 0000000000000..da4c79c42359b --- /dev/null +++ b/clients/client-customer-profiles/commands/UpdateDomainCommand.ts @@ -0,0 +1,90 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { UpdateDomainRequest, UpdateDomainResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateDomainCommand, + serializeAws_restJson1UpdateDomainCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateDomainCommandInput = UpdateDomainRequest; +export type UpdateDomainCommandOutput = UpdateDomainResponse & __MetadataBearer; + +/** + *

Updates the properties of a domain, including creating or selecting a dead letter queue + * or an encryption key.

+ *

Once a domain is created, the name can’t be changed.

+ */ +export class UpdateDomainCommand extends $Command< + UpdateDomainCommandInput, + UpdateDomainCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateDomainCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "UpdateDomainCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateDomainRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateDomainResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateDomainCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateDomainCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateDomainCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/commands/UpdateProfileCommand.ts b/clients/client-customer-profiles/commands/UpdateProfileCommand.ts new file mode 100644 index 0000000000000..5cb6061c77f74 --- /dev/null +++ b/clients/client-customer-profiles/commands/UpdateProfileCommand.ts @@ -0,0 +1,92 @@ +import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { UpdateProfileRequest, UpdateProfileResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateProfileCommand, + serializeAws_restJson1UpdateProfileCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateProfileCommandInput = UpdateProfileRequest; +export type UpdateProfileCommandOutput = UpdateProfileResponse & __MetadataBearer; + +/** + *

Updates the properties of a profile. The ProfileId is required for updating a customer + * profile.

+ *

When calling the UpdateProfile API, specifying an empty string value means that any + * existing value will be removed. Not specifying a string value means that any value already + * there will be kept.

+ */ +export class UpdateProfileCommand extends $Command< + UpdateProfileCommandInput, + UpdateProfileCommandOutput, + CustomerProfilesClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: CustomerProfilesClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "CustomerProfilesClient"; + const commandName = "UpdateProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateProfileRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateProfileResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-customer-profiles/endpoints.ts b/clients/client-customer-profiles/endpoints.ts new file mode 100644 index 0000000000000..8db6638953e58 --- /dev/null +++ b/clients/client-customer-profiles/endpoints.ts @@ -0,0 +1,81 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "profile.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "profile.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "profile.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "profile.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "profile.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-east-1", "us-gov-west-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region), + partition: "aws-cn", + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region), + partition: "aws-iso", + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), + partition: "aws-iso-b", + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), + partition: "aws-us-gov", + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-customer-profiles/index.ts b/clients/client-customer-profiles/index.ts new file mode 100644 index 0000000000000..f63e79440c6a9 --- /dev/null +++ b/clients/client-customer-profiles/index.ts @@ -0,0 +1,31 @@ +export * from "./CustomerProfilesClient"; +export * from "./CustomerProfiles"; +export * from "./commands/AddProfileKeyCommand"; +export * from "./commands/CreateDomainCommand"; +export * from "./commands/CreateProfileCommand"; +export * from "./commands/DeleteDomainCommand"; +export * from "./commands/DeleteIntegrationCommand"; +export * from "./commands/DeleteProfileCommand"; +export * from "./commands/DeleteProfileKeyCommand"; +export * from "./commands/DeleteProfileObjectCommand"; +export * from "./commands/DeleteProfileObjectTypeCommand"; +export * from "./commands/GetDomainCommand"; +export * from "./commands/GetIntegrationCommand"; +export * from "./commands/GetProfileObjectTypeCommand"; +export * from "./commands/GetProfileObjectTypeTemplateCommand"; +export * from "./commands/ListAccountIntegrationsCommand"; +export * from "./commands/ListDomainsCommand"; +export * from "./commands/ListIntegrationsCommand"; +export * from "./commands/ListProfileObjectsCommand"; +export * from "./commands/ListProfileObjectTypesCommand"; +export * from "./commands/ListProfileObjectTypeTemplatesCommand"; +export * from "./commands/ListTagsForResourceCommand"; +export * from "./commands/PutIntegrationCommand"; +export * from "./commands/PutProfileObjectCommand"; +export * from "./commands/PutProfileObjectTypeCommand"; +export * from "./commands/SearchProfilesCommand"; +export * from "./commands/TagResourceCommand"; +export * from "./commands/UntagResourceCommand"; +export * from "./commands/UpdateDomainCommand"; +export * from "./commands/UpdateProfileCommand"; +export * from "./models/index"; diff --git a/clients/client-customer-profiles/models/index.ts b/clients/client-customer-profiles/models/index.ts new file mode 100644 index 0000000000000..09c5d6e09b8c5 --- /dev/null +++ b/clients/client-customer-profiles/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-customer-profiles/models/models_0.ts b/clients/client-customer-profiles/models/models_0.ts new file mode 100644 index 0000000000000..a12fbe5a61a1b --- /dev/null +++ b/clients/client-customer-profiles/models/models_0.ts @@ -0,0 +1,2165 @@ +import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +/** + *

You do not have sufficient access to perform this action.

+ */ +export interface AccessDeniedException extends __SmithyException, $MetadataBearer { + name: "AccessDeniedException"; + $fault: "client"; + Message?: string; +} + +export namespace AccessDeniedException { + export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ + ...obj, + }); +} + +export interface AddProfileKeyRequest { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; + + /** + *

A searchable identifier of a customer profile.

+ */ + KeyName: string | undefined; + + /** + *

A list of key values.

+ */ + Values: string[] | undefined; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace AddProfileKeyRequest { + export const filterSensitiveLog = (obj: AddProfileKeyRequest): any => ({ + ...obj, + }); +} + +export interface AddProfileKeyResponse { + /** + *

A searchable identifier of a customer profile.

+ */ + KeyName?: string; + + /** + *

A list of key values.

+ */ + Values?: string[]; +} + +export namespace AddProfileKeyResponse { + export const filterSensitiveLog = (obj: AddProfileKeyResponse): any => ({ + ...obj, + }); +} + +/** + *

The input you provided is invalid.

+ */ +export interface BadRequestException extends __SmithyException, $MetadataBearer { + name: "BadRequestException"; + $fault: "client"; + Message?: string; +} + +export namespace BadRequestException { + export const filterSensitiveLog = (obj: BadRequestException): any => ({ + ...obj, + }); +} + +/** + *

An internal service error occurred.

+ */ +export interface InternalServerException extends __SmithyException, $MetadataBearer { + name: "InternalServerException"; + $fault: "server"; + Message?: string; +} + +export namespace InternalServerException { + export const filterSensitiveLog = (obj: InternalServerException): any => ({ + ...obj, + }); +} + +/** + *

The requested resource does not exist, or access was denied.

+ */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotFoundException { + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +/** + *

You exceeded the maximum number of requests.

+ */ +export interface ThrottlingException extends __SmithyException, $MetadataBearer { + name: "ThrottlingException"; + $fault: "client"; + Message?: string; +} + +export namespace ThrottlingException { + export const filterSensitiveLog = (obj: ThrottlingException): any => ({ + ...obj, + }); +} + +/** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ */ +export interface Address { + /** + *

The first line of a customer address.

+ */ + Address1?: string; + + /** + *

The second line of a customer address.

+ */ + Address2?: string; + + /** + *

The third line of a customer address.

+ */ + Address3?: string; + + /** + *

The fourth line of a customer address.

+ */ + Address4?: string; + + /** + *

The city in which a customer lives.

+ */ + City?: string; + + /** + *

The county in which a customer lives.

+ */ + County?: string; + + /** + *

The state in which a customer lives.

+ */ + State?: string; + + /** + *

The province in which a customer lives.

+ */ + Province?: string; + + /** + *

The country in which a customer lives.

+ */ + Country?: string; + + /** + *

The postal code of a customer address.

+ */ + PostalCode?: string; +} + +export namespace Address { + export const filterSensitiveLog = (obj: Address): any => ({ + ...obj, + }); +} + +export interface CreateDomainRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The default number of days until the data within the domain expires.

+ */ + DefaultExpirationDays: number | undefined; + + /** + *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ */ + DefaultEncryptionKey?: string; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications. You must set up a policy on the + * DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to + * send messages to the DeadLetterQueue.

+ */ + DeadLetterQueueUrl?: string; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace CreateDomainRequest { + export const filterSensitiveLog = (obj: CreateDomainRequest): any => ({ + ...obj, + }); +} + +export interface CreateDomainResponse { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The default number of days until the data within the domain expires.

+ */ + DefaultExpirationDays: number | undefined; + + /** + *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ */ + DefaultEncryptionKey?: string; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications.

+ */ + DeadLetterQueueUrl?: string; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace CreateDomainResponse { + export const filterSensitiveLog = (obj: CreateDomainResponse): any => ({ + ...obj, + }); +} + +export enum Gender { + FEMALE = "FEMALE", + MALE = "MALE", + UNSPECIFIED = "UNSPECIFIED", +} + +export enum PartyType { + BUSINESS = "BUSINESS", + INDIVIDUAL = "INDIVIDUAL", + OTHER = "OTHER", +} + +export interface CreateProfileRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

A unique account number that you have given to the customer.

+ */ + AccountNumber?: string; + + /** + *

Any additional information relevant to the customer's profile.

+ */ + AdditionalInformation?: string; + + /** + *

The type of profile used to describe the customer.

+ */ + PartyType?: PartyType | string; + + /** + *

The name of the customer’s business.

+ */ + BusinessName?: string; + + /** + *

The customer’s first name.

+ */ + FirstName?: string; + + /** + *

The customer’s middle name.

+ */ + MiddleName?: string; + + /** + *

The customer’s last name.

+ */ + LastName?: string; + + /** + *

The customer’s birth date.

+ */ + BirthDate?: string; + + /** + *

The gender with which the customer identifies.

+ */ + Gender?: Gender | string; + + /** + *

The customer's phone number, which has not been specified as a mobile, home, or business + * number.

+ */ + PhoneNumber?: string; + + /** + *

The customer’s mobile phone number.

+ */ + MobilePhoneNumber?: string; + + /** + *

The customer’s home phone number.

+ */ + HomePhoneNumber?: string; + + /** + *

The customer’s business phone number.

+ */ + BusinessPhoneNumber?: string; + + /** + *

The customer's email address, which has not been specified as a personal or business + * address.

+ */ + EmailAddress?: string; + + /** + *

The customer’s personal email address.

+ */ + PersonalEmailAddress?: string; + + /** + *

The customer’s business email address.

+ */ + BusinessEmailAddress?: string; + + /** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ */ + Address?: Address; + + /** + *

The customer’s shipping address.

+ */ + ShippingAddress?: Address; + + /** + *

The customer’s mailing address.

+ */ + MailingAddress?: Address; + + /** + *

The customer’s billing address.

+ */ + BillingAddress?: Address; + + /** + *

A key value pair of attributes of a customer profile.

+ */ + Attributes?: { [key: string]: string }; +} + +export namespace CreateProfileRequest { + export const filterSensitiveLog = (obj: CreateProfileRequest): any => ({ + ...obj, + }); +} + +export interface CreateProfileResponse { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; +} + +export namespace CreateProfileResponse { + export const filterSensitiveLog = (obj: CreateProfileResponse): any => ({ + ...obj, + }); +} + +export interface DeleteDomainRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace DeleteDomainRequest { + export const filterSensitiveLog = (obj: DeleteDomainRequest): any => ({ + ...obj, + }); +} + +export interface DeleteDomainResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message: string | undefined; +} + +export namespace DeleteDomainResponse { + export const filterSensitiveLog = (obj: DeleteDomainResponse): any => ({ + ...obj, + }); +} + +export interface DeleteIntegrationRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri?: string; +} + +export namespace DeleteIntegrationRequest { + export const filterSensitiveLog = (obj: DeleteIntegrationRequest): any => ({ + ...obj, + }); +} + +export interface DeleteIntegrationResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message: string | undefined; +} + +export namespace DeleteIntegrationResponse { + export const filterSensitiveLog = (obj: DeleteIntegrationResponse): any => ({ + ...obj, + }); +} + +export interface DeleteProfileRequest { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace DeleteProfileRequest { + export const filterSensitiveLog = (obj: DeleteProfileRequest): any => ({ + ...obj, + }); +} + +export interface DeleteProfileResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message?: string; +} + +export namespace DeleteProfileResponse { + export const filterSensitiveLog = (obj: DeleteProfileResponse): any => ({ + ...obj, + }); +} + +export interface DeleteProfileKeyRequest { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; + + /** + *

A searchable identifier of a customer profile.

+ */ + KeyName: string | undefined; + + /** + *

A list of key values.

+ */ + Values: string[] | undefined; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace DeleteProfileKeyRequest { + export const filterSensitiveLog = (obj: DeleteProfileKeyRequest): any => ({ + ...obj, + }); +} + +export interface DeleteProfileKeyResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message?: string; +} + +export namespace DeleteProfileKeyResponse { + export const filterSensitiveLog = (obj: DeleteProfileKeyResponse): any => ({ + ...obj, + }); +} + +export interface DeleteProfileObjectRequest { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; + + /** + *

The unique identifier of the profile object generated by the service.

+ */ + ProfileObjectUniqueKey: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace DeleteProfileObjectRequest { + export const filterSensitiveLog = (obj: DeleteProfileObjectRequest): any => ({ + ...obj, + }); +} + +export interface DeleteProfileObjectResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message?: string; +} + +export namespace DeleteProfileObjectResponse { + export const filterSensitiveLog = (obj: DeleteProfileObjectResponse): any => ({ + ...obj, + }); +} + +export interface DeleteProfileObjectTypeRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; +} + +export namespace DeleteProfileObjectTypeRequest { + export const filterSensitiveLog = (obj: DeleteProfileObjectTypeRequest): any => ({ + ...obj, + }); +} + +export interface DeleteProfileObjectTypeResponse { + /** + *

A message that indicates the delete request is done.

+ */ + Message: string | undefined; +} + +export namespace DeleteProfileObjectTypeResponse { + export const filterSensitiveLog = (obj: DeleteProfileObjectTypeResponse): any => ({ + ...obj, + }); +} + +export interface GetDomainRequest { + /** + *

A unique name for the domain.

+ */ + DomainName: string | undefined; +} + +export namespace GetDomainRequest { + export const filterSensitiveLog = (obj: GetDomainRequest): any => ({ + ...obj, + }); +} + +/** + *

Usage-specific statistics about the domain.

+ */ +export interface DomainStats { + /** + *

The total number of profiles currently in the domain.

+ */ + ProfileCount?: number; + + /** + *

The number of profiles that you are currently paying for in the domain. If you have more + * than 100 objects associated with a single profile, that profile counts as two profiles. If + * you have more than 200 objects, that profile counts as three, and so on.

+ */ + MeteringProfileCount?: number; + + /** + *

The total number of objects in domain.

+ */ + ObjectCount?: number; + + /** + *

The total size, in bytes, of all objects in the domain.

+ */ + TotalSize?: number; +} + +export namespace DomainStats { + export const filterSensitiveLog = (obj: DomainStats): any => ({ + ...obj, + }); +} + +export interface GetDomainResponse { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The default number of days until the data within the domain expires.

+ */ + DefaultExpirationDays?: number; + + /** + *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ */ + DefaultEncryptionKey?: string; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications.

+ */ + DeadLetterQueueUrl?: string; + + /** + *

Usage-specific statistics about the domain.

+ */ + Stats?: DomainStats; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace GetDomainResponse { + export const filterSensitiveLog = (obj: GetDomainResponse): any => ({ + ...obj, + }); +} + +export interface GetIntegrationRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri?: string; +} + +export namespace GetIntegrationRequest { + export const filterSensitiveLog = (obj: GetIntegrationRequest): any => ({ + ...obj, + }); +} + +export interface GetIntegrationResponse { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace GetIntegrationResponse { + export const filterSensitiveLog = (obj: GetIntegrationResponse): any => ({ + ...obj, + }); +} + +export interface GetProfileObjectTypeRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; +} + +export namespace GetProfileObjectTypeRequest { + export const filterSensitiveLog = (obj: GetProfileObjectTypeRequest): any => ({ + ...obj, + }); +} + +export enum FieldContentType { + EMAIL_ADDRESS = "EMAIL_ADDRESS", + NAME = "NAME", + NUMBER = "NUMBER", + PHONE_NUMBER = "PHONE_NUMBER", + STRING = "STRING", +} + +/** + *

Represents a field in a ProfileObjectType.

+ */ +export interface ObjectTypeField { + /** + *

A field of a ProfileObject. For example: _source.FirstName, where “_source” is a + * ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

+ */ + Source?: string; + + /** + *

The location of the data in the standard ProfileObject model. For example: + * _profile.Address.PostalCode.

+ */ + Target?: string; + + /** + *

The content type of the field. Used for determining equality when searching.

+ */ + ContentType?: FieldContentType | string; +} + +export namespace ObjectTypeField { + export const filterSensitiveLog = (obj: ObjectTypeField): any => ({ + ...obj, + }); +} + +export enum StandardIdentifier { + LOOKUP_ONLY = "LOOKUP_ONLY", + NEW_ONLY = "NEW_ONLY", + PROFILE = "PROFILE", + SECONDARY = "SECONDARY", + UNIQUE = "UNIQUE", +} + +/** + *

An object that defines the Key element of a ProfileObject. A Key is a special element + * that can be used to search for a customer profile.

+ */ +export interface ObjectTypeKey { + /** + *

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 + * UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be used to tie an + * object to a PROFILE. UNIQUE means that it can be used to uniquely identify an object. If a + * key a is marked as SECONDARY, it will be used to search for profiles after all other + * PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is + * not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the + * profile does not already exist before the object is ingested, otherwise it is only used for + * matching objects to profiles.

+ */ + StandardIdentifiers?: (StandardIdentifier | string)[]; + + /** + *

The reference for the key name of the fields map.

+ */ + FieldNames?: string[]; +} + +export namespace ObjectTypeKey { + export const filterSensitiveLog = (obj: ObjectTypeKey): any => ({ + ...obj, + }); +} + +export interface GetProfileObjectTypeResponse { + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The description of the profile object type.

+ */ + Description: string | undefined; + + /** + *

A unique identifier for the object template.

+ */ + TemplateId?: string; + + /** + *

The number of days until the data in the object expires.

+ */ + ExpirationDays?: number; + + /** + *

The customer-provided key to encrypt the profile object that will be created in this + * profile object type.

+ */ + EncryptionKey?: string; + + /** + *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

+ */ + AllowProfileCreation?: boolean; + + /** + *

A map of the name and ObjectType field.

+ */ + Fields?: { [key: string]: ObjectTypeField }; + + /** + *

A list of unique keys that can be used to map data to the profile.

+ */ + Keys?: { [key: string]: ObjectTypeKey[] }; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt?: Date; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt?: Date; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace GetProfileObjectTypeResponse { + export const filterSensitiveLog = (obj: GetProfileObjectTypeResponse): any => ({ + ...obj, + }); +} + +export interface GetProfileObjectTypeTemplateRequest { + /** + *

A unique identifier for the object template.

+ */ + TemplateId: string | undefined; +} + +export namespace GetProfileObjectTypeTemplateRequest { + export const filterSensitiveLog = (obj: GetProfileObjectTypeTemplateRequest): any => ({ + ...obj, + }); +} + +export interface GetProfileObjectTypeTemplateResponse { + /** + *

A unique identifier for the object template.

+ */ + TemplateId?: string; + + /** + *

The name of the source of the object template.

+ */ + SourceName?: string; + + /** + *

The source of the object template.

+ */ + SourceObject?: string; + + /** + *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

+ */ + AllowProfileCreation?: boolean; + + /** + *

A map of the name and ObjectType field.

+ */ + Fields?: { [key: string]: ObjectTypeField }; + + /** + *

A list of unique keys that can be used to map data to the profile.

+ */ + Keys?: { [key: string]: ObjectTypeKey[] }; +} + +export namespace GetProfileObjectTypeTemplateResponse { + export const filterSensitiveLog = (obj: GetProfileObjectTypeTemplateResponse): any => ({ + ...obj, + }); +} + +export interface ListAccountIntegrationsRequest { + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri: string | undefined; + + /** + *

The pagination token from the previous ListAccountIntegrations API call.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; +} + +export namespace ListAccountIntegrationsRequest { + export const filterSensitiveLog = (obj: ListAccountIntegrationsRequest): any => ({ + ...obj, + }); +} + +/** + *

An integration in list of integrations.

+ */ +export interface ListIntegrationItem { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace ListIntegrationItem { + export const filterSensitiveLog = (obj: ListIntegrationItem): any => ({ + ...obj, + }); +} + +export interface ListAccountIntegrationsResponse { + /** + *

The list of ListAccountIntegration instances.

+ */ + Items?: ListIntegrationItem[]; + + /** + *

The pagination token from the previous ListAccountIntegrations API call.

+ */ + NextToken?: string; +} + +export namespace ListAccountIntegrationsResponse { + export const filterSensitiveLog = (obj: ListAccountIntegrationsResponse): any => ({ + ...obj, + }); +} + +export interface ListDomainsRequest { + /** + *

The pagination token from the previous ListDomain API call.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; +} + +export namespace ListDomainsRequest { + export const filterSensitiveLog = (obj: ListDomainsRequest): any => ({ + ...obj, + }); +} + +/** + *

An object in a list that represents a domain.

+ */ +export interface ListDomainItem { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace ListDomainItem { + export const filterSensitiveLog = (obj: ListDomainItem): any => ({ + ...obj, + }); +} + +export interface ListDomainsResponse { + /** + *

The list of ListDomains instances.

+ */ + Items?: ListDomainItem[]; + + /** + *

The pagination token from the previous ListDomains API call.

+ */ + NextToken?: string; +} + +export namespace ListDomainsResponse { + export const filterSensitiveLog = (obj: ListDomainsResponse): any => ({ + ...obj, + }); +} + +export interface ListIntegrationsRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The pagination token from the previous ListIntegrations API call.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; +} + +export namespace ListIntegrationsRequest { + export const filterSensitiveLog = (obj: ListIntegrationsRequest): any => ({ + ...obj, + }); +} + +export interface ListIntegrationsResponse { + /** + *

The list of ListIntegrations instances.

+ */ + Items?: ListIntegrationItem[]; + + /** + *

The pagination token from the previous ListIntegrations API call.

+ */ + NextToken?: string; +} + +export namespace ListIntegrationsResponse { + export const filterSensitiveLog = (obj: ListIntegrationsResponse): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectsRequest { + /** + *

The pagination token from the previous call to ListProfileObjects.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; +} + +export namespace ListProfileObjectsRequest { + export const filterSensitiveLog = (obj: ListProfileObjectsRequest): any => ({ + ...obj, + }); +} + +/** + *

A ProfileObject in a list of ProfileObjects.

+ */ +export interface ListProfileObjectsItem { + /** + *

Specifies the kind of object being added to a profile, such as + * "Salesforce-Account."

+ */ + ObjectTypeName?: string; + + /** + *

The unique identifier of the ProfileObject generated by the service.

+ */ + ProfileObjectUniqueKey?: string; + + /** + *

A JSON representation of a ProfileObject that belongs to a profile.

+ */ + Object?: string; +} + +export namespace ListProfileObjectsItem { + export const filterSensitiveLog = (obj: ListProfileObjectsItem): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectsResponse { + /** + *

The list of ListProfileObject instances.

+ */ + Items?: ListProfileObjectsItem[]; + + /** + *

The pagination token from the previous call to ListProfileObjects.

+ */ + NextToken?: string; +} + +export namespace ListProfileObjectsResponse { + export const filterSensitiveLog = (obj: ListProfileObjectsResponse): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectTypesRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

Identifies the next page of results to return.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; +} + +export namespace ListProfileObjectTypesRequest { + export const filterSensitiveLog = (obj: ListProfileObjectTypesRequest): any => ({ + ...obj, + }); +} + +/** + *

A ProfileObjectType instance.

+ */ +export interface ListProfileObjectTypeItem { + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

Description of the profile object type.

+ */ + Description: string | undefined; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt?: Date; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt?: Date; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace ListProfileObjectTypeItem { + export const filterSensitiveLog = (obj: ListProfileObjectTypeItem): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectTypesResponse { + /** + *

The list of ListProfileObjectTypes instances.

+ */ + Items?: ListProfileObjectTypeItem[]; + + /** + *

Identifies the next page of results to return.

+ */ + NextToken?: string; +} + +export namespace ListProfileObjectTypesResponse { + export const filterSensitiveLog = (obj: ListProfileObjectTypesResponse): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectTypeTemplatesRequest { + /** + *

The pagination token from the previous ListObjectTypeTemplates API call.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; +} + +export namespace ListProfileObjectTypeTemplatesRequest { + export const filterSensitiveLog = (obj: ListProfileObjectTypeTemplatesRequest): any => ({ + ...obj, + }); +} + +/** + *

A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.

+ */ +export interface ListProfileObjectTypeTemplateItem { + /** + *

A unique identifier for the object template.

+ */ + TemplateId?: string; + + /** + *

The name of the source of the object template.

+ */ + SourceName?: string; + + /** + *

The source of the object template.

+ */ + SourceObject?: string; +} + +export namespace ListProfileObjectTypeTemplateItem { + export const filterSensitiveLog = (obj: ListProfileObjectTypeTemplateItem): any => ({ + ...obj, + }); +} + +export interface ListProfileObjectTypeTemplatesResponse { + /** + *

The list of ListProfileObjectType template instances.

+ */ + Items?: ListProfileObjectTypeTemplateItem[]; + + /** + *

The pagination token from the previous ListObjectTypeTemplates API call.

+ */ + NextToken?: string; +} + +export namespace ListProfileObjectTypeTemplatesResponse { + export const filterSensitiveLog = (obj: ListProfileObjectTypeTemplatesResponse): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceRequest { + /** + *

The ARN of the resource for which you want to view tags.

+ */ + resourceArn: string | undefined; +} + +export namespace ListTagsForResourceRequest { + export const filterSensitiveLog = (obj: ListTagsForResourceRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceResponse { + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + tags?: { [key: string]: string }; +} + +export namespace ListTagsForResourceResponse { + export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ + ...obj, + }); +} + +export interface PutIntegrationRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace PutIntegrationRequest { + export const filterSensitiveLog = (obj: PutIntegrationRequest): any => ({ + ...obj, + }); +} + +export interface PutIntegrationResponse { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The URI of the S3 bucket or any other type of data source.

+ */ + Uri: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace PutIntegrationResponse { + export const filterSensitiveLog = (obj: PutIntegrationResponse): any => ({ + ...obj, + }); +} + +export interface PutProfileObjectRequest { + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

A string that is serialized from a JSON object.

+ */ + Object: string | undefined; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; +} + +export namespace PutProfileObjectRequest { + export const filterSensitiveLog = (obj: PutProfileObjectRequest): any => ({ + ...obj, + }); +} + +export interface PutProfileObjectResponse { + /** + *

The unique identifier of the profile object generated by the service.

+ */ + ProfileObjectUniqueKey?: string; +} + +export namespace PutProfileObjectResponse { + export const filterSensitiveLog = (obj: PutProfileObjectResponse): any => ({ + ...obj, + }); +} + +export interface PutProfileObjectTypeRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

Description of the profile object type.

+ */ + Description: string | undefined; + + /** + *

A unique identifier for the object template.

+ */ + TemplateId?: string; + + /** + *

The number of days until the data in the object expires.

+ */ + ExpirationDays?: number; + + /** + *

The customer-provided key to encrypt the profile object that will be created in this + * profile object type.

+ */ + EncryptionKey?: string; + + /** + *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

+ */ + AllowProfileCreation?: boolean; + + /** + *

A map of the name and ObjectType field.

+ */ + Fields?: { [key: string]: ObjectTypeField }; + + /** + *

A list of unique keys that can be used to map data to the profile.

+ */ + Keys?: { [key: string]: ObjectTypeKey[] }; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace PutProfileObjectTypeRequest { + export const filterSensitiveLog = (obj: PutProfileObjectTypeRequest): any => ({ + ...obj, + }); +} + +export interface PutProfileObjectTypeResponse { + /** + *

The name of the profile object type.

+ */ + ObjectTypeName: string | undefined; + + /** + *

Description of the profile object type.

+ */ + Description: string | undefined; + + /** + *

A unique identifier for the object template.

+ */ + TemplateId?: string; + + /** + *

The number of days until the data in the object expires.

+ */ + ExpirationDays?: number; + + /** + *

The customer-provided key to encrypt the profile object that will be created in this + * profile object type.

+ */ + EncryptionKey?: string; + + /** + *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

+ */ + AllowProfileCreation?: boolean; + + /** + *

A map of the name and ObjectType field.

+ */ + Fields?: { [key: string]: ObjectTypeField }; + + /** + *

A list of unique keys that can be used to map data to the profile.

+ */ + Keys?: { [key: string]: ObjectTypeKey[] }; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt?: Date; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt?: Date; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace PutProfileObjectTypeResponse { + export const filterSensitiveLog = (obj: PutProfileObjectTypeResponse): any => ({ + ...obj, + }); +} + +export interface SearchProfilesRequest { + /** + *

The pagination token from the previous SearchProfiles API call.

+ */ + NextToken?: string; + + /** + *

The maximum number of objects returned per page.

+ */ + MaxResults?: number; + + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

A searchable identifier of a customer profile. The predefined keys you can use to search + * include: _account, _profileId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, + * _salesforceAccountId, _salesforceContactId, _zendeskUserId, _zendeskExternalId, + * _serviceNowSystemId.

+ */ + KeyName: string | undefined; + + /** + *

A list of key values.

+ */ + Values: string[] | undefined; +} + +export namespace SearchProfilesRequest { + export const filterSensitiveLog = (obj: SearchProfilesRequest): any => ({ + ...obj, + }); +} + +/** + *

The standard profile of a customer.

+ */ +export interface Profile { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId?: string; + + /** + *

A unique account number that you have given to the customer.

+ */ + AccountNumber?: string; + + /** + *

Any additional information relevant to the customer's profile.

+ */ + AdditionalInformation?: string; + + /** + *

The type of profile used to describe the customer.

+ */ + PartyType?: PartyType | string; + + /** + *

The name of the customer’s business.

+ */ + BusinessName?: string; + + /** + *

The customer’s first name.

+ */ + FirstName?: string; + + /** + *

The customer’s middle name.

+ */ + MiddleName?: string; + + /** + *

The customer’s last name.

+ */ + LastName?: string; + + /** + *

The customer’s birth date.

+ */ + BirthDate?: string; + + /** + *

The gender with which the customer identifies.

+ */ + Gender?: Gender | string; + + /** + *

The customer's phone number, which has not been specified as a mobile, home, or business + * number.

+ */ + PhoneNumber?: string; + + /** + *

The customer’s mobile phone number.

+ */ + MobilePhoneNumber?: string; + + /** + *

The customer’s home phone number.

+ */ + HomePhoneNumber?: string; + + /** + *

The customer’s home phone number.

+ */ + BusinessPhoneNumber?: string; + + /** + *

The customer's email address, which has not been specified as a personal or business + * address.

+ */ + EmailAddress?: string; + + /** + *

The customer’s personal email address.

+ */ + PersonalEmailAddress?: string; + + /** + *

The customer’s business email address.

+ */ + BusinessEmailAddress?: string; + + /** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ */ + Address?: Address; + + /** + *

The customer’s shipping address.

+ */ + ShippingAddress?: Address; + + /** + *

The customer’s mailing address.

+ */ + MailingAddress?: Address; + + /** + *

The customer’s billing address.

+ */ + BillingAddress?: Address; + + /** + *

A key value pair of attributes of a customer profile.

+ */ + Attributes?: { [key: string]: string }; +} + +export namespace Profile { + export const filterSensitiveLog = (obj: Profile): any => ({ + ...obj, + }); +} + +export interface SearchProfilesResponse { + /** + *

The list of SearchProfiles instances.

+ */ + Items?: Profile[]; + + /** + *

The pagination token from the previous SearchProfiles API call.

+ */ + NextToken?: string; +} + +export namespace SearchProfilesResponse { + export const filterSensitiveLog = (obj: SearchProfilesResponse): any => ({ + ...obj, + }); +} + +export interface TagResourceRequest { + /** + *

The ARN of the resource that you're adding tags to.

+ */ + resourceArn: string | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + tags: { [key: string]: string } | undefined; +} + +export namespace TagResourceRequest { + export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceResponse {} + +export namespace TagResourceResponse { + export const filterSensitiveLog = (obj: TagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UntagResourceRequest { + /** + *

The ARN of the resource from which you are removing tags.

+ */ + resourceArn: string | undefined; + + /** + *

The list of tag keys to remove from the resource.

+ */ + tagKeys: string[] | undefined; +} + +export namespace UntagResourceRequest { + export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ + ...obj, + }); +} + +export interface UntagResourceResponse {} + +export namespace UntagResourceResponse { + export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UpdateDomainRequest { + /** + *

The unique name for the domain.

+ */ + DomainName: string | undefined; + + /** + *

The default number of days until the data within the domain expires.

+ */ + DefaultExpirationDays?: number; + + /** + *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage. If specified as an empty string, it will clear any + * existing value.

+ */ + DefaultEncryptionKey?: string; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications. If specified as an empty string, it will + * clear any existing value. You must set up a policy on the DeadLetterQueue for the + * SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the + * DeadLetterQueue.

+ */ + DeadLetterQueueUrl?: string; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace UpdateDomainRequest { + export const filterSensitiveLog = (obj: UpdateDomainRequest): any => ({ + ...obj, + }); +} + +export interface UpdateDomainResponse { + /** + *

The unique name for the domain.

+ */ + DomainName: string | undefined; + + /** + *

The default number of days until the data within the domain expires.

+ */ + DefaultExpirationDays?: number; + + /** + *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ */ + DefaultEncryptionKey?: string; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications.

+ */ + DeadLetterQueueUrl?: string; + + /** + *

The timestamp of when the domain was created.

+ */ + CreatedAt: Date | undefined; + + /** + *

The timestamp of when the domain was most recently edited.

+ */ + LastUpdatedAt: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ */ + Tags?: { [key: string]: string }; +} + +export namespace UpdateDomainResponse { + export const filterSensitiveLog = (obj: UpdateDomainResponse): any => ({ + ...obj, + }); +} + +/** + *

Updates associated with the address properties of a customer profile.

+ */ +export interface UpdateAddress { + /** + *

The first line of a customer address.

+ */ + Address1?: string; + + /** + *

The second line of a customer address.

+ */ + Address2?: string; + + /** + *

The third line of a customer address.

+ */ + Address3?: string; + + /** + *

The fourth line of a customer address.

+ */ + Address4?: string; + + /** + *

The city in which a customer lives.

+ */ + City?: string; + + /** + *

The county in which a customer lives.

+ */ + County?: string; + + /** + *

The state in which a customer lives.

+ */ + State?: string; + + /** + *

The province in which a customer lives.

+ */ + Province?: string; + + /** + *

The country in which a customer lives.

+ */ + Country?: string; + + /** + *

The postal code of a customer address.

+ */ + PostalCode?: string; +} + +export namespace UpdateAddress { + export const filterSensitiveLog = (obj: UpdateAddress): any => ({ + ...obj, + }); +} + +export interface UpdateProfileRequest { + /** + *

The unique name of the domain.

+ */ + DomainName: string | undefined; + + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; + + /** + *

Any additional information relevant to the customer's profile.

+ */ + AdditionalInformation?: string; + + /** + *

A unique account number that you have given to the customer.

+ */ + AccountNumber?: string; + + /** + *

The type of profile used to describe the customer.

+ */ + PartyType?: PartyType | string; + + /** + *

The name of the customer’s business.

+ */ + BusinessName?: string; + + /** + *

The customer’s first name.

+ */ + FirstName?: string; + + /** + *

The customer’s middle name.

+ */ + MiddleName?: string; + + /** + *

The customer’s last name.

+ */ + LastName?: string; + + /** + *

The customer’s birth date.

+ */ + BirthDate?: string; + + /** + *

The gender with which the customer identifies.

+ */ + Gender?: Gender | string; + + /** + *

The customer's phone number, which has not been specified as a mobile, home, or business + * number.

+ */ + PhoneNumber?: string; + + /** + *

The customer’s mobile phone number.

+ */ + MobilePhoneNumber?: string; + + /** + *

The customer’s home phone number.

+ */ + HomePhoneNumber?: string; + + /** + *

The customer’s business phone number.

+ */ + BusinessPhoneNumber?: string; + + /** + *

The customer's email address, which has not been specified as a personal or business + * address.

+ */ + EmailAddress?: string; + + /** + *

The customer’s personal email address.

+ */ + PersonalEmailAddress?: string; + + /** + *

The customer’s business email address.

+ */ + BusinessEmailAddress?: string; + + /** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ */ + Address?: UpdateAddress; + + /** + *

The customer’s shipping address.

+ */ + ShippingAddress?: UpdateAddress; + + /** + *

The customer’s mailing address.

+ */ + MailingAddress?: UpdateAddress; + + /** + *

The customer’s billing address.

+ */ + BillingAddress?: UpdateAddress; + + /** + *

A key value pair of attributes of a customer profile.

+ */ + Attributes?: { [key: string]: string }; +} + +export namespace UpdateProfileRequest { + export const filterSensitiveLog = (obj: UpdateProfileRequest): any => ({ + ...obj, + }); +} + +export interface UpdateProfileResponse { + /** + *

The unique identifier of a customer profile.

+ */ + ProfileId: string | undefined; +} + +export namespace UpdateProfileResponse { + export const filterSensitiveLog = (obj: UpdateProfileResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-customer-profiles/package.json b/clients/client-customer-profiles/package.json new file mode 100644 index 0000000000000..8400c19b16cf5 --- /dev/null +++ b/clients/client-customer-profiles/package.json @@ -0,0 +1,83 @@ +{ + "name": "@aws-sdk/client-customer-profiles", + "description": "AWS SDK for JavaScript Customer Profiles Client for Node.js, Browser and React Native", + "version": "1.0.0-rc.1", + "scripts": { + "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation", + "build-documentation": "yarn remove-documentation && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "yarn build:cjs", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "test": "yarn build && jest --coverage --passWithNoTests", + "build:cjs": "tsc -p tsconfig.json", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn build:cjs && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "react-native": { + "./runtimeConfig": "./runtimeConfig.native" + }, + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.8", + "@aws-sdk/credential-provider-node": "1.0.0-rc.8", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.8", + "@aws-sdk/hash-node": "1.0.0-rc.8", + "@aws-sdk/invalid-dependency": "1.0.0-rc.8", + "@aws-sdk/middleware-content-length": "1.0.0-rc.8", + "@aws-sdk/middleware-host-header": "1.0.0-rc.8", + "@aws-sdk/middleware-logger": "1.0.0-rc.8", + "@aws-sdk/middleware-retry": "1.0.0-rc.8", + "@aws-sdk/middleware-serde": "1.0.0-rc.8", + "@aws-sdk/middleware-signing": "1.0.0-rc.8", + "@aws-sdk/middleware-stack": "1.0.0-rc.8", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.8", + "@aws-sdk/node-config-provider": "1.0.0-rc.8", + "@aws-sdk/node-http-handler": "1.0.0-rc.8", + "@aws-sdk/protocol-http": "1.0.0-rc.8", + "@aws-sdk/smithy-client": "1.0.0-rc.8", + "@aws-sdk/url-parser-browser": "1.0.0-rc.8", + "@aws-sdk/url-parser-node": "1.0.0-rc.8", + "@aws-sdk/util-base64-browser": "1.0.0-rc.8", + "@aws-sdk/util-base64-node": "1.0.0-rc.8", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.8", + "@aws-sdk/util-body-length-node": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.8", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.8", + "@aws-sdk/util-utf8-node": "1.0.0-rc.8", + "tslib": "^2.0.0" + }, + "devDependencies": { + "@aws-sdk/client-documentation-generator": "1.0.0-rc.8", + "@aws-sdk/types": "1.0.0-rc.8", + "@types/node": "^12.7.5", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "typedoc": "^0.19.2", + "typescript": "~4.1.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/master/clients/client-customer-profiles", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-customer-profiles" + } +} diff --git a/clients/client-customer-profiles/protocols/Aws_restJson1.ts b/clients/client-customer-profiles/protocols/Aws_restJson1.ts new file mode 100644 index 0000000000000..e4cec0ac7ddcf --- /dev/null +++ b/clients/client-customer-profiles/protocols/Aws_restJson1.ts @@ -0,0 +1,4274 @@ +import { AddProfileKeyCommandInput, AddProfileKeyCommandOutput } from "../commands/AddProfileKeyCommand"; +import { CreateDomainCommandInput, CreateDomainCommandOutput } from "../commands/CreateDomainCommand"; +import { CreateProfileCommandInput, CreateProfileCommandOutput } from "../commands/CreateProfileCommand"; +import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "../commands/DeleteDomainCommand"; +import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "../commands/DeleteIntegrationCommand"; +import { DeleteProfileCommandInput, DeleteProfileCommandOutput } from "../commands/DeleteProfileCommand"; +import { DeleteProfileKeyCommandInput, DeleteProfileKeyCommandOutput } from "../commands/DeleteProfileKeyCommand"; +import { + DeleteProfileObjectCommandInput, + DeleteProfileObjectCommandOutput, +} from "../commands/DeleteProfileObjectCommand"; +import { + DeleteProfileObjectTypeCommandInput, + DeleteProfileObjectTypeCommandOutput, +} from "../commands/DeleteProfileObjectTypeCommand"; +import { GetDomainCommandInput, GetDomainCommandOutput } from "../commands/GetDomainCommand"; +import { GetIntegrationCommandInput, GetIntegrationCommandOutput } from "../commands/GetIntegrationCommand"; +import { + GetProfileObjectTypeCommandInput, + GetProfileObjectTypeCommandOutput, +} from "../commands/GetProfileObjectTypeCommand"; +import { + GetProfileObjectTypeTemplateCommandInput, + GetProfileObjectTypeTemplateCommandOutput, +} from "../commands/GetProfileObjectTypeTemplateCommand"; +import { + ListAccountIntegrationsCommandInput, + ListAccountIntegrationsCommandOutput, +} from "../commands/ListAccountIntegrationsCommand"; +import { ListDomainsCommandInput, ListDomainsCommandOutput } from "../commands/ListDomainsCommand"; +import { ListIntegrationsCommandInput, ListIntegrationsCommandOutput } from "../commands/ListIntegrationsCommand"; +import { + ListProfileObjectTypeTemplatesCommandInput, + ListProfileObjectTypeTemplatesCommandOutput, +} from "../commands/ListProfileObjectTypeTemplatesCommand"; +import { + ListProfileObjectTypesCommandInput, + ListProfileObjectTypesCommandOutput, +} from "../commands/ListProfileObjectTypesCommand"; +import { ListProfileObjectsCommandInput, ListProfileObjectsCommandOutput } from "../commands/ListProfileObjectsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { PutIntegrationCommandInput, PutIntegrationCommandOutput } from "../commands/PutIntegrationCommand"; +import { PutProfileObjectCommandInput, PutProfileObjectCommandOutput } from "../commands/PutProfileObjectCommand"; +import { + PutProfileObjectTypeCommandInput, + PutProfileObjectTypeCommandOutput, +} from "../commands/PutProfileObjectTypeCommand"; +import { SearchProfilesCommandInput, SearchProfilesCommandOutput } from "../commands/SearchProfilesCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; +import { UpdateDomainCommandInput, UpdateDomainCommandOutput } from "../commands/UpdateDomainCommand"; +import { UpdateProfileCommandInput, UpdateProfileCommandOutput } from "../commands/UpdateProfileCommand"; +import { + AccessDeniedException, + Address, + BadRequestException, + DomainStats, + InternalServerException, + ListDomainItem, + ListIntegrationItem, + ListProfileObjectTypeItem, + ListProfileObjectTypeTemplateItem, + ListProfileObjectsItem, + ObjectTypeField, + ObjectTypeKey, + Profile, + ResourceNotFoundException, + StandardIdentifier, + ThrottlingException, + UpdateAddress, +} from "../models/models_0"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { + SmithyException as __SmithyException, + extendedEncodeURIComponent as __extendedEncodeURIComponent, +} from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export const serializeAws_restJson1AddProfileKeyCommand = async ( + input: AddProfileKeyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/keys"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.KeyName !== undefined && { KeyName: input.KeyName }), + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + ...(input.Values !== undefined && { Values: serializeAws_restJson1requestValueList(input.Values, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateDomainCommand = async ( + input: CreateDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.DeadLetterQueueUrl !== undefined && { DeadLetterQueueUrl: input.DeadLetterQueueUrl }), + ...(input.DefaultEncryptionKey !== undefined && { DefaultEncryptionKey: input.DefaultEncryptionKey }), + ...(input.DefaultExpirationDays !== undefined && { DefaultExpirationDays: input.DefaultExpirationDays }), + ...(input.Tags !== undefined && { Tags: serializeAws_restJson1TagMap(input.Tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateProfileCommand = async ( + input: CreateProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.AccountNumber !== undefined && { AccountNumber: input.AccountNumber }), + ...(input.AdditionalInformation !== undefined && { AdditionalInformation: input.AdditionalInformation }), + ...(input.Address !== undefined && { Address: serializeAws_restJson1Address(input.Address, context) }), + ...(input.Attributes !== undefined && { Attributes: serializeAws_restJson1Attributes(input.Attributes, context) }), + ...(input.BillingAddress !== undefined && { + BillingAddress: serializeAws_restJson1Address(input.BillingAddress, context), + }), + ...(input.BirthDate !== undefined && { BirthDate: input.BirthDate }), + ...(input.BusinessEmailAddress !== undefined && { BusinessEmailAddress: input.BusinessEmailAddress }), + ...(input.BusinessName !== undefined && { BusinessName: input.BusinessName }), + ...(input.BusinessPhoneNumber !== undefined && { BusinessPhoneNumber: input.BusinessPhoneNumber }), + ...(input.EmailAddress !== undefined && { EmailAddress: input.EmailAddress }), + ...(input.FirstName !== undefined && { FirstName: input.FirstName }), + ...(input.Gender !== undefined && { Gender: input.Gender }), + ...(input.HomePhoneNumber !== undefined && { HomePhoneNumber: input.HomePhoneNumber }), + ...(input.LastName !== undefined && { LastName: input.LastName }), + ...(input.MailingAddress !== undefined && { + MailingAddress: serializeAws_restJson1Address(input.MailingAddress, context), + }), + ...(input.MiddleName !== undefined && { MiddleName: input.MiddleName }), + ...(input.MobilePhoneNumber !== undefined && { MobilePhoneNumber: input.MobilePhoneNumber }), + ...(input.PartyType !== undefined && { PartyType: input.PartyType }), + ...(input.PersonalEmailAddress !== undefined && { PersonalEmailAddress: input.PersonalEmailAddress }), + ...(input.PhoneNumber !== undefined && { PhoneNumber: input.PhoneNumber }), + ...(input.ShippingAddress !== undefined && { + ShippingAddress: serializeAws_restJson1Address(input.ShippingAddress, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteDomainCommand = async ( + input: DeleteDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteIntegrationCommand = async ( + input: DeleteIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/integrations/delete"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.Uri !== undefined && { Uri: input.Uri }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteProfileCommand = async ( + input: DeleteProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/delete"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteProfileKeyCommand = async ( + input: DeleteProfileKeyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/keys/delete"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.KeyName !== undefined && { KeyName: input.KeyName }), + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + ...(input.Values !== undefined && { Values: serializeAws_restJson1requestValueList(input.Values, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteProfileObjectCommand = async ( + input: DeleteProfileObjectCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/objects/delete"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.ObjectTypeName !== undefined && { ObjectTypeName: input.ObjectTypeName }), + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + ...(input.ProfileObjectUniqueKey !== undefined && { ProfileObjectUniqueKey: input.ProfileObjectUniqueKey }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteProfileObjectTypeCommand = async ( + input: DeleteProfileObjectTypeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}/object-types/{ObjectTypeName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + if (input.ObjectTypeName !== undefined) { + const labelValue: string = input.ObjectTypeName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ObjectTypeName."); + } + resolvedPath = resolvedPath.replace("{ObjectTypeName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ObjectTypeName."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetDomainCommand = async ( + input: GetDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetIntegrationCommand = async ( + input: GetIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/integrations"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.Uri !== undefined && { Uri: input.Uri }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetProfileObjectTypeCommand = async ( + input: GetProfileObjectTypeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}/object-types/{ObjectTypeName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + if (input.ObjectTypeName !== undefined) { + const labelValue: string = input.ObjectTypeName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ObjectTypeName."); + } + resolvedPath = resolvedPath.replace("{ObjectTypeName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ObjectTypeName."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetProfileObjectTypeTemplateCommand = async ( + input: GetProfileObjectTypeTemplateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/templates/{TemplateId}"; + if (input.TemplateId !== undefined) { + const labelValue: string = input.TemplateId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: TemplateId."); + } + resolvedPath = resolvedPath.replace("{TemplateId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: TemplateId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ListAccountIntegrationsCommand = async ( + input: ListAccountIntegrationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/integrations"; + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + body = JSON.stringify({ + ...(input.Uri !== undefined && { Uri: input.Uri }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListDomainsCommand = async ( + input: ListDomainsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains"; + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListIntegrationsCommand = async ( + input: ListIntegrationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}/integrations"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListProfileObjectsCommand = async ( + input: ListProfileObjectsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/objects"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + body = JSON.stringify({ + ...(input.ObjectTypeName !== undefined && { ObjectTypeName: input.ObjectTypeName }), + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListProfileObjectTypesCommand = async ( + input: ListProfileObjectTypesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/domains/{DomainName}/object-types"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListProfileObjectTypeTemplatesCommand = async ( + input: ListProfileObjectTypeTemplatesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/templates"; + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1PutIntegrationCommand = async ( + input: PutIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/integrations"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.ObjectTypeName !== undefined && { ObjectTypeName: input.ObjectTypeName }), + ...(input.Tags !== undefined && { Tags: serializeAws_restJson1TagMap(input.Tags, context) }), + ...(input.Uri !== undefined && { Uri: input.Uri }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1PutProfileObjectCommand = async ( + input: PutProfileObjectCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/objects"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.Object !== undefined && { Object: input.Object }), + ...(input.ObjectTypeName !== undefined && { ObjectTypeName: input.ObjectTypeName }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1PutProfileObjectTypeCommand = async ( + input: PutProfileObjectTypeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/object-types/{ObjectTypeName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + if (input.ObjectTypeName !== undefined) { + const labelValue: string = input.ObjectTypeName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ObjectTypeName."); + } + resolvedPath = resolvedPath.replace("{ObjectTypeName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ObjectTypeName."); + } + let body: any; + body = JSON.stringify({ + ...(input.AllowProfileCreation !== undefined && { AllowProfileCreation: input.AllowProfileCreation }), + ...(input.Description !== undefined && { Description: input.Description }), + ...(input.EncryptionKey !== undefined && { EncryptionKey: input.EncryptionKey }), + ...(input.ExpirationDays !== undefined && { ExpirationDays: input.ExpirationDays }), + ...(input.Fields !== undefined && { Fields: serializeAws_restJson1FieldMap(input.Fields, context) }), + ...(input.Keys !== undefined && { Keys: serializeAws_restJson1KeyMap(input.Keys, context) }), + ...(input.Tags !== undefined && { Tags: serializeAws_restJson1TagMap(input.Tags, context) }), + ...(input.TemplateId !== undefined && { TemplateId: input.TemplateId }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1SearchProfilesCommand = async ( + input: SearchProfilesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles/search"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + const query: any = { + ...(input.NextToken !== undefined && { "next-token": input.NextToken }), + ...(input.MaxResults !== undefined && { "max-results": input.MaxResults.toString() }), + }; + let body: any; + body = JSON.stringify({ + ...(input.KeyName !== undefined && { KeyName: input.KeyName }), + ...(input.Values !== undefined && { Values: serializeAws_restJson1requestValueList(input.Values, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + const query: any = { + ...(input.tagKeys !== undefined && { tagKeys: (input.tagKeys || []).map((_entry) => _entry) }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1UpdateDomainCommand = async ( + input: UpdateDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.DeadLetterQueueUrl !== undefined && { DeadLetterQueueUrl: input.DeadLetterQueueUrl }), + ...(input.DefaultEncryptionKey !== undefined && { DefaultEncryptionKey: input.DefaultEncryptionKey }), + ...(input.DefaultExpirationDays !== undefined && { DefaultExpirationDays: input.DefaultExpirationDays }), + ...(input.Tags !== undefined && { Tags: serializeAws_restJson1TagMap(input.Tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateProfileCommand = async ( + input: UpdateProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/domains/{DomainName}/profiles"; + if (input.DomainName !== undefined) { + const labelValue: string = input.DomainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DomainName."); + } + resolvedPath = resolvedPath.replace("{DomainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DomainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.AccountNumber !== undefined && { AccountNumber: input.AccountNumber }), + ...(input.AdditionalInformation !== undefined && { AdditionalInformation: input.AdditionalInformation }), + ...(input.Address !== undefined && { Address: serializeAws_restJson1UpdateAddress(input.Address, context) }), + ...(input.Attributes !== undefined && { + Attributes: serializeAws_restJson1UpdateAttributes(input.Attributes, context), + }), + ...(input.BillingAddress !== undefined && { + BillingAddress: serializeAws_restJson1UpdateAddress(input.BillingAddress, context), + }), + ...(input.BirthDate !== undefined && { BirthDate: input.BirthDate }), + ...(input.BusinessEmailAddress !== undefined && { BusinessEmailAddress: input.BusinessEmailAddress }), + ...(input.BusinessName !== undefined && { BusinessName: input.BusinessName }), + ...(input.BusinessPhoneNumber !== undefined && { BusinessPhoneNumber: input.BusinessPhoneNumber }), + ...(input.EmailAddress !== undefined && { EmailAddress: input.EmailAddress }), + ...(input.FirstName !== undefined && { FirstName: input.FirstName }), + ...(input.Gender !== undefined && { Gender: input.Gender }), + ...(input.HomePhoneNumber !== undefined && { HomePhoneNumber: input.HomePhoneNumber }), + ...(input.LastName !== undefined && { LastName: input.LastName }), + ...(input.MailingAddress !== undefined && { + MailingAddress: serializeAws_restJson1UpdateAddress(input.MailingAddress, context), + }), + ...(input.MiddleName !== undefined && { MiddleName: input.MiddleName }), + ...(input.MobilePhoneNumber !== undefined && { MobilePhoneNumber: input.MobilePhoneNumber }), + ...(input.PartyType !== undefined && { PartyType: input.PartyType }), + ...(input.PersonalEmailAddress !== undefined && { PersonalEmailAddress: input.PersonalEmailAddress }), + ...(input.PhoneNumber !== undefined && { PhoneNumber: input.PhoneNumber }), + ...(input.ProfileId !== undefined && { ProfileId: input.ProfileId }), + ...(input.ShippingAddress !== undefined && { + ShippingAddress: serializeAws_restJson1UpdateAddress(input.ShippingAddress, context), + }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + +export const deserializeAws_restJson1AddProfileKeyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1AddProfileKeyCommandError(output, context); + } + const contents: AddProfileKeyCommandOutput = { + $metadata: deserializeMetadata(output), + KeyName: undefined, + Values: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.KeyName !== undefined && data.KeyName !== null) { + contents.KeyName = data.KeyName; + } + if (data.Values !== undefined && data.Values !== null) { + contents.Values = deserializeAws_restJson1requestValueList(data.Values, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1AddProfileKeyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateDomainCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateDomainCommandError(output, context); + } + const contents: CreateDomainCommandOutput = { + $metadata: deserializeMetadata(output), + CreatedAt: undefined, + DeadLetterQueueUrl: undefined, + DefaultEncryptionKey: undefined, + DefaultExpirationDays: undefined, + DomainName: undefined, + LastUpdatedAt: undefined, + Tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.DeadLetterQueueUrl !== undefined && data.DeadLetterQueueUrl !== null) { + contents.DeadLetterQueueUrl = data.DeadLetterQueueUrl; + } + if (data.DefaultEncryptionKey !== undefined && data.DefaultEncryptionKey !== null) { + contents.DefaultEncryptionKey = data.DefaultEncryptionKey; + } + if (data.DefaultExpirationDays !== undefined && data.DefaultExpirationDays !== null) { + contents.DefaultExpirationDays = data.DefaultExpirationDays; + } + if (data.DomainName !== undefined && data.DomainName !== null) { + contents.DomainName = data.DomainName; + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateDomainCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateProfileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateProfileCommandError(output, context); + } + const contents: CreateProfileCommandOutput = { + $metadata: deserializeMetadata(output), + ProfileId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.ProfileId !== undefined && data.ProfileId !== null) { + contents.ProfileId = data.ProfileId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateProfileCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteDomainCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteDomainCommandError(output, context); + } + const contents: DeleteDomainCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteDomainCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteIntegrationCommandError(output, context); + } + const contents: DeleteIntegrationCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteIntegrationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteProfileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteProfileCommandError(output, context); + } + const contents: DeleteProfileCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteProfileCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteProfileKeyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteProfileKeyCommandError(output, context); + } + const contents: DeleteProfileKeyCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteProfileKeyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteProfileObjectCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteProfileObjectCommandError(output, context); + } + const contents: DeleteProfileObjectCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteProfileObjectCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteProfileObjectTypeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteProfileObjectTypeCommandError(output, context); + } + const contents: DeleteProfileObjectTypeCommandOutput = { + $metadata: deserializeMetadata(output), + Message: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteProfileObjectTypeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetDomainCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetDomainCommandError(output, context); + } + const contents: GetDomainCommandOutput = { + $metadata: deserializeMetadata(output), + CreatedAt: undefined, + DeadLetterQueueUrl: undefined, + DefaultEncryptionKey: undefined, + DefaultExpirationDays: undefined, + DomainName: undefined, + LastUpdatedAt: undefined, + Stats: undefined, + Tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.DeadLetterQueueUrl !== undefined && data.DeadLetterQueueUrl !== null) { + contents.DeadLetterQueueUrl = data.DeadLetterQueueUrl; + } + if (data.DefaultEncryptionKey !== undefined && data.DefaultEncryptionKey !== null) { + contents.DefaultEncryptionKey = data.DefaultEncryptionKey; + } + if (data.DefaultExpirationDays !== undefined && data.DefaultExpirationDays !== null) { + contents.DefaultExpirationDays = data.DefaultExpirationDays; + } + if (data.DomainName !== undefined && data.DomainName !== null) { + contents.DomainName = data.DomainName; + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.Stats !== undefined && data.Stats !== null) { + contents.Stats = deserializeAws_restJson1DomainStats(data.Stats, context); + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetDomainCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetIntegrationCommandError(output, context); + } + const contents: GetIntegrationCommandOutput = { + $metadata: deserializeMetadata(output), + CreatedAt: undefined, + DomainName: undefined, + LastUpdatedAt: undefined, + ObjectTypeName: undefined, + Tags: undefined, + Uri: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.DomainName !== undefined && data.DomainName !== null) { + contents.DomainName = data.DomainName; + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { + contents.ObjectTypeName = data.ObjectTypeName; + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + if (data.Uri !== undefined && data.Uri !== null) { + contents.Uri = data.Uri; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetIntegrationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetProfileObjectTypeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetProfileObjectTypeCommandError(output, context); + } + const contents: GetProfileObjectTypeCommandOutput = { + $metadata: deserializeMetadata(output), + AllowProfileCreation: undefined, + CreatedAt: undefined, + Description: undefined, + EncryptionKey: undefined, + ExpirationDays: undefined, + Fields: undefined, + Keys: undefined, + LastUpdatedAt: undefined, + ObjectTypeName: undefined, + Tags: undefined, + TemplateId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.AllowProfileCreation !== undefined && data.AllowProfileCreation !== null) { + contents.AllowProfileCreation = data.AllowProfileCreation; + } + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.Description !== undefined && data.Description !== null) { + contents.Description = data.Description; + } + if (data.EncryptionKey !== undefined && data.EncryptionKey !== null) { + contents.EncryptionKey = data.EncryptionKey; + } + if (data.ExpirationDays !== undefined && data.ExpirationDays !== null) { + contents.ExpirationDays = data.ExpirationDays; + } + if (data.Fields !== undefined && data.Fields !== null) { + contents.Fields = deserializeAws_restJson1FieldMap(data.Fields, context); + } + if (data.Keys !== undefined && data.Keys !== null) { + contents.Keys = deserializeAws_restJson1KeyMap(data.Keys, context); + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { + contents.ObjectTypeName = data.ObjectTypeName; + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + if (data.TemplateId !== undefined && data.TemplateId !== null) { + contents.TemplateId = data.TemplateId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetProfileObjectTypeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetProfileObjectTypeTemplateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetProfileObjectTypeTemplateCommandError(output, context); + } + const contents: GetProfileObjectTypeTemplateCommandOutput = { + $metadata: deserializeMetadata(output), + AllowProfileCreation: undefined, + Fields: undefined, + Keys: undefined, + SourceName: undefined, + SourceObject: undefined, + TemplateId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.AllowProfileCreation !== undefined && data.AllowProfileCreation !== null) { + contents.AllowProfileCreation = data.AllowProfileCreation; + } + if (data.Fields !== undefined && data.Fields !== null) { + contents.Fields = deserializeAws_restJson1FieldMap(data.Fields, context); + } + if (data.Keys !== undefined && data.Keys !== null) { + contents.Keys = deserializeAws_restJson1KeyMap(data.Keys, context); + } + if (data.SourceName !== undefined && data.SourceName !== null) { + contents.SourceName = data.SourceName; + } + if (data.SourceObject !== undefined && data.SourceObject !== null) { + contents.SourceObject = data.SourceObject; + } + if (data.TemplateId !== undefined && data.TemplateId !== null) { + contents.TemplateId = data.TemplateId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetProfileObjectTypeTemplateCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListAccountIntegrationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAccountIntegrationsCommandError(output, context); + } + const contents: ListAccountIntegrationsCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1IntegrationList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAccountIntegrationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListDomainsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListDomainsCommandError(output, context); + } + const contents: ListDomainsCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1DomainList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListDomainsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListIntegrationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListIntegrationsCommandError(output, context); + } + const contents: ListIntegrationsCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1IntegrationList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListIntegrationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListProfileObjectsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListProfileObjectsCommandError(output, context); + } + const contents: ListProfileObjectsCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1ProfileObjectList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListProfileObjectsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListProfileObjectTypesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListProfileObjectTypesCommandError(output, context); + } + const contents: ListProfileObjectTypesCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1ProfileObjectTypeList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListProfileObjectTypesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListProfileObjectTypeTemplatesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListProfileObjectTypeTemplatesCommandError(output, context); + } + const contents: ListProfileObjectTypeTemplatesCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1ProfileObjectTypeTemplateList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListProfileObjectTypeTemplatesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.tags !== undefined && data.tags !== null) { + contents.tags = deserializeAws_restJson1TagMap(data.tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1PutIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1PutIntegrationCommandError(output, context); + } + const contents: PutIntegrationCommandOutput = { + $metadata: deserializeMetadata(output), + CreatedAt: undefined, + DomainName: undefined, + LastUpdatedAt: undefined, + ObjectTypeName: undefined, + Tags: undefined, + Uri: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.DomainName !== undefined && data.DomainName !== null) { + contents.DomainName = data.DomainName; + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { + contents.ObjectTypeName = data.ObjectTypeName; + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + if (data.Uri !== undefined && data.Uri !== null) { + contents.Uri = data.Uri; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1PutIntegrationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1PutProfileObjectCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1PutProfileObjectCommandError(output, context); + } + const contents: PutProfileObjectCommandOutput = { + $metadata: deserializeMetadata(output), + ProfileObjectUniqueKey: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.ProfileObjectUniqueKey !== undefined && data.ProfileObjectUniqueKey !== null) { + contents.ProfileObjectUniqueKey = data.ProfileObjectUniqueKey; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1PutProfileObjectCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1PutProfileObjectTypeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1PutProfileObjectTypeCommandError(output, context); + } + const contents: PutProfileObjectTypeCommandOutput = { + $metadata: deserializeMetadata(output), + AllowProfileCreation: undefined, + CreatedAt: undefined, + Description: undefined, + EncryptionKey: undefined, + ExpirationDays: undefined, + Fields: undefined, + Keys: undefined, + LastUpdatedAt: undefined, + ObjectTypeName: undefined, + Tags: undefined, + TemplateId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.AllowProfileCreation !== undefined && data.AllowProfileCreation !== null) { + contents.AllowProfileCreation = data.AllowProfileCreation; + } + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.Description !== undefined && data.Description !== null) { + contents.Description = data.Description; + } + if (data.EncryptionKey !== undefined && data.EncryptionKey !== null) { + contents.EncryptionKey = data.EncryptionKey; + } + if (data.ExpirationDays !== undefined && data.ExpirationDays !== null) { + contents.ExpirationDays = data.ExpirationDays; + } + if (data.Fields !== undefined && data.Fields !== null) { + contents.Fields = deserializeAws_restJson1FieldMap(data.Fields, context); + } + if (data.Keys !== undefined && data.Keys !== null) { + contents.Keys = deserializeAws_restJson1KeyMap(data.Keys, context); + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { + contents.ObjectTypeName = data.ObjectTypeName; + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + if (data.TemplateId !== undefined && data.TemplateId !== null) { + contents.TemplateId = data.TemplateId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1PutProfileObjectTypeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1SearchProfilesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1SearchProfilesCommandError(output, context); + } + const contents: SearchProfilesCommandOutput = { + $metadata: deserializeMetadata(output), + Items: undefined, + NextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.Items !== undefined && data.Items !== null) { + contents.Items = deserializeAws_restJson1ProfileList(data.Items, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1SearchProfilesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateDomainCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateDomainCommandError(output, context); + } + const contents: UpdateDomainCommandOutput = { + $metadata: deserializeMetadata(output), + CreatedAt: undefined, + DeadLetterQueueUrl: undefined, + DefaultEncryptionKey: undefined, + DefaultExpirationDays: undefined, + DomainName: undefined, + LastUpdatedAt: undefined, + Tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CreatedAt !== undefined && data.CreatedAt !== null) { + contents.CreatedAt = new Date(Math.round(data.CreatedAt * 1000)); + } + if (data.DeadLetterQueueUrl !== undefined && data.DeadLetterQueueUrl !== null) { + contents.DeadLetterQueueUrl = data.DeadLetterQueueUrl; + } + if (data.DefaultEncryptionKey !== undefined && data.DefaultEncryptionKey !== null) { + contents.DefaultEncryptionKey = data.DefaultEncryptionKey; + } + if (data.DefaultExpirationDays !== undefined && data.DefaultExpirationDays !== null) { + contents.DefaultExpirationDays = data.DefaultExpirationDays; + } + if (data.DomainName !== undefined && data.DomainName !== null) { + contents.DomainName = data.DomainName; + } + if (data.LastUpdatedAt !== undefined && data.LastUpdatedAt !== null) { + contents.LastUpdatedAt = new Date(Math.round(data.LastUpdatedAt * 1000)); + } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateDomainCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateProfileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateProfileCommandError(output, context); + } + const contents: UpdateProfileCommandOutput = { + $metadata: deserializeMetadata(output), + ProfileId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.ProfileId !== undefined && data.ProfileId !== null) { + contents.ProfileId = data.ProfileId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateProfileCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.customerprofiles#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.customerprofiles#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.customerprofiles#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.customerprofiles#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.customerprofiles#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1AccessDeniedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: AccessDeniedException = { + name: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1BadRequestExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: BadRequestException = { + name: "BadRequestException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1ThrottlingExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ThrottlingException = { + name: "ThrottlingException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const serializeAws_restJson1Address = (input: Address, context: __SerdeContext): any => { + return { + ...(input.Address1 !== undefined && { Address1: input.Address1 }), + ...(input.Address2 !== undefined && { Address2: input.Address2 }), + ...(input.Address3 !== undefined && { Address3: input.Address3 }), + ...(input.Address4 !== undefined && { Address4: input.Address4 }), + ...(input.City !== undefined && { City: input.City }), + ...(input.Country !== undefined && { Country: input.Country }), + ...(input.County !== undefined && { County: input.County }), + ...(input.PostalCode !== undefined && { PostalCode: input.PostalCode }), + ...(input.Province !== undefined && { Province: input.Province }), + ...(input.State !== undefined && { State: input.State }), + }; +}; + +const serializeAws_restJson1Attributes = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const serializeAws_restJson1FieldMap = (input: { [key: string]: ObjectTypeField }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: ObjectTypeField }, [key, value]: [string, any]) => ({ + ...acc, + [key]: serializeAws_restJson1ObjectTypeField(value, context), + }), + {} + ); +}; + +const serializeAws_restJson1FieldNameList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1KeyMap = (input: { [key: string]: ObjectTypeKey[] }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: ObjectTypeKey[] }, [key, value]: [string, any]) => ({ + ...acc, + [key]: serializeAws_restJson1ObjectTypeKeyList(value, context), + }), + {} + ); +}; + +const serializeAws_restJson1ObjectTypeField = (input: ObjectTypeField, context: __SerdeContext): any => { + return { + ...(input.ContentType !== undefined && { ContentType: input.ContentType }), + ...(input.Source !== undefined && { Source: input.Source }), + ...(input.Target !== undefined && { Target: input.Target }), + }; +}; + +const serializeAws_restJson1ObjectTypeKey = (input: ObjectTypeKey, context: __SerdeContext): any => { + return { + ...(input.FieldNames !== undefined && { + FieldNames: serializeAws_restJson1FieldNameList(input.FieldNames, context), + }), + ...(input.StandardIdentifiers !== undefined && { + StandardIdentifiers: serializeAws_restJson1StandardIdentifierList(input.StandardIdentifiers, context), + }), + }; +}; + +const serializeAws_restJson1ObjectTypeKeyList = (input: ObjectTypeKey[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1ObjectTypeKey(entry, context)); +}; + +const serializeAws_restJson1requestValueList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1StandardIdentifierList = ( + input: (StandardIdentifier | string)[], + context: __SerdeContext +): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1TagMap = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const serializeAws_restJson1UpdateAddress = (input: UpdateAddress, context: __SerdeContext): any => { + return { + ...(input.Address1 !== undefined && { Address1: input.Address1 }), + ...(input.Address2 !== undefined && { Address2: input.Address2 }), + ...(input.Address3 !== undefined && { Address3: input.Address3 }), + ...(input.Address4 !== undefined && { Address4: input.Address4 }), + ...(input.City !== undefined && { City: input.City }), + ...(input.Country !== undefined && { Country: input.Country }), + ...(input.County !== undefined && { County: input.County }), + ...(input.PostalCode !== undefined && { PostalCode: input.PostalCode }), + ...(input.Province !== undefined && { Province: input.Province }), + ...(input.State !== undefined && { State: input.State }), + }; +}; + +const serializeAws_restJson1UpdateAttributes = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1Address = (output: any, context: __SerdeContext): Address => { + return { + Address1: output.Address1 !== undefined && output.Address1 !== null ? output.Address1 : undefined, + Address2: output.Address2 !== undefined && output.Address2 !== null ? output.Address2 : undefined, + Address3: output.Address3 !== undefined && output.Address3 !== null ? output.Address3 : undefined, + Address4: output.Address4 !== undefined && output.Address4 !== null ? output.Address4 : undefined, + City: output.City !== undefined && output.City !== null ? output.City : undefined, + Country: output.Country !== undefined && output.Country !== null ? output.Country : undefined, + County: output.County !== undefined && output.County !== null ? output.County : undefined, + PostalCode: output.PostalCode !== undefined && output.PostalCode !== null ? output.PostalCode : undefined, + Province: output.Province !== undefined && output.Province !== null ? output.Province : undefined, + State: output.State !== undefined && output.State !== null ? output.State : undefined, + } as any; +}; + +const deserializeAws_restJson1Attributes = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1DomainList = (output: any, context: __SerdeContext): ListDomainItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ListDomainItem(entry, context)); +}; + +const deserializeAws_restJson1DomainStats = (output: any, context: __SerdeContext): DomainStats => { + return { + MeteringProfileCount: + output.MeteringProfileCount !== undefined && output.MeteringProfileCount !== null + ? output.MeteringProfileCount + : undefined, + ObjectCount: output.ObjectCount !== undefined && output.ObjectCount !== null ? output.ObjectCount : undefined, + ProfileCount: output.ProfileCount !== undefined && output.ProfileCount !== null ? output.ProfileCount : undefined, + TotalSize: output.TotalSize !== undefined && output.TotalSize !== null ? output.TotalSize : undefined, + } as any; +}; + +const deserializeAws_restJson1FieldMap = (output: any, context: __SerdeContext): { [key: string]: ObjectTypeField } => { + return Object.entries(output).reduce( + (acc: { [key: string]: ObjectTypeField }, [key, value]: [string, any]) => ({ + ...acc, + [key]: deserializeAws_restJson1ObjectTypeField(value, context), + }), + {} + ); +}; + +const deserializeAws_restJson1FieldNameList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1IntegrationList = (output: any, context: __SerdeContext): ListIntegrationItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ListIntegrationItem(entry, context)); +}; + +const deserializeAws_restJson1KeyMap = (output: any, context: __SerdeContext): { [key: string]: ObjectTypeKey[] } => { + return Object.entries(output).reduce( + (acc: { [key: string]: ObjectTypeKey[] }, [key, value]: [string, any]) => ({ + ...acc, + [key]: deserializeAws_restJson1ObjectTypeKeyList(value, context), + }), + {} + ); +}; + +const deserializeAws_restJson1ListDomainItem = (output: any, context: __SerdeContext): ListDomainItem => { + return { + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? new Date(Math.round(output.CreatedAt * 1000)) + : undefined, + DomainName: output.DomainName !== undefined && output.DomainName !== null ? output.DomainName : undefined, + LastUpdatedAt: + output.LastUpdatedAt !== undefined && output.LastUpdatedAt !== null + ? new Date(Math.round(output.LastUpdatedAt * 1000)) + : undefined, + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagMap(output.Tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ListIntegrationItem = (output: any, context: __SerdeContext): ListIntegrationItem => { + return { + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? new Date(Math.round(output.CreatedAt * 1000)) + : undefined, + DomainName: output.DomainName !== undefined && output.DomainName !== null ? output.DomainName : undefined, + LastUpdatedAt: + output.LastUpdatedAt !== undefined && output.LastUpdatedAt !== null + ? new Date(Math.round(output.LastUpdatedAt * 1000)) + : undefined, + ObjectTypeName: + output.ObjectTypeName !== undefined && output.ObjectTypeName !== null ? output.ObjectTypeName : undefined, + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagMap(output.Tags, context) + : undefined, + Uri: output.Uri !== undefined && output.Uri !== null ? output.Uri : undefined, + } as any; +}; + +const deserializeAws_restJson1ListProfileObjectsItem = ( + output: any, + context: __SerdeContext +): ListProfileObjectsItem => { + return { + Object: output.Object !== undefined && output.Object !== null ? output.Object : undefined, + ObjectTypeName: + output.ObjectTypeName !== undefined && output.ObjectTypeName !== null ? output.ObjectTypeName : undefined, + ProfileObjectUniqueKey: + output.ProfileObjectUniqueKey !== undefined && output.ProfileObjectUniqueKey !== null + ? output.ProfileObjectUniqueKey + : undefined, + } as any; +}; + +const deserializeAws_restJson1ListProfileObjectTypeItem = ( + output: any, + context: __SerdeContext +): ListProfileObjectTypeItem => { + return { + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? new Date(Math.round(output.CreatedAt * 1000)) + : undefined, + Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + LastUpdatedAt: + output.LastUpdatedAt !== undefined && output.LastUpdatedAt !== null + ? new Date(Math.round(output.LastUpdatedAt * 1000)) + : undefined, + ObjectTypeName: + output.ObjectTypeName !== undefined && output.ObjectTypeName !== null ? output.ObjectTypeName : undefined, + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagMap(output.Tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ListProfileObjectTypeTemplateItem = ( + output: any, + context: __SerdeContext +): ListProfileObjectTypeTemplateItem => { + return { + SourceName: output.SourceName !== undefined && output.SourceName !== null ? output.SourceName : undefined, + SourceObject: output.SourceObject !== undefined && output.SourceObject !== null ? output.SourceObject : undefined, + TemplateId: output.TemplateId !== undefined && output.TemplateId !== null ? output.TemplateId : undefined, + } as any; +}; + +const deserializeAws_restJson1ObjectTypeField = (output: any, context: __SerdeContext): ObjectTypeField => { + return { + ContentType: output.ContentType !== undefined && output.ContentType !== null ? output.ContentType : undefined, + Source: output.Source !== undefined && output.Source !== null ? output.Source : undefined, + Target: output.Target !== undefined && output.Target !== null ? output.Target : undefined, + } as any; +}; + +const deserializeAws_restJson1ObjectTypeKey = (output: any, context: __SerdeContext): ObjectTypeKey => { + return { + FieldNames: + output.FieldNames !== undefined && output.FieldNames !== null + ? deserializeAws_restJson1FieldNameList(output.FieldNames, context) + : undefined, + StandardIdentifiers: + output.StandardIdentifiers !== undefined && output.StandardIdentifiers !== null + ? deserializeAws_restJson1StandardIdentifierList(output.StandardIdentifiers, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ObjectTypeKeyList = (output: any, context: __SerdeContext): ObjectTypeKey[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ObjectTypeKey(entry, context)); +}; + +const deserializeAws_restJson1Profile = (output: any, context: __SerdeContext): Profile => { + return { + AccountNumber: + output.AccountNumber !== undefined && output.AccountNumber !== null ? output.AccountNumber : undefined, + AdditionalInformation: + output.AdditionalInformation !== undefined && output.AdditionalInformation !== null + ? output.AdditionalInformation + : undefined, + Address: + output.Address !== undefined && output.Address !== null + ? deserializeAws_restJson1Address(output.Address, context) + : undefined, + Attributes: + output.Attributes !== undefined && output.Attributes !== null + ? deserializeAws_restJson1Attributes(output.Attributes, context) + : undefined, + BillingAddress: + output.BillingAddress !== undefined && output.BillingAddress !== null + ? deserializeAws_restJson1Address(output.BillingAddress, context) + : undefined, + BirthDate: output.BirthDate !== undefined && output.BirthDate !== null ? output.BirthDate : undefined, + BusinessEmailAddress: + output.BusinessEmailAddress !== undefined && output.BusinessEmailAddress !== null + ? output.BusinessEmailAddress + : undefined, + BusinessName: output.BusinessName !== undefined && output.BusinessName !== null ? output.BusinessName : undefined, + BusinessPhoneNumber: + output.BusinessPhoneNumber !== undefined && output.BusinessPhoneNumber !== null + ? output.BusinessPhoneNumber + : undefined, + EmailAddress: output.EmailAddress !== undefined && output.EmailAddress !== null ? output.EmailAddress : undefined, + FirstName: output.FirstName !== undefined && output.FirstName !== null ? output.FirstName : undefined, + Gender: output.Gender !== undefined && output.Gender !== null ? output.Gender : undefined, + HomePhoneNumber: + output.HomePhoneNumber !== undefined && output.HomePhoneNumber !== null ? output.HomePhoneNumber : undefined, + LastName: output.LastName !== undefined && output.LastName !== null ? output.LastName : undefined, + MailingAddress: + output.MailingAddress !== undefined && output.MailingAddress !== null + ? deserializeAws_restJson1Address(output.MailingAddress, context) + : undefined, + MiddleName: output.MiddleName !== undefined && output.MiddleName !== null ? output.MiddleName : undefined, + MobilePhoneNumber: + output.MobilePhoneNumber !== undefined && output.MobilePhoneNumber !== null + ? output.MobilePhoneNumber + : undefined, + PartyType: output.PartyType !== undefined && output.PartyType !== null ? output.PartyType : undefined, + PersonalEmailAddress: + output.PersonalEmailAddress !== undefined && output.PersonalEmailAddress !== null + ? output.PersonalEmailAddress + : undefined, + PhoneNumber: output.PhoneNumber !== undefined && output.PhoneNumber !== null ? output.PhoneNumber : undefined, + ProfileId: output.ProfileId !== undefined && output.ProfileId !== null ? output.ProfileId : undefined, + ShippingAddress: + output.ShippingAddress !== undefined && output.ShippingAddress !== null + ? deserializeAws_restJson1Address(output.ShippingAddress, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ProfileList = (output: any, context: __SerdeContext): Profile[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Profile(entry, context)); +}; + +const deserializeAws_restJson1ProfileObjectList = (output: any, context: __SerdeContext): ListProfileObjectsItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ListProfileObjectsItem(entry, context)); +}; + +const deserializeAws_restJson1ProfileObjectTypeList = ( + output: any, + context: __SerdeContext +): ListProfileObjectTypeItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ListProfileObjectTypeItem(entry, context)); +}; + +const deserializeAws_restJson1ProfileObjectTypeTemplateList = ( + output: any, + context: __SerdeContext +): ListProfileObjectTypeTemplateItem[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1ListProfileObjectTypeTemplateItem(entry, context)); +}; + +const deserializeAws_restJson1requestValueList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1StandardIdentifierList = ( + output: any, + context: __SerdeContext +): (StandardIdentifier | string)[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1TagMap = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const isSerializableHeaderValue = (value: any): boolean => + value !== undefined && + value !== "" && + (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && + (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); + +/** + * Load an error code for the aws.rest-json-1.1 protocol. + */ +const loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => { + const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); + + const sanitizeErrorCode = (rawValue: string): string => { + let cleanValue = rawValue; + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== undefined) { + return sanitizeErrorCode(output.headers[headerKey]); + } + + if (data.code !== undefined) { + return sanitizeErrorCode(data.code); + } + + if (data["__type"] !== undefined) { + return sanitizeErrorCode(data["__type"]); + } + + return ""; +}; diff --git a/clients/client-customer-profiles/runtimeConfig.browser.ts b/clients/client-customer-profiles/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..316fd99724463 --- /dev/null +++ b/clients/client-customer-profiles/runtimeConfig.browser.ts @@ -0,0 +1,34 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidAsyncFunction } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS } from "@aws-sdk/middleware-retry"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { ClientDefaults } from "./CustomerProfilesClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "browser", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider: invalidAsyncFunction("Credentialis missing") as any, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: DEFAULT_MAX_ATTEMPTS, + region: invalidAsyncFunction("Region is missing") as any, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-customer-profiles/runtimeConfig.native.ts b/clients/client-customer-profiles/runtimeConfig.native.ts new file mode 100644 index 0000000000000..0be66651c368d --- /dev/null +++ b/clients/client-customer-profiles/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-js"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { ClientDefaults } from "./CustomerProfilesClient"; +import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...BrowserDefaults, + runtime: "react-native", + defaultUserAgent: `aws-sdk-js-v3-react-native-${packageInfo.name}/${packageInfo.version}`, + sha256: Sha256, + urlParser: parseUrl, +}; diff --git a/clients/client-customer-profiles/runtimeConfig.shared.ts b/clients/client-customer-profiles/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..368af68b56013 --- /dev/null +++ b/clients/client-customer-profiles/runtimeConfig.shared.ts @@ -0,0 +1,13 @@ +import { defaultRegionInfoProvider } from "./endpoints"; +import { Logger as __Logger } from "@aws-sdk/types"; + +/** + * @internal + */ +export const ClientSharedValues = { + apiVersion: "2020-08-15", + disableHostPrefix: false, + logger: {} as __Logger, + regionInfoProvider: defaultRegionInfoProvider, + signingName: "profile", +}; diff --git a/clients/client-customer-profiles/runtimeConfig.ts b/clients/client-customer-profiles/runtimeConfig.ts new file mode 100644 index 0000000000000..5b2c73cdbf089 --- /dev/null +++ b/clients/client-customer-profiles/runtimeConfig.ts @@ -0,0 +1,36 @@ +import packageInfo from "./package.json"; + +import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { ClientDefaults } from "./CustomerProfilesClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "node", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-customer-profiles/tsconfig.es.json b/clients/client-customer-profiles/tsconfig.es.json new file mode 100644 index 0000000000000..30df5d2e6986e --- /dev/null +++ b/clients/client-customer-profiles/tsconfig.es.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist/es" + } +} diff --git a/clients/client-customer-profiles/tsconfig.json b/clients/client-customer-profiles/tsconfig.json new file mode 100644 index 0000000000000..4cf936f614b4d --- /dev/null +++ b/clients/client-customer-profiles/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "./protocols/*.ts", "./e2e/*.ts", "./endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "readme": "./README.md", + "mode": "file", + "out": "./docs", + "theme": "minimal", + "plugin": ["@aws-sdk/client-documentation-generator"] + } +} diff --git a/clients/client-database-migration-service/models/models_0.ts b/clients/client-database-migration-service/models/models_0.ts index 5e031ca83f7e5..45858bbc9474b 100644 --- a/clients/client-database-migration-service/models/models_0.ts +++ b/clients/client-database-migration-service/models/models_0.ts @@ -2227,6 +2227,73 @@ export interface S3Settings { * SLASH. Use this parameter when DatePartitionedEnabled is set to true.

*/ DatePartitionDelimiter?: DatePartitionDelimiterValue | string; + + /** + *

This setting applies if the S3 output files during a change data capture (CDC) load are + * written in .csv format. If set to true for columns not included in the + * supplemental log, AWS DMS uses the value specified by + * CsvNoSupValue + * . If not set or set to false, AWS DMS + * uses the null value for these columns.

+ * + *

This setting is supported in AWS DMS versions 3.4.1 and later.

+ *
+ */ + UseCsvNoSupValue?: boolean; + + /** + *

This setting only applies if your Amazon S3 output files during a change data capture + * (CDC) load are written in .csv format. If + * UseCsvNoSupValue + * is set to true, specify a string value that + * you want AWS DMS to use for all columns not included in the supplemental log. If you do not + * specify a string value, AWS DMS uses the null value for these columns regardless of the + * UseCsvNoSupValue setting.

+ * + *

This setting is supported in AWS DMS versions 3.4.1 and later.

+ *
+ */ + CsvNoSupValue?: string; + + /** + *

If set to true, AWS DMS saves the transaction order for a change data + * capture (CDC) load on the Amazon S3 target specified by + * CdcPath + * .

+ * + *

This setting is supported in AWS DMS versions 3.4.2 and later.

+ *
+ */ + PreserveTransactions?: boolean; + + /** + *

Specifies the folder path of CDC files. For an S3 source, this setting is required if a + * task captures change data; otherwise, it's optional. If CdcPath is set, AWS + * DMS reads CDC files from this path and replicates the data changes to the target endpoint. + * For an S3 target, if CdcPathis set, it is the folder path where data changes + * are replicated. If you set + * PreserveTransactions + * to true, AWS DMS verifies + * that you have set this parameter to a folder path on your S3 target where AWS DMS can save + * the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your + * S3 target working directory or the S3 target location specified by + * BucketFolder + * and + * BucketName + * .

+ *

For example, if you specify CdcPath as MyChangedData, and you + * specify BucketName as MyTargetBucket but do not specify + * BucketFolder, AWS DMS creates the CDC folder path following: + * MyTargetBucket/MyChangedData.

+ *

If you specify the same CdcPath, and you specify BucketName as + * MyTargetBucket and BucketFolder as MyTargetData, + * AWS DMS creates the CDC folder path following: + * MyTargetBucket/MyTargetData/MyChangedData.

+ * + *

This setting is supported in AWS DMS versions 3.4.2 and later.

+ *
+ */ + CdcPath?: string; } export namespace S3Settings { diff --git a/clients/client-database-migration-service/protocols/Aws_json1_1.ts b/clients/client-database-migration-service/protocols/Aws_json1_1.ts index 6c08d687afba5..1b7c618a18ca5 100644 --- a/clients/client-database-migration-service/protocols/Aws_json1_1.ts +++ b/clients/client-database-migration-service/protocols/Aws_json1_1.ts @@ -6178,8 +6178,10 @@ const serializeAws_json1_1S3Settings = (input: S3Settings, context: __SerdeConte ...(input.BucketName !== undefined && { BucketName: input.BucketName }), ...(input.CdcInsertsAndUpdates !== undefined && { CdcInsertsAndUpdates: input.CdcInsertsAndUpdates }), ...(input.CdcInsertsOnly !== undefined && { CdcInsertsOnly: input.CdcInsertsOnly }), + ...(input.CdcPath !== undefined && { CdcPath: input.CdcPath }), ...(input.CompressionType !== undefined && { CompressionType: input.CompressionType }), ...(input.CsvDelimiter !== undefined && { CsvDelimiter: input.CsvDelimiter }), + ...(input.CsvNoSupValue !== undefined && { CsvNoSupValue: input.CsvNoSupValue }), ...(input.CsvRowDelimiter !== undefined && { CsvRowDelimiter: input.CsvRowDelimiter }), ...(input.DataFormat !== undefined && { DataFormat: input.DataFormat }), ...(input.DataPageSize !== undefined && { DataPageSize: input.DataPageSize }), @@ -6196,12 +6198,14 @@ const serializeAws_json1_1S3Settings = (input: S3Settings, context: __SerdeConte ParquetTimestampInMillisecond: input.ParquetTimestampInMillisecond, }), ...(input.ParquetVersion !== undefined && { ParquetVersion: input.ParquetVersion }), + ...(input.PreserveTransactions !== undefined && { PreserveTransactions: input.PreserveTransactions }), ...(input.RowGroupLength !== undefined && { RowGroupLength: input.RowGroupLength }), ...(input.ServerSideEncryptionKmsKeyId !== undefined && { ServerSideEncryptionKmsKeyId: input.ServerSideEncryptionKmsKeyId, }), ...(input.ServiceAccessRoleArn !== undefined && { ServiceAccessRoleArn: input.ServiceAccessRoleArn }), ...(input.TimestampColumnName !== undefined && { TimestampColumnName: input.TimestampColumnName }), + ...(input.UseCsvNoSupValue !== undefined && { UseCsvNoSupValue: input.UseCsvNoSupValue }), }; }; @@ -8263,9 +8267,12 @@ const deserializeAws_json1_1S3Settings = (output: any, context: __SerdeContext): : undefined, CdcInsertsOnly: output.CdcInsertsOnly !== undefined && output.CdcInsertsOnly !== null ? output.CdcInsertsOnly : undefined, + CdcPath: output.CdcPath !== undefined && output.CdcPath !== null ? output.CdcPath : undefined, CompressionType: output.CompressionType !== undefined && output.CompressionType !== null ? output.CompressionType : undefined, CsvDelimiter: output.CsvDelimiter !== undefined && output.CsvDelimiter !== null ? output.CsvDelimiter : undefined, + CsvNoSupValue: + output.CsvNoSupValue !== undefined && output.CsvNoSupValue !== null ? output.CsvNoSupValue : undefined, CsvRowDelimiter: output.CsvRowDelimiter !== undefined && output.CsvRowDelimiter !== null ? output.CsvRowDelimiter : undefined, DataFormat: output.DataFormat !== undefined && output.DataFormat !== null ? output.DataFormat : undefined, @@ -8305,6 +8312,10 @@ const deserializeAws_json1_1S3Settings = (output: any, context: __SerdeContext): : undefined, ParquetVersion: output.ParquetVersion !== undefined && output.ParquetVersion !== null ? output.ParquetVersion : undefined, + PreserveTransactions: + output.PreserveTransactions !== undefined && output.PreserveTransactions !== null + ? output.PreserveTransactions + : undefined, RowGroupLength: output.RowGroupLength !== undefined && output.RowGroupLength !== null ? output.RowGroupLength : undefined, ServerSideEncryptionKmsKeyId: @@ -8319,6 +8330,8 @@ const deserializeAws_json1_1S3Settings = (output: any, context: __SerdeContext): output.TimestampColumnName !== undefined && output.TimestampColumnName !== null ? output.TimestampColumnName : undefined, + UseCsvNoSupValue: + output.UseCsvNoSupValue !== undefined && output.UseCsvNoSupValue !== null ? output.UseCsvNoSupValue : undefined, } as any; }; diff --git a/clients/client-directory-service/DirectoryService.ts b/clients/client-directory-service/DirectoryService.ts index 2a50a36ce14ee..5a01dfed15496 100644 --- a/clients/client-directory-service/DirectoryService.ts +++ b/clients/client-directory-service/DirectoryService.ts @@ -884,8 +884,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Deletes from the system the certificate that was registered for a secured LDAP - * connection.

+ *

Deletes from the system the certificate that was registered for secure LDAP or client certificate authentication.

*/ public deregisterCertificate( args: DeregisterCertificateCommandInput, @@ -949,8 +948,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Displays information about the certificate registered for a secured LDAP - * connection.

+ *

Displays information about the certificate registered for secure LDAP or client certificate authentication.

*/ public describeCertificate( args: DescribeCertificateCommandInput, @@ -1154,7 +1152,8 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Provides information about the Regions that are configured for multi-Region replication.

+ *

Provides information about the Regions that are configured for multi-Region + * replication.

*/ public describeRegions( args: DescribeRegionsCommandInput, @@ -1289,7 +1288,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Disable client authentication for smart cards.

+ *

Disables alternative client authentication methods for the specified directory.

*/ public disableClientAuthentication( args: DisableClientAuthenticationCommandInput, @@ -1408,7 +1407,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Enable client authentication for smardtcards.

+ *

Enables alternative client authentication methods for the specified directory.

*/ public enableClientAuthentication( args: EnableClientAuthenticationCommandInput, @@ -1585,8 +1584,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

For the specified directory, lists all the certificates registered for a secured LDAP - * connection.

+ *

For the specified directory, lists all the certificates registered for a secure LDAP or client certificate authentication.

*/ public listCertificates( args: ListCertificatesCommandInput, @@ -1743,7 +1741,7 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Registers a certificate for secured LDAP connection.

+ *

Registers a certificate for a secure LDAP or client certificate authentication.

*/ public registerCertificate( args: RegisterCertificateCommandInput, @@ -1871,7 +1869,9 @@ export class DirectoryService extends DirectoryServiceClient { } /** - *

Stops all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation. Instead, use the DeleteDirectory API.

+ *

Stops all replication and removes the domain controllers from the specified Region. You + * cannot remove the primary Region with this operation. Instead, use the + * DeleteDirectory API.

*/ public removeRegion( args: RemoveRegionCommandInput, diff --git a/clients/client-directory-service/commands/DeregisterCertificateCommand.ts b/clients/client-directory-service/commands/DeregisterCertificateCommand.ts index 6b430918b57c1..114fc5afa17b4 100644 --- a/clients/client-directory-service/commands/DeregisterCertificateCommand.ts +++ b/clients/client-directory-service/commands/DeregisterCertificateCommand.ts @@ -21,8 +21,7 @@ export type DeregisterCertificateCommandInput = DeregisterCertificateRequest; export type DeregisterCertificateCommandOutput = DeregisterCertificateResult & __MetadataBearer; /** - *

Deletes from the system the certificate that was registered for a secured LDAP - * connection.

+ *

Deletes from the system the certificate that was registered for secure LDAP or client certificate authentication.

*/ export class DeregisterCertificateCommand extends $Command< DeregisterCertificateCommandInput, diff --git a/clients/client-directory-service/commands/DescribeCertificateCommand.ts b/clients/client-directory-service/commands/DescribeCertificateCommand.ts index b3bfd32c21cdf..a436eff24eb81 100644 --- a/clients/client-directory-service/commands/DescribeCertificateCommand.ts +++ b/clients/client-directory-service/commands/DescribeCertificateCommand.ts @@ -21,8 +21,7 @@ export type DescribeCertificateCommandInput = DescribeCertificateRequest; export type DescribeCertificateCommandOutput = DescribeCertificateResult & __MetadataBearer; /** - *

Displays information about the certificate registered for a secured LDAP - * connection.

+ *

Displays information about the certificate registered for secure LDAP or client certificate authentication.

*/ export class DescribeCertificateCommand extends $Command< DescribeCertificateCommandInput, diff --git a/clients/client-directory-service/commands/DescribeRegionsCommand.ts b/clients/client-directory-service/commands/DescribeRegionsCommand.ts index a121e99a7e284..fc02ab08e89b2 100644 --- a/clients/client-directory-service/commands/DescribeRegionsCommand.ts +++ b/clients/client-directory-service/commands/DescribeRegionsCommand.ts @@ -21,7 +21,8 @@ export type DescribeRegionsCommandInput = DescribeRegionsRequest; export type DescribeRegionsCommandOutput = DescribeRegionsResult & __MetadataBearer; /** - *

Provides information about the Regions that are configured for multi-Region replication.

+ *

Provides information about the Regions that are configured for multi-Region + * replication.

*/ export class DescribeRegionsCommand extends $Command< DescribeRegionsCommandInput, diff --git a/clients/client-directory-service/commands/DisableClientAuthenticationCommand.ts b/clients/client-directory-service/commands/DisableClientAuthenticationCommand.ts index 05e37e2546b95..c2e3aee49ebeb 100644 --- a/clients/client-directory-service/commands/DisableClientAuthenticationCommand.ts +++ b/clients/client-directory-service/commands/DisableClientAuthenticationCommand.ts @@ -21,7 +21,7 @@ export type DisableClientAuthenticationCommandInput = DisableClientAuthenticatio export type DisableClientAuthenticationCommandOutput = DisableClientAuthenticationResult & __MetadataBearer; /** - *

Disable client authentication for smart cards.

+ *

Disables alternative client authentication methods for the specified directory.

*/ export class DisableClientAuthenticationCommand extends $Command< DisableClientAuthenticationCommandInput, diff --git a/clients/client-directory-service/commands/EnableClientAuthenticationCommand.ts b/clients/client-directory-service/commands/EnableClientAuthenticationCommand.ts index 96ed8aafb8e41..effcca893a36e 100644 --- a/clients/client-directory-service/commands/EnableClientAuthenticationCommand.ts +++ b/clients/client-directory-service/commands/EnableClientAuthenticationCommand.ts @@ -21,7 +21,7 @@ export type EnableClientAuthenticationCommandInput = EnableClientAuthenticationR export type EnableClientAuthenticationCommandOutput = EnableClientAuthenticationResult & __MetadataBearer; /** - *

Enable client authentication for smardtcards.

+ *

Enables alternative client authentication methods for the specified directory.

*/ export class EnableClientAuthenticationCommand extends $Command< EnableClientAuthenticationCommandInput, diff --git a/clients/client-directory-service/commands/ListCertificatesCommand.ts b/clients/client-directory-service/commands/ListCertificatesCommand.ts index 009ae2b244623..970f83cd600fa 100644 --- a/clients/client-directory-service/commands/ListCertificatesCommand.ts +++ b/clients/client-directory-service/commands/ListCertificatesCommand.ts @@ -21,8 +21,7 @@ export type ListCertificatesCommandInput = ListCertificatesRequest; export type ListCertificatesCommandOutput = ListCertificatesResult & __MetadataBearer; /** - *

For the specified directory, lists all the certificates registered for a secured LDAP - * connection.

+ *

For the specified directory, lists all the certificates registered for a secure LDAP or client certificate authentication.

*/ export class ListCertificatesCommand extends $Command< ListCertificatesCommandInput, diff --git a/clients/client-directory-service/commands/RegisterCertificateCommand.ts b/clients/client-directory-service/commands/RegisterCertificateCommand.ts index 16172619f1af3..acdf81d6fc502 100644 --- a/clients/client-directory-service/commands/RegisterCertificateCommand.ts +++ b/clients/client-directory-service/commands/RegisterCertificateCommand.ts @@ -21,7 +21,7 @@ export type RegisterCertificateCommandInput = RegisterCertificateRequest; export type RegisterCertificateCommandOutput = RegisterCertificateResult & __MetadataBearer; /** - *

Registers a certificate for secured LDAP connection.

+ *

Registers a certificate for a secure LDAP or client certificate authentication.

*/ export class RegisterCertificateCommand extends $Command< RegisterCertificateCommandInput, diff --git a/clients/client-directory-service/commands/RemoveRegionCommand.ts b/clients/client-directory-service/commands/RemoveRegionCommand.ts index 4c187f8d90fac..9db2973de7d4d 100644 --- a/clients/client-directory-service/commands/RemoveRegionCommand.ts +++ b/clients/client-directory-service/commands/RemoveRegionCommand.ts @@ -21,7 +21,9 @@ export type RemoveRegionCommandInput = RemoveRegionRequest; export type RemoveRegionCommandOutput = RemoveRegionResult & __MetadataBearer; /** - *

Stops all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation. Instead, use the DeleteDirectory API.

+ *

Stops all replication and removes the domain controllers from the specified Region. You + * cannot remove the primary Region with this operation. Instead, use the + * DeleteDirectory API.

*/ export class RemoveRegionCommand extends $Command< RemoveRegionCommandInput, diff --git a/clients/client-directory-service/models/models_0.ts b/clients/client-directory-service/models/models_0.ts index e4e90b125f3d4..cb98ac3d20485 100644 --- a/clients/client-directory-service/models/models_0.ts +++ b/clients/client-directory-service/models/models_0.ts @@ -227,7 +227,7 @@ export namespace ServiceException { } /** - *

You do not have sufficient access to perform this action.

+ *

Client authentication is not available in this region at this time.

*/ export interface AccessDeniedException extends __SmithyException, $MetadataBearer { name: "AccessDeniedException"; @@ -465,7 +465,8 @@ export interface AddRegionRequest { DirectoryId: string | undefined; /** - *

The name of the Region where you want to add domain controllers for replication. For example, us-east-1.

+ *

The name of the Region where you want to add domain controllers for replication. For + * example, us-east-1.

*/ RegionName: string | undefined; @@ -490,7 +491,8 @@ export namespace AddRegionResult { } /** - *

The Region you specified is the same Region where the AWS Managed Microsoft AD directory was created. Specify a different Region and try again.

+ *

The Region you specified is the same Region where the AWS Managed Microsoft AD directory + * was created. Specify a different Region and try again.

*/ export interface DirectoryAlreadyInRegionException extends __SmithyException, $MetadataBearer { name: "DirectoryAlreadyInRegionException"; @@ -536,7 +538,8 @@ export namespace DirectoryDoesNotExistException { } /** - *

You have reached the limit for maximum number of simultaneous Region replications per directory.

+ *

You have reached the limit for maximum number of simultaneous Region replications per + * directory.

*/ export interface RegionLimitExceededException extends __SmithyException, $MetadataBearer { name: "RegionLimitExceededException"; @@ -722,11 +725,11 @@ export namespace CancelSchemaExtensionResult { } /** - *

Contains information about the client certificate authentication settings, such as ClientLDAPS or ClientCertAuth.

+ *

Contains information about the client certificate authentication settings for the RegisterCertificate and DescribeCertificate operations.

*/ export interface ClientCertAuthSettings { /** - *

Specifies the URL of the default OCSP server used to check for revocation status.

+ *

Specifies the URL of the default OCSP server used to check for revocation status. A secondary value to any OCSP address found in the AIA extension of the user certificate.

*/ OCSPUrl?: string; } @@ -786,12 +789,12 @@ export interface Certificate { ExpiryDateTime?: Date; /** - *

Select ClientCertAuth for smart card integration.

+ *

The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

*/ Type?: CertificateType | string; /** - *

Provides information about the client certificate authentication settings. The default value is ClientLDAPS.

+ *

A ClientCertAuthSettings object that contains client certificate authentication settings.

*/ ClientCertAuthSettings?: ClientCertAuthSettings; } @@ -873,7 +876,7 @@ export interface CertificateInfo { ExpiryDateTime?: Date; /** - *

Displays the type of certificate.

+ *

The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

*/ Type?: CertificateType | string; } @@ -1300,13 +1303,16 @@ export interface CreateDirectoryRequest { *

Numbers and upper case and lowercase (?=.*\d)(?=.*[A-Z])(?=.*[a-z])

* *
  • - *

    Numbers and special characters and lower case (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z])

    + *

    Numbers and special characters and lower case + * (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z])

    *
  • *
  • - *

    Special characters and upper case and lower case (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z])

    + *

    Special characters and upper case and lower case + * (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z])

    *
  • *
  • - *

    Numbers and upper case and special characters (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s])

    + *

    Numbers and upper case and special characters + * (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s])

    *
  • * *

    For additional information about how Active Directory passwords are enforced, see Password must meet complexity requirements on the Microsoft website.

    @@ -2115,7 +2121,8 @@ export namespace OwnerDirectoryDescription { } /** - *

    Provides information about the Regions that are configured for multi-Region replication.

    + *

    Provides information about the Regions that are configured for multi-Region + * replication.

    */ export interface RegionsInfo { /** @@ -2124,7 +2131,8 @@ export interface RegionsInfo { PrimaryRegion?: string; /** - *

    Lists the Regions where the directory has been replicated, excluding the primary Region.

    + *

    Lists the Regions where the directory has been replicated, excluding the primary + * Region.

    */ AdditionalRegions?: string[]; } @@ -2662,8 +2670,7 @@ export interface DescribeRegionsRequest { RegionName?: string; /** - *

    The DescribeRegionsResult.NextToken value from a previous call to - * DescribeRegions. Pass null if this is the first call.

    + *

    The DescribeRegionsResult.NextToken value from a previous call to DescribeRegions. Pass null if this is the first call.

    */ NextToken?: string; } @@ -2709,7 +2716,8 @@ export interface RegionDescription { VpcSettings?: DirectoryVpcSettings; /** - *

    The desired number of domain controllers in the specified Region for the specified directory.

    + *

    The desired number of domain controllers in the specified Region for the specified + * directory.

    */ DesiredNumberOfDomainControllers?: number; @@ -2742,8 +2750,9 @@ export interface DescribeRegionsResult { RegionsDescription?: RegionDescription[]; /** - *

    If not null, more results are available. Pass this value for the NextToken parameter - * in a subsequent call to DescribeRegions to retrieve the next set of items.

    + *

    If not null, more results are available. Pass this value for the NextToken + * parameter in a subsequent call to DescribeRegions to retrieve the next set + * of items.

    */ NextToken?: string; } @@ -3137,12 +3146,12 @@ export namespace DirectoryNotSharedException { export interface DisableClientAuthenticationRequest { /** - *

    Disable client authentication in a specified directory for smart cards.

    + *

    The identifier of the directory

    */ DirectoryId: string | undefined; /** - *

    Disable the type of client authentication request.

    + *

    The type of client authentication to disable. Currently, only the parameter, SmartCard is supported.

    */ Type: ClientAuthenticationType | string | undefined; } @@ -3162,7 +3171,7 @@ export namespace DisableClientAuthenticationResult { } /** - *

    The client authorization was invalid.

    + *

    Client authentication is already enabled.

    */ export interface InvalidClientAuthStatusException extends __SmithyException, $MetadataBearer { name: "InvalidClientAuthStatusException"; @@ -3307,12 +3316,15 @@ export namespace DisableSsoResult { export interface EnableClientAuthenticationRequest { /** - *

    Enable client authentication in a specified directory for smart cards.

    + *

    The identifier of the specified directory.

    */ DirectoryId: string | undefined; /** - *

    Enable the type of client authentication request.

    + *

    The type of client authentication to enable. Currently only the value SmartCard is + * supported. Smart card authentication in AD Connector requires that you enable Kerberos + * Constrained Delegation for the Service User to the LDAP service in the on-premises AD. + *

    */ Type: ClientAuthenticationType | string | undefined; } @@ -3332,8 +3344,8 @@ export namespace EnableClientAuthenticationResult { } /** - *

    The LDAP activities could not be performed because at least one valid certificate must be - * registered with the system.

    + *

    Client authentication setup could not be completed because at least one valid certificate must be + * registered in the system.

    */ export interface NoAvailableCertificateException extends __SmithyException, $MetadataBearer { name: "NoAvailableCertificateException"; @@ -3932,12 +3944,12 @@ export interface RegisterCertificateRequest { CertificateData: string | undefined; /** - *

    The certificate type to register for the request.

    + *

    The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

    */ Type?: CertificateType | string; /** - *

    Contains information about the client certificate authentication settings, such as ClientLDAPS or ClientCertAuth.

    + *

    A ClientCertAuthSettings object that contains client certificate authentication settings.

    */ ClientCertAuthSettings?: ClientCertAuthSettings; } diff --git a/clients/client-ec2/models/models_0.ts b/clients/client-ec2/models/models_0.ts index 221913a13c666..36c5c6fba2f86 100644 --- a/clients/client-ec2/models/models_0.ts +++ b/clients/client-ec2/models/models_0.ts @@ -1079,12 +1079,12 @@ export interface TagSpecification { * client-vpn-endpoint | customer-gateway | * dedicated-host | dhcp-options | export-image-task * | export-instance-task | fleet | fpga-image | - * host-reservation | import-image-task | + * host-reservation | image| import-image-task | * import-snapshot-task | instance | * internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 | * key-pair | launch-template | placement-group | * prefix-list | natgateway | network-acl | - * route-table | security-group | spot-fleet-request + * route-table | security-group| snapshot | spot-fleet-request * | spot-instances-request | snapshot | subnet | * traffic-mirror-filter | traffic-mirror-session | * traffic-mirror-target | transit-gateway | @@ -5462,6 +5462,9 @@ export type _InstanceType = | "g3.4xlarge" | "g3.8xlarge" | "g3s.xlarge" + | "g4ad.16xlarge" + | "g4ad.4xlarge" + | "g4ad.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "g4dn.2xlarge" @@ -6888,9 +6891,29 @@ export interface CreateImageRequest { Name: string | undefined; /** - *

    By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the 'No Reboot' option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

    + *

    By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the No Reboot option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

    */ NoReboot?: boolean; + + /** + *

    The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the + * snapshots, or both.

    + *
      + *
    • + *

      To tag the AMI, the value for ResourceType must be + * image.

      + *
    • + *
    • + *

      To tag the snapshots that are created of the root volume and of other EBS volumes that + * are attached to the instance, the value for ResourceType must be + * snapshot. The same tag is applied to all of the snapshots that are + * created.

      + *
    • + *
    + *

    If you specify other values for ResourceType, the request fails.

    + *

    To tag an AMI or snapshot after it has been created, see CreateTags.

    + */ + TagSpecifications?: TagSpecification[]; } export namespace CreateImageRequest { diff --git a/clients/client-ec2/protocols/Aws_ec2.ts b/clients/client-ec2/protocols/Aws_ec2.ts index f39ea0f621c5d..778ed6a778bc9 100644 --- a/clients/client-ec2/protocols/Aws_ec2.ts +++ b/clients/client-ec2/protocols/Aws_ec2.ts @@ -30533,6 +30533,13 @@ const serializeAws_ec2CreateImageRequest = (input: CreateImageRequest, context: if (input.NoReboot !== undefined) { entries["NoReboot"] = input.NoReboot; } + if (input.TagSpecifications !== undefined) { + const memberEntries = serializeAws_ec2TagSpecificationList(input.TagSpecifications, context); + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TagSpecification.${key.substring(key.indexOf(".") + 1)}`; + entries[loc] = value; + }); + } return entries; }; diff --git a/clients/client-ecr/ECR.ts b/clients/client-ecr/ECR.ts index 8685b3b727f76..4bf0ea48f104e 100644 --- a/clients/client-ecr/ECR.ts +++ b/clients/client-ecr/ECR.ts @@ -29,6 +29,11 @@ import { DeleteLifecyclePolicyCommandInput, DeleteLifecyclePolicyCommandOutput, } from "./commands/DeleteLifecyclePolicyCommand"; +import { + DeleteRegistryPolicyCommand, + DeleteRegistryPolicyCommandInput, + DeleteRegistryPolicyCommandOutput, +} from "./commands/DeleteRegistryPolicyCommand"; import { DeleteRepositoryCommand, DeleteRepositoryCommandInput, @@ -49,6 +54,11 @@ import { DescribeImagesCommandInput, DescribeImagesCommandOutput, } from "./commands/DescribeImagesCommand"; +import { + DescribeRegistryCommand, + DescribeRegistryCommandInput, + DescribeRegistryCommandOutput, +} from "./commands/DescribeRegistryCommand"; import { DescribeRepositoriesCommand, DescribeRepositoriesCommandInput, @@ -74,6 +84,11 @@ import { GetLifecyclePolicyPreviewCommandInput, GetLifecyclePolicyPreviewCommandOutput, } from "./commands/GetLifecyclePolicyPreviewCommand"; +import { + GetRegistryPolicyCommand, + GetRegistryPolicyCommandInput, + GetRegistryPolicyCommandOutput, +} from "./commands/GetRegistryPolicyCommand"; import { GetRepositoryPolicyCommand, GetRepositoryPolicyCommandInput, @@ -106,6 +121,16 @@ import { PutLifecyclePolicyCommandInput, PutLifecyclePolicyCommandOutput, } from "./commands/PutLifecyclePolicyCommand"; +import { + PutRegistryPolicyCommand, + PutRegistryPolicyCommandInput, + PutRegistryPolicyCommandOutput, +} from "./commands/PutRegistryPolicyCommand"; +import { + PutReplicationConfigurationCommand, + PutReplicationConfigurationCommandInput, + PutReplicationConfigurationCommandOutput, +} from "./commands/PutReplicationConfigurationCommand"; import { SetRepositoryPolicyCommand, SetRepositoryPolicyCommandInput, @@ -360,6 +385,38 @@ export class ECR extends ECRClient { } } + /** + *

    Deletes the registry permissions policy.

    + */ + public deleteRegistryPolicy( + args: DeleteRegistryPolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteRegistryPolicy( + args: DeleteRegistryPolicyCommandInput, + cb: (err: any, data?: DeleteRegistryPolicyCommandOutput) => void + ): void; + public deleteRegistryPolicy( + args: DeleteRegistryPolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteRegistryPolicyCommandOutput) => void + ): void; + public deleteRegistryPolicy( + args: DeleteRegistryPolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteRegistryPolicyCommandOutput) => void), + cb?: (err: any, data?: DeleteRegistryPolicyCommandOutput) => void + ): Promise | void { + const command = new DeleteRegistryPolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Deletes a repository. If the repository contains images, you must either delete all * images in the repository or use the force option to delete the @@ -496,6 +553,40 @@ export class ECR extends ECRClient { } } + /** + *

    Describes the settings for a registry. The replication configuration for a repository + * can be created or updated with the PutReplicationConfiguration API + * action.

    + */ + public describeRegistry( + args: DescribeRegistryCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeRegistry( + args: DescribeRegistryCommandInput, + cb: (err: any, data?: DescribeRegistryCommandOutput) => void + ): void; + public describeRegistry( + args: DescribeRegistryCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeRegistryCommandOutput) => void + ): void; + public describeRegistry( + args: DescribeRegistryCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeRegistryCommandOutput) => void), + cb?: (err: any, data?: DescribeRegistryCommandOutput) => void + ): Promise | void { + const command = new DescribeRegistryCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Describes image repositories in a registry.

    */ @@ -671,6 +762,38 @@ export class ECR extends ECRClient { } } + /** + *

    Retrieves the permissions policy for a registry.

    + */ + public getRegistryPolicy( + args: GetRegistryPolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getRegistryPolicy( + args: GetRegistryPolicyCommandInput, + cb: (err: any, data?: GetRegistryPolicyCommandOutput) => void + ): void; + public getRegistryPolicy( + args: GetRegistryPolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetRegistryPolicyCommandOutput) => void + ): void; + public getRegistryPolicy( + args: GetRegistryPolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetRegistryPolicyCommandOutput) => void), + cb?: (err: any, data?: GetRegistryPolicyCommandOutput) => void + ): Promise | void { + const command = new GetRegistryPolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Retrieves the repository policy for the specified repository.

    */ @@ -940,6 +1063,82 @@ export class ECR extends ECRClient { } } + /** + *

    Creates or updates the permissions policy for your registry.

    + *

    A registry policy is used to specify permissions for another AWS account and is used + * when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide.

    + */ + public putRegistryPolicy( + args: PutRegistryPolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putRegistryPolicy( + args: PutRegistryPolicyCommandInput, + cb: (err: any, data?: PutRegistryPolicyCommandOutput) => void + ): void; + public putRegistryPolicy( + args: PutRegistryPolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutRegistryPolicyCommandOutput) => void + ): void; + public putRegistryPolicy( + args: PutRegistryPolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutRegistryPolicyCommandOutput) => void), + cb?: (err: any, data?: PutRegistryPolicyCommandOutput) => void + ): Promise | void { + const command = new PutRegistryPolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Creates or updates the replication configuration for a registry. The existing + * replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the + * PutReplicationConfiguration API is called, a service-linked IAM role is created in + * your account for the replication process. For more information, see Using + * Service-Linked Roles for Amazon ECR in the + * Amazon Elastic Container Registry User Guide.

    + * + *

    When configuring cross-account replication, the destination account must grant the + * source account permission to replicate. This permission is controlled using a + * registry permissions policy. For more information, see PutRegistryPolicy.

    + *
    + */ + public putReplicationConfiguration( + args: PutReplicationConfigurationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putReplicationConfiguration( + args: PutReplicationConfigurationCommandInput, + cb: (err: any, data?: PutReplicationConfigurationCommandOutput) => void + ): void; + public putReplicationConfiguration( + args: PutReplicationConfigurationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutReplicationConfigurationCommandOutput) => void + ): void; + public putReplicationConfiguration( + args: PutReplicationConfigurationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutReplicationConfigurationCommandOutput) => void), + cb?: (err: any, data?: PutReplicationConfigurationCommandOutput) => void + ): Promise | void { + const command = new PutReplicationConfigurationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Applies a repository policy to the specified repository to control access permissions. * For more information, see Amazon ECR Repository diff --git a/clients/client-ecr/ECRClient.ts b/clients/client-ecr/ECRClient.ts index e50b57f3a679f..0d6375c2407ae 100644 --- a/clients/client-ecr/ECRClient.ts +++ b/clients/client-ecr/ECRClient.ts @@ -13,6 +13,10 @@ import { DeleteLifecyclePolicyCommandInput, DeleteLifecyclePolicyCommandOutput, } from "./commands/DeleteLifecyclePolicyCommand"; +import { + DeleteRegistryPolicyCommandInput, + DeleteRegistryPolicyCommandOutput, +} from "./commands/DeleteRegistryPolicyCommand"; import { DeleteRepositoryCommandInput, DeleteRepositoryCommandOutput } from "./commands/DeleteRepositoryCommand"; import { DeleteRepositoryPolicyCommandInput, @@ -23,6 +27,7 @@ import { DescribeImageScanFindingsCommandOutput, } from "./commands/DescribeImageScanFindingsCommand"; import { DescribeImagesCommandInput, DescribeImagesCommandOutput } from "./commands/DescribeImagesCommand"; +import { DescribeRegistryCommandInput, DescribeRegistryCommandOutput } from "./commands/DescribeRegistryCommand"; import { DescribeRepositoriesCommandInput, DescribeRepositoriesCommandOutput, @@ -40,6 +45,7 @@ import { GetLifecyclePolicyPreviewCommandInput, GetLifecyclePolicyPreviewCommandOutput, } from "./commands/GetLifecyclePolicyPreviewCommand"; +import { GetRegistryPolicyCommandInput, GetRegistryPolicyCommandOutput } from "./commands/GetRegistryPolicyCommand"; import { GetRepositoryPolicyCommandInput, GetRepositoryPolicyCommandOutput, @@ -63,6 +69,11 @@ import { PutImageTagMutabilityCommandOutput, } from "./commands/PutImageTagMutabilityCommand"; import { PutLifecyclePolicyCommandInput, PutLifecyclePolicyCommandOutput } from "./commands/PutLifecyclePolicyCommand"; +import { PutRegistryPolicyCommandInput, PutRegistryPolicyCommandOutput } from "./commands/PutRegistryPolicyCommand"; +import { + PutReplicationConfigurationCommandInput, + PutReplicationConfigurationCommandOutput, +} from "./commands/PutReplicationConfigurationCommand"; import { SetRepositoryPolicyCommandInput, SetRepositoryPolicyCommandOutput, @@ -131,15 +142,18 @@ export type ServiceInputTypes = | CompleteLayerUploadCommandInput | CreateRepositoryCommandInput | DeleteLifecyclePolicyCommandInput + | DeleteRegistryPolicyCommandInput | DeleteRepositoryCommandInput | DeleteRepositoryPolicyCommandInput | DescribeImageScanFindingsCommandInput | DescribeImagesCommandInput + | DescribeRegistryCommandInput | DescribeRepositoriesCommandInput | GetAuthorizationTokenCommandInput | GetDownloadUrlForLayerCommandInput | GetLifecyclePolicyCommandInput | GetLifecyclePolicyPreviewCommandInput + | GetRegistryPolicyCommandInput | GetRepositoryPolicyCommandInput | InitiateLayerUploadCommandInput | ListImagesCommandInput @@ -148,6 +162,8 @@ export type ServiceInputTypes = | PutImageScanningConfigurationCommandInput | PutImageTagMutabilityCommandInput | PutLifecyclePolicyCommandInput + | PutRegistryPolicyCommandInput + | PutReplicationConfigurationCommandInput | SetRepositoryPolicyCommandInput | StartImageScanCommandInput | StartLifecyclePolicyPreviewCommandInput @@ -162,15 +178,18 @@ export type ServiceOutputTypes = | CompleteLayerUploadCommandOutput | CreateRepositoryCommandOutput | DeleteLifecyclePolicyCommandOutput + | DeleteRegistryPolicyCommandOutput | DeleteRepositoryCommandOutput | DeleteRepositoryPolicyCommandOutput | DescribeImageScanFindingsCommandOutput | DescribeImagesCommandOutput + | DescribeRegistryCommandOutput | DescribeRepositoriesCommandOutput | GetAuthorizationTokenCommandOutput | GetDownloadUrlForLayerCommandOutput | GetLifecyclePolicyCommandOutput | GetLifecyclePolicyPreviewCommandOutput + | GetRegistryPolicyCommandOutput | GetRepositoryPolicyCommandOutput | InitiateLayerUploadCommandOutput | ListImagesCommandOutput @@ -179,6 +198,8 @@ export type ServiceOutputTypes = | PutImageScanningConfigurationCommandOutput | PutImageTagMutabilityCommandOutput | PutLifecyclePolicyCommandOutput + | PutRegistryPolicyCommandOutput + | PutReplicationConfigurationCommandOutput | SetRepositoryPolicyCommandOutput | StartImageScanCommandOutput | StartLifecyclePolicyPreviewCommandOutput diff --git a/clients/client-ecr/commands/DeleteRegistryPolicyCommand.ts b/clients/client-ecr/commands/DeleteRegistryPolicyCommand.ts new file mode 100644 index 0000000000000..20ab28e169985 --- /dev/null +++ b/clients/client-ecr/commands/DeleteRegistryPolicyCommand.ts @@ -0,0 +1,88 @@ +import { ECRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECRClient"; +import { DeleteRegistryPolicyRequest, DeleteRegistryPolicyResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteRegistryPolicyCommand, + serializeAws_json1_1DeleteRegistryPolicyCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteRegistryPolicyCommandInput = DeleteRegistryPolicyRequest; +export type DeleteRegistryPolicyCommandOutput = DeleteRegistryPolicyResponse & __MetadataBearer; + +/** + *

    Deletes the registry permissions policy.

    + */ +export class DeleteRegistryPolicyCommand extends $Command< + DeleteRegistryPolicyCommandInput, + DeleteRegistryPolicyCommandOutput, + ECRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteRegistryPolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ECRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ECRClient"; + const commandName = "DeleteRegistryPolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteRegistryPolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteRegistryPolicyResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteRegistryPolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteRegistryPolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteRegistryPolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ecr/commands/DescribeRegistryCommand.ts b/clients/client-ecr/commands/DescribeRegistryCommand.ts new file mode 100644 index 0000000000000..5c2e8956b248a --- /dev/null +++ b/clients/client-ecr/commands/DescribeRegistryCommand.ts @@ -0,0 +1,90 @@ +import { ECRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECRClient"; +import { DescribeRegistryRequest, DescribeRegistryResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DescribeRegistryCommand, + serializeAws_json1_1DescribeRegistryCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeRegistryCommandInput = DescribeRegistryRequest; +export type DescribeRegistryCommandOutput = DescribeRegistryResponse & __MetadataBearer; + +/** + *

    Describes the settings for a registry. The replication configuration for a repository + * can be created or updated with the PutReplicationConfiguration API + * action.

    + */ +export class DescribeRegistryCommand extends $Command< + DescribeRegistryCommandInput, + DescribeRegistryCommandOutput, + ECRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeRegistryCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ECRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ECRClient"; + const commandName = "DescribeRegistryCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeRegistryRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeRegistryResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeRegistryCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeRegistryCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeRegistryCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ecr/commands/GetRegistryPolicyCommand.ts b/clients/client-ecr/commands/GetRegistryPolicyCommand.ts new file mode 100644 index 0000000000000..0818edd657d64 --- /dev/null +++ b/clients/client-ecr/commands/GetRegistryPolicyCommand.ts @@ -0,0 +1,88 @@ +import { ECRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECRClient"; +import { GetRegistryPolicyRequest, GetRegistryPolicyResponse } from "../models/models_0"; +import { + deserializeAws_json1_1GetRegistryPolicyCommand, + serializeAws_json1_1GetRegistryPolicyCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetRegistryPolicyCommandInput = GetRegistryPolicyRequest; +export type GetRegistryPolicyCommandOutput = GetRegistryPolicyResponse & __MetadataBearer; + +/** + *

    Retrieves the permissions policy for a registry.

    + */ +export class GetRegistryPolicyCommand extends $Command< + GetRegistryPolicyCommandInput, + GetRegistryPolicyCommandOutput, + ECRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetRegistryPolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ECRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ECRClient"; + const commandName = "GetRegistryPolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetRegistryPolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetRegistryPolicyResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetRegistryPolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetRegistryPolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetRegistryPolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ecr/commands/PutRegistryPolicyCommand.ts b/clients/client-ecr/commands/PutRegistryPolicyCommand.ts new file mode 100644 index 0000000000000..d21ceae980ada --- /dev/null +++ b/clients/client-ecr/commands/PutRegistryPolicyCommand.ts @@ -0,0 +1,90 @@ +import { ECRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECRClient"; +import { PutRegistryPolicyRequest, PutRegistryPolicyResponse } from "../models/models_0"; +import { + deserializeAws_json1_1PutRegistryPolicyCommand, + serializeAws_json1_1PutRegistryPolicyCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type PutRegistryPolicyCommandInput = PutRegistryPolicyRequest; +export type PutRegistryPolicyCommandOutput = PutRegistryPolicyResponse & __MetadataBearer; + +/** + *

    Creates or updates the permissions policy for your registry.

    + *

    A registry policy is used to specify permissions for another AWS account and is used + * when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide.

    + */ +export class PutRegistryPolicyCommand extends $Command< + PutRegistryPolicyCommandInput, + PutRegistryPolicyCommandOutput, + ECRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutRegistryPolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ECRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ECRClient"; + const commandName = "PutRegistryPolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutRegistryPolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutRegistryPolicyResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutRegistryPolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1PutRegistryPolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1PutRegistryPolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ecr/commands/PutReplicationConfigurationCommand.ts b/clients/client-ecr/commands/PutReplicationConfigurationCommand.ts new file mode 100644 index 0000000000000..2dd1a3ae5a3d3 --- /dev/null +++ b/clients/client-ecr/commands/PutReplicationConfigurationCommand.ts @@ -0,0 +1,101 @@ +import { ECRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECRClient"; +import { PutReplicationConfigurationRequest, PutReplicationConfigurationResponse } from "../models/models_0"; +import { + deserializeAws_json1_1PutReplicationConfigurationCommand, + serializeAws_json1_1PutReplicationConfigurationCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type PutReplicationConfigurationCommandInput = PutReplicationConfigurationRequest; +export type PutReplicationConfigurationCommandOutput = PutReplicationConfigurationResponse & __MetadataBearer; + +/** + *

    Creates or updates the replication configuration for a registry. The existing + * replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the + * PutReplicationConfiguration API is called, a service-linked IAM role is created in + * your account for the replication process. For more information, see Using + * Service-Linked Roles for Amazon ECR in the + * Amazon Elastic Container Registry User Guide.

    + * + *

    When configuring cross-account replication, the destination account must grant the + * source account permission to replicate. This permission is controlled using a + * registry permissions policy. For more information, see PutRegistryPolicy.

    + *
    + */ +export class PutReplicationConfigurationCommand extends $Command< + PutReplicationConfigurationCommandInput, + PutReplicationConfigurationCommandOutput, + ECRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutReplicationConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ECRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ECRClient"; + const commandName = "PutReplicationConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutReplicationConfigurationRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutReplicationConfigurationResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutReplicationConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1PutReplicationConfigurationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1PutReplicationConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ecr/index.ts b/clients/client-ecr/index.ts index 80602cb2d34b4..fa3911b57e8b2 100644 --- a/clients/client-ecr/index.ts +++ b/clients/client-ecr/index.ts @@ -6,12 +6,14 @@ export * from "./commands/BatchGetImageCommand"; export * from "./commands/CompleteLayerUploadCommand"; export * from "./commands/CreateRepositoryCommand"; export * from "./commands/DeleteLifecyclePolicyCommand"; +export * from "./commands/DeleteRegistryPolicyCommand"; export * from "./commands/DeleteRepositoryCommand"; export * from "./commands/DeleteRepositoryPolicyCommand"; export * from "./commands/DescribeImagesCommand"; export * from "./pagination/DescribeImagesPaginator"; export * from "./commands/DescribeImageScanFindingsCommand"; export * from "./pagination/DescribeImageScanFindingsPaginator"; +export * from "./commands/DescribeRegistryCommand"; export * from "./commands/DescribeRepositoriesCommand"; export * from "./pagination/DescribeRepositoriesPaginator"; export * from "./commands/GetAuthorizationTokenCommand"; @@ -19,6 +21,7 @@ export * from "./commands/GetDownloadUrlForLayerCommand"; export * from "./commands/GetLifecyclePolicyCommand"; export * from "./commands/GetLifecyclePolicyPreviewCommand"; export * from "./pagination/GetLifecyclePolicyPreviewPaginator"; +export * from "./commands/GetRegistryPolicyCommand"; export * from "./commands/GetRepositoryPolicyCommand"; export * from "./commands/InitiateLayerUploadCommand"; export * from "./commands/ListImagesCommand"; @@ -28,6 +31,8 @@ export * from "./commands/PutImageCommand"; export * from "./commands/PutImageScanningConfigurationCommand"; export * from "./commands/PutImageTagMutabilityCommand"; export * from "./commands/PutLifecyclePolicyCommand"; +export * from "./commands/PutRegistryPolicyCommand"; +export * from "./commands/PutReplicationConfigurationCommand"; export * from "./commands/SetRepositoryPolicyCommand"; export * from "./commands/StartImageScanCommand"; export * from "./commands/StartLifecyclePolicyPreviewCommand"; diff --git a/clients/client-ecr/models/models_0.ts b/clients/client-ecr/models/models_0.ts index 363a3fc7d929f..6b8e3110c8b16 100644 --- a/clients/client-ecr/models/models_0.ts +++ b/clients/client-ecr/models/models_0.ts @@ -34,6 +34,11 @@ export enum LayerFailureCode { *

    An object representing an Amazon ECR image layer failure.

    */ export interface LayerFailure { + /** + *

    The layer digest associated with the failure.

    + */ + layerDigest?: string; + /** *

    The failure code associated with the failure.

    */ @@ -43,11 +48,6 @@ export interface LayerFailure { *

    The reason for the failure.

    */ failureReason?: string; - - /** - *

    The layer digest associated with the failure.

    - */ - layerDigest?: string; } export namespace LayerFailure { @@ -65,11 +65,6 @@ export enum LayerAvailability { *

    An object representing an Amazon ECR image layer.

    */ export interface Layer { - /** - *

    The size, in bytes, of the image layer.

    - */ - layerSize?: number; - /** *

    The sha256 digest of the image layer.

    */ @@ -80,6 +75,11 @@ export interface Layer { */ layerAvailability?: LayerAvailability | string; + /** + *

    The size, in bytes, of the image layer.

    + */ + layerSize?: number; + /** *

    The media type of the layer, such as * application/vnd.docker.image.rootfs.diff.tar.gzip or @@ -95,16 +95,16 @@ export namespace Layer { } export interface BatchCheckLayerAvailabilityResponse { - /** - *

    Any failures associated with the call.

    - */ - failures?: LayerFailure[]; - /** *

    A list of image layer objects corresponding to the image layer references in the * request.

    */ layers?: Layer[]; + + /** + *

    Any failures associated with the call.

    + */ + failures?: LayerFailure[]; } export namespace BatchCheckLayerAvailabilityResponse { @@ -195,6 +195,12 @@ export namespace ImageIdentifier { * either the imageTag or imageDigest.

    */ export interface BatchDeleteImageRequest { + /** + *

    The AWS account ID associated with the registry that contains the image to delete. + * If you do not specify a registry, the default registry is assumed.

    + */ + registryId?: string; + /** *

    The repository that contains the image to delete.

    */ @@ -206,12 +212,6 @@ export interface BatchDeleteImageRequest { * imageDigest=digest.

    */ imageIds: ImageIdentifier[] | undefined; - - /** - *

    The AWS account ID associated with the registry that contains the image to delete. - * If you do not specify a registry, the default registry is assumed.

    - */ - registryId?: string; } export namespace BatchDeleteImageRequest { @@ -234,6 +234,11 @@ export enum ImageFailureCode { *

    An object representing an Amazon ECR image failure.

    */ export interface ImageFailure { + /** + *

    The image ID associated with the failure.

    + */ + imageId?: ImageIdentifier; + /** *

    The code associated with the failure.

    */ @@ -243,11 +248,6 @@ export interface ImageFailure { *

    The reason for the failure.

    */ failureReason?: string; - - /** - *

    The image ID associated with the failure.

    - */ - imageId?: ImageIdentifier; } export namespace ImageFailure { @@ -275,11 +275,24 @@ export namespace BatchDeleteImageResponse { } export interface BatchGetImageRequest { + /** + *

    The AWS account ID associated with the registry that contains the images to describe. + * If you do not specify a registry, the default registry is assumed.

    + */ + registryId?: string; + /** *

    The repository that contains the images to describe.

    */ repositoryName: string | undefined; + /** + *

    A list of image ID references that correspond to images to describe. The format of the + * imageIds reference is imageTag=tag or + * imageDigest=digest.

    + */ + imageIds: ImageIdentifier[] | undefined; + /** *

    The accepted media types for the request.

    *

    Valid values: application/vnd.docker.distribution.manifest.v1+json | @@ -288,19 +301,6 @@ export interface BatchGetImageRequest { *

    */ acceptedMediaTypes?: string[]; - - /** - *

    The AWS account ID associated with the registry that contains the images to describe. - * If you do not specify a registry, the default registry is assumed.

    - */ - registryId?: string; - - /** - *

    A list of image ID references that correspond to images to describe. The format of the - * imageIds reference is imageTag=tag or - * imageDigest=digest.

    - */ - imageIds: ImageIdentifier[] | undefined; } export namespace BatchGetImageRequest { @@ -347,14 +347,14 @@ export namespace Image { export interface BatchGetImageResponse { /** - *

    Any failures associated with the call.

    + *

    A list of image objects corresponding to the image references in the request.

    */ - failures?: ImageFailure[]; + images?: Image[]; /** - *

    A list of image objects corresponding to the image references in the request.

    + *

    Any failures associated with the call.

    */ - images?: Image[]; + failures?: ImageFailure[]; } export namespace BatchGetImageResponse { @@ -365,26 +365,26 @@ export namespace BatchGetImageResponse { export interface CompleteLayerUploadRequest { /** - *

    The sha256 digest of the image layer.

    + *

    The AWS account ID associated with the registry to which to upload layers. + * If you do not specify a registry, the default registry is assumed.

    */ - layerDigests: string[] | undefined; + registryId?: string; /** - *

    The upload ID from a previous InitiateLayerUpload operation to - * associate with the image layer.

    + *

    The name of the repository to associate with the image layer.

    */ - uploadId: string | undefined; + repositoryName: string | undefined; /** - *

    The name of the repository to associate with the image layer.

    + *

    The upload ID from a previous InitiateLayerUpload operation to + * associate with the image layer.

    */ - repositoryName: string | undefined; + uploadId: string | undefined; /** - *

    The AWS account ID associated with the registry to which to upload layers. - * If you do not specify a registry, the default registry is assumed.

    + *

    The sha256 digest of the image layer.

    */ - registryId?: string; + layerDigests: string[] | undefined; } export namespace CompleteLayerUploadRequest { @@ -399,6 +399,11 @@ export interface CompleteLayerUploadResponse { */ registryId?: string; + /** + *

    The repository name associated with the request.

    + */ + repositoryName?: string; + /** *

    The upload ID associated with the layer.

    */ @@ -408,11 +413,6 @@ export interface CompleteLayerUploadResponse { *

    The sha256 digest of the image layer.

    */ layerDigest?: string; - - /** - *

    The repository name associated with the request.

    - */ - repositoryName?: string; } export namespace CompleteLayerUploadResponse { @@ -464,12 +464,11 @@ export namespace InvalidLayerException { export interface KmsException extends __SmithyException, $MetadataBearer { name: "KmsException"; $fault: "client"; + message?: string; /** *

    The error code returned by AWS KMS.

    */ kmsError?: string; - - message?: string; } export namespace KmsException { @@ -551,14 +550,6 @@ export enum EncryptionType { * rest in the Amazon Elastic Container Registry User Guide.

    */ export interface EncryptionConfiguration { - /** - *

    If you use the KMS encryption type, specify the CMK to use for - * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must - * exist in the same Region as the repository. If no key is specified, the default AWS - * managed CMK for Amazon ECR will be used.

    - */ - kmsKey?: string; - /** *

    The encryption type to use.

    *

    If you use the KMS encryption type, the contents of the repository will @@ -575,6 +566,14 @@ export interface EncryptionConfiguration { * the Amazon Simple Storage Service Console Developer Guide..

    */ encryptionType: EncryptionType | string | undefined; + + /** + *

    If you use the KMS encryption type, specify the CMK to use for + * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must + * exist in the same Region as the repository. If no key is specified, the default AWS + * managed CMK for Amazon ECR will be used.

    + */ + kmsKey?: string; } export namespace EncryptionConfiguration { @@ -614,17 +613,17 @@ export enum ImageTagMutability { * a maximum length of 256 characters.

    */ export interface Tag { - /** - *

    The optional part of a key-value pair that make up a tag. A value acts as - * a descriptor within a tag category (key).

    - */ - Value?: string; - /** *

    One part of a key-value pair that make up a tag. A key is a general label * that acts like a category for more specific tag values.

    */ Key?: string; + + /** + *

    The optional part of a key-value pair that make up a tag. A value acts as + * a descriptor within a tag category (key).

    + */ + Value?: string; } export namespace Tag { @@ -634,14 +633,6 @@ export namespace Tag { } export interface CreateRepositoryRequest { - /** - *

    The tag mutability setting for the repository. If this parameter is omitted, the - * default setting of MUTABLE will be used which will allow image tags to be - * overwritten. If IMMUTABLE is specified, all image tags within the - * repository will be immutable which will prevent them from being overwritten.

    - */ - imageTagMutability?: ImageTagMutability | string; - /** *

    The name to use for the repository. The repository name may be specified on its own * (such as nginx-web-app) or it can be prepended with a namespace to group @@ -657,6 +648,14 @@ export interface CreateRepositoryRequest { */ tags?: Tag[]; + /** + *

    The tag mutability setting for the repository. If this parameter is omitted, the + * default setting of MUTABLE will be used which will allow image tags to be + * overwritten. If IMMUTABLE is specified, all image tags within the + * repository will be immutable which will prevent them from being overwritten.

    + */ + imageTagMutability?: ImageTagMutability | string; + /** *

    The image scanning configuration for the repository. This determines whether images * are scanned for known vulnerabilities after being pushed to the repository.

    @@ -680,11 +679,6 @@ export namespace CreateRepositoryRequest { *

    An object representing a repository.

    */ export interface Repository { - /** - *

    The AWS account ID associated with the registry that contains the repository.

    - */ - registryId?: string; - /** *

    The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the * repository, AWS account ID of the repository owner, repository namespace, and repository name. @@ -693,10 +687,14 @@ export interface Repository { repositoryArn?: string; /** - *

    The encryption configuration for the repository. This determines how the contents of - * your repository are encrypted at rest.

    + *

    The AWS account ID associated with the registry that contains the repository.

    */ - encryptionConfiguration?: EncryptionConfiguration; + registryId?: string; + + /** + *

    The name of the repository.

    + */ + repositoryName?: string; /** *

    The URI for the repository. You can use this URI for container image push @@ -715,14 +713,15 @@ export interface Repository { imageTagMutability?: ImageTagMutability | string; /** - *

    The name of the repository.

    + *

    The image scanning configuration for a repository.

    */ - repositoryName?: string; + imageScanningConfiguration?: ImageScanningConfiguration; /** - *

    The image scanning configuration for a repository.

    + *

    The encryption configuration for the repository. This determines how the contents of + * your repository are encrypted at rest.

    */ - imageScanningConfiguration?: ImageScanningConfiguration; + encryptionConfiguration?: EncryptionConfiguration; } export namespace Repository { @@ -840,9 +839,9 @@ export interface DeleteLifecyclePolicyResponse { registryId?: string; /** - *

    The time stamp of the last time that the lifecycle policy was run.

    + *

    The repository name associated with the request.

    */ - lastEvaluatedAt?: Date; + repositoryName?: string; /** *

    The JSON lifecycle policy text.

    @@ -850,9 +849,9 @@ export interface DeleteLifecyclePolicyResponse { lifecyclePolicyText?: string; /** - *

    The repository name associated with the request.

    + *

    The time stamp of the last time that the lifecycle policy was run.

    */ - repositoryName?: string; + lastEvaluatedAt?: Date; } export namespace DeleteLifecyclePolicyResponse { @@ -877,22 +876,63 @@ export namespace LifecyclePolicyNotFoundException { }); } -export interface DeleteRepositoryRequest { +export interface DeleteRegistryPolicyRequest {} + +export namespace DeleteRegistryPolicyRequest { + export const filterSensitiveLog = (obj: DeleteRegistryPolicyRequest): any => ({ + ...obj, + }); +} + +export interface DeleteRegistryPolicyResponse { /** - *

    The name of the repository to delete.

    + *

    The registry ID associated with the request.

    */ - repositoryName: string | undefined; + registryId?: string; /** - *

    If a repository contains images, forces the deletion.

    + *

    The contents of the registry permissions policy that was deleted.

    */ - force?: boolean; + policyText?: string; +} + +export namespace DeleteRegistryPolicyResponse { + export const filterSensitiveLog = (obj: DeleteRegistryPolicyResponse): any => ({ + ...obj, + }); +} + +/** + *

    The registry doesn't have an associated registry policy.

    + */ +export interface RegistryPolicyNotFoundException extends __SmithyException, $MetadataBearer { + name: "RegistryPolicyNotFoundException"; + $fault: "client"; + message?: string; +} + +export namespace RegistryPolicyNotFoundException { + export const filterSensitiveLog = (obj: RegistryPolicyNotFoundException): any => ({ + ...obj, + }); +} +export interface DeleteRepositoryRequest { /** *

    The AWS account ID associated with the registry that contains the repository to * delete. If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + + /** + *

    The name of the repository to delete.

    + */ + repositoryName: string | undefined; + + /** + *

    If a repository contains images, forces the deletion.

    + */ + force?: boolean; } export namespace DeleteRepositoryRequest { @@ -955,14 +995,14 @@ export namespace DeleteRepositoryPolicyRequest { export interface DeleteRepositoryPolicyResponse { /** - *

    The repository name associated with the request.

    + *

    The registry ID associated with the request.

    */ - repositoryName?: string; + registryId?: string; /** - *

    The registry ID associated with the request.

    + *

    The repository name associated with the request.

    */ - registryId?: string; + repositoryName?: string; /** *

    The JSON repository policy that was deleted from the repository.

    @@ -1022,23 +1062,10 @@ export namespace DescribeImagesFilter { export interface DescribeImagesRequest { /** - *

    The filter key and value with which to filter your DescribeImages - * results.

    + *

    The AWS account ID associated with the registry that contains the repository in which + * to describe images. If you do not specify a registry, the default registry is assumed.

    */ - filter?: DescribeImagesFilter; - - /** - *

    The maximum number of repository results returned by DescribeImages in - * paginated output. When this parameter is used, DescribeImages only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another DescribeImages request with the returned nextToken - * value. This value can be between 1 and 1000. If this - * parameter is not used, then DescribeImages returns up to - * 100 results and a nextToken value, if applicable. This - * option cannot be used when you specify images with imageIds.

    - */ - maxResults?: number; + registryId?: string; /** *

    The repository that contains the images to describe.

    @@ -1046,10 +1073,9 @@ export interface DescribeImagesRequest { repositoryName: string | undefined; /** - *

    The AWS account ID associated with the registry that contains the repository in which - * to describe images. If you do not specify a registry, the default registry is assumed.

    + *

    The list of image IDs for the requested repository.

    */ - registryId?: string; + imageIds?: ImageIdentifier[]; /** *

    The nextToken value returned from a previous paginated @@ -1062,9 +1088,23 @@ export interface DescribeImagesRequest { nextToken?: string; /** - *

    The list of image IDs for the requested repository.

    + *

    The maximum number of repository results returned by DescribeImages in + * paginated output. When this parameter is used, DescribeImages only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another DescribeImages request with the returned nextToken + * value. This value can be between 1 and 1000. If this + * parameter is not used, then DescribeImages returns up to + * 100 results and a nextToken value, if applicable. This + * option cannot be used when you specify images with imageIds.

    */ - imageIds?: ImageIdentifier[]; + maxResults?: number; + + /** + *

    The filter key and value with which to filter your DescribeImages + * results.

    + */ + filter?: DescribeImagesFilter; } export namespace DescribeImagesRequest { @@ -1087,9 +1127,9 @@ export enum FindingSeverity { */ export interface ImageScanFindingsSummary { /** - *

    The image vulnerability counts, sorted by severity.

    + *

    The time of the last completed image scan.

    */ - findingSeverityCounts?: { [key: string]: number }; + imageScanCompletedAt?: Date; /** *

    The time when the vulnerability data was last scanned.

    @@ -1097,9 +1137,9 @@ export interface ImageScanFindingsSummary { vulnerabilitySourceUpdatedAt?: Date; /** - *

    The time of the last completed image scan.

    + *

    The image vulnerability counts, sorted by severity.

    */ - imageScanCompletedAt?: Date; + findingSeverityCounts?: { [key: string]: number }; } export namespace ImageScanFindingsSummary { @@ -1119,14 +1159,14 @@ export enum ScanStatus { */ export interface ImageScanStatus { /** - *

    The description of the image scan status.

    + *

    The current state of an image scan.

    */ - description?: string; + status?: ScanStatus | string; /** - *

    The current state of an image scan.

    + *

    The description of the image scan status.

    */ - status?: ScanStatus | string; + description?: string; } export namespace ImageScanStatus { @@ -1140,6 +1180,26 @@ export namespace ImageScanStatus { * operation.

    */ export interface ImageDetail { + /** + *

    The AWS account ID associated with the registry to which this image belongs.

    + */ + registryId?: string; + + /** + *

    The name of the repository to which this image belongs.

    + */ + repositoryName?: string; + + /** + *

    The sha256 digest of the image manifest.

    + */ + imageDigest?: string; + + /** + *

    The list of tags associated with this image.

    + */ + imageTags?: string[]; + /** *

    The size, in bytes, of the image in the repository.

    *

    If the image is a manifest list, this will be the max size of all manifests in the @@ -1153,51 +1213,31 @@ export interface ImageDetail { */ imageSizeInBytes?: number; - /** - *

    The artifact media type of the image.

    - */ - artifactMediaType?: string; - /** *

    The date and time, expressed in standard JavaScript date format, at which the current * image was pushed to the repository.

    */ imagePushedAt?: Date; - /** - *

    The AWS account ID associated with the registry to which this image belongs.

    - */ - registryId?: string; - - /** - *

    The media type of the image manifest.

    - */ - imageManifestMediaType?: string; - - /** - *

    The name of the repository to which this image belongs.

    - */ - repositoryName?: string; - /** *

    The current state of the scan.

    */ imageScanStatus?: ImageScanStatus; /** - *

    The list of tags associated with this image.

    + *

    A summary of the last completed image scan.

    */ - imageTags?: string[]; + imageScanFindingsSummary?: ImageScanFindingsSummary; /** - *

    A summary of the last completed image scan.

    + *

    The media type of the image manifest.

    */ - imageScanFindingsSummary?: ImageScanFindingsSummary; + imageManifestMediaType?: string; /** - *

    The sha256 digest of the image manifest.

    + *

    The artifact media type of the image.

    */ - imageDigest?: string; + artifactMediaType?: string; } export namespace ImageDetail { @@ -1252,15 +1292,24 @@ export interface DescribeImageScanFindingsRequest { */ registryId?: string; + /** + *

    The repository for the image for which to describe the scan findings.

    + */ + repositoryName: string | undefined; + /** *

    An object with identifying information for an Amazon ECR image.

    */ imageId: ImageIdentifier | undefined; /** - *

    The repository for the image for which to describe the scan findings.

    + *

    The nextToken value returned from a previous paginated + * DescribeImageScanFindings request where maxResults was + * used and the results exceeded the value of that parameter. Pagination continues from the + * end of the previous results that returned the nextToken value. This value + * is null when there are no more results to return.

    */ - repositoryName: string | undefined; + nextToken?: string; /** *

    The maximum number of image scan results returned by @@ -1274,15 +1323,6 @@ export interface DescribeImageScanFindingsRequest { * results and a nextToken value, if applicable.

    */ maxResults?: number; - - /** - *

    The nextToken value returned from a previous paginated - * DescribeImageScanFindings request where maxResults was - * used and the results exceeded the value of that parameter. Pagination continues from the - * end of the previous results that returned the nextToken value. This value - * is null when there are no more results to return.

    - */ - nextToken?: string; } export namespace DescribeImageScanFindingsRequest { @@ -1317,9 +1357,9 @@ export namespace Attribute { */ export interface ImageScanFinding { /** - *

    The finding severity.

    + *

    The name associated with the finding, usually a CVE number.

    */ - severity?: FindingSeverity | string; + name?: string; /** *

    The description of the finding.

    @@ -1327,14 +1367,14 @@ export interface ImageScanFinding { description?: string; /** - *

    The name associated with the finding, usually a CVE number.

    + *

    A link containing additional details about the security vulnerability.

    */ - name?: string; + uri?: string; /** - *

    A link containing additional details about the security vulnerability.

    + *

    The finding severity.

    */ - uri?: string; + severity?: FindingSeverity | string; /** *

    A collection of attributes of the host from which the finding is generated.

    @@ -1358,14 +1398,14 @@ export interface ImageScanFindings { imageScanCompletedAt?: Date; /** - *

    The findings from the image scan.

    + *

    The time when the vulnerability data was last scanned.

    */ - findings?: ImageScanFinding[]; + vulnerabilitySourceUpdatedAt?: Date; /** - *

    The time when the vulnerability data was last scanned.

    + *

    The findings from the image scan.

    */ - vulnerabilitySourceUpdatedAt?: Date; + findings?: ImageScanFinding[]; /** *

    The image vulnerability counts, sorted by severity.

    @@ -1381,23 +1421,19 @@ export namespace ImageScanFindings { export interface DescribeImageScanFindingsResponse { /** - *

    The information contained in the image scan findings.

    + *

    The registry ID associated with the request.

    */ - imageScanFindings?: ImageScanFindings; + registryId?: string; /** - *

    The registry ID associated with the request.

    + *

    The repository name associated with the request.

    */ - registryId?: string; + repositoryName?: string; /** - *

    The nextToken value to include in a future - * DescribeImageScanFindings request. When the results of a - * DescribeImageScanFindings request exceed maxResults, this - * value can be used to retrieve the next page of results. This value is null when there - * are no more results to return.

    + *

    An object with identifying information for an Amazon ECR image.

    */ - nextToken?: string; + imageId?: ImageIdentifier; /** *

    The current state of the scan.

    @@ -1405,14 +1441,18 @@ export interface DescribeImageScanFindingsResponse { imageScanStatus?: ImageScanStatus; /** - *

    The repository name associated with the request.

    + *

    The information contained in the image scan findings.

    */ - repositoryName?: string; + imageScanFindings?: ImageScanFindings; /** - *

    An object with identifying information for an Amazon ECR image.

    + *

    The nextToken value to include in a future + * DescribeImageScanFindings request. When the results of a + * DescribeImageScanFindings request exceed maxResults, this + * value can be used to retrieve the next page of results. This value is null when there + * are no more results to return.

    */ - imageId?: ImageIdentifier; + nextToken?: string; } export namespace DescribeImageScanFindingsResponse { @@ -1437,27 +1477,117 @@ export namespace ScanNotFoundException { }); } -export interface DescribeRepositoriesRequest { +export interface DescribeRegistryRequest {} + +export namespace DescribeRegistryRequest { + export const filterSensitiveLog = (obj: DescribeRegistryRequest): any => ({ + ...obj, + }); +} + +/** + *

    An array of objects representing the details of a replication destination.

    + */ +export interface ReplicationDestination { /** - *

    The maximum number of repository results returned by DescribeRepositories - * in paginated output. When this parameter is used, DescribeRepositories only - * returns maxResults results in a single page along with a - * nextToken response element. The remaining results of the initial - * request can be seen by sending another DescribeRepositories request with - * the returned nextToken value. This value can be between 1 - * and 1000. If this parameter is not used, then - * DescribeRepositories returns up to 100 results and a - * nextToken value, if applicable. This option cannot be used when you - * specify repositories with repositoryNames.

    + *

    A Region to replicate to.

    */ - maxResults?: number; + region: string | undefined; + + /** + *

    The account ID of the destination registry to replicate to.

    + */ + registryId: string | undefined; +} + +export namespace ReplicationDestination { + export const filterSensitiveLog = (obj: ReplicationDestination): any => ({ + ...obj, + }); +} + +/** + *

    An array of objects representing the replication destinations for a replication + * configuration. A replication configuration may contain only one replication rule but the + * rule may contain one or more replication destinations.

    + */ +export interface ReplicationRule { + /** + *

    An array of objects representing the details of a replication destination.

    + */ + destinations: ReplicationDestination[] | undefined; +} + +export namespace ReplicationRule { + export const filterSensitiveLog = (obj: ReplicationRule): any => ({ + ...obj, + }); +} + +/** + *

    The replication configuration for a registry.

    + */ +export interface ReplicationConfiguration { + /** + *

    An array of objects representing the replication rules for a replication + * configuration. A replication configuration may contain only one replication rule but the + * rule may contain one or more replication destinations.

    + */ + rules: ReplicationRule[] | undefined; +} + +export namespace ReplicationConfiguration { + export const filterSensitiveLog = (obj: ReplicationConfiguration): any => ({ + ...obj, + }); +} + +export interface DescribeRegistryResponse { + /** + *

    The ID of the registry.

    + */ + registryId?: string; + + /** + *

    The replication configuration for the registry.

    + */ + replicationConfiguration?: ReplicationConfiguration; +} + +export namespace DescribeRegistryResponse { + export const filterSensitiveLog = (obj: DescribeRegistryResponse): any => ({ + ...obj, + }); +} + +/** + *

    There was an exception validating this request.

    + */ +export interface ValidationException extends __SmithyException, $MetadataBearer { + name: "ValidationException"; + $fault: "client"; + message?: string; +} + +export namespace ValidationException { + export const filterSensitiveLog = (obj: ValidationException): any => ({ + ...obj, + }); +} +export interface DescribeRepositoriesRequest { /** *

    The AWS account ID associated with the registry that contains the repositories to be * described. If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + /** + *

    A list of repositories to describe. If this parameter is omitted, then all + * repositories in a registry are described.

    + */ + repositoryNames?: string[]; + /** *

    The nextToken value returned from a previous paginated * DescribeRepositories request where maxResults was used and @@ -1473,10 +1603,18 @@ export interface DescribeRepositoriesRequest { nextToken?: string; /** - *

    A list of repositories to describe. If this parameter is omitted, then all - * repositories in a registry are described.

    + *

    The maximum number of repository results returned by DescribeRepositories + * in paginated output. When this parameter is used, DescribeRepositories only + * returns maxResults results in a single page along with a + * nextToken response element. The remaining results of the initial + * request can be seen by sending another DescribeRepositories request with + * the returned nextToken value. This value can be between 1 + * and 1000. If this parameter is not used, then + * DescribeRepositories returns up to 100 results and a + * nextToken value, if applicable. This option cannot be used when you + * specify repositories with repositoryNames.

    */ - repositoryNames?: string[]; + maxResults?: number; } export namespace DescribeRepositoriesRequest { @@ -1486,6 +1624,11 @@ export namespace DescribeRepositoriesRequest { } export interface DescribeRepositoriesResponse { + /** + *

    A list of repository objects corresponding to valid repositories.

    + */ + repositories?: Repository[]; + /** *

    The nextToken value to include in a future * DescribeRepositories request. When the results of a @@ -1494,11 +1637,6 @@ export interface DescribeRepositoriesResponse { * there are no more results to return.

    */ nextToken?: string; - - /** - *

    A list of repository objects corresponding to valid repositories.

    - */ - repositories?: Repository[]; } export namespace DescribeRepositoriesResponse { @@ -1576,14 +1714,14 @@ export interface GetDownloadUrlForLayerRequest { registryId?: string; /** - *

    The digest of the image layer to download.

    + *

    The name of the repository that is associated with the image layer to download.

    */ - layerDigest: string | undefined; + repositoryName: string | undefined; /** - *

    The name of the repository that is associated with the image layer to download.

    + *

    The digest of the image layer to download.

    */ - repositoryName: string | undefined; + layerDigest: string | undefined; } export namespace GetDownloadUrlForLayerRequest { @@ -1649,16 +1787,16 @@ export namespace LayersNotFoundException { } export interface GetLifecyclePolicyRequest { - /** - *

    The name of the repository.

    - */ - repositoryName: string | undefined; - /** *

    The AWS account ID associated with the registry that contains the repository. * If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + + /** + *

    The name of the repository.

    + */ + repositoryName: string | undefined; } export namespace GetLifecyclePolicyRequest { @@ -1669,9 +1807,9 @@ export namespace GetLifecyclePolicyRequest { export interface GetLifecyclePolicyResponse { /** - *

    The JSON lifecycle policy text.

    + *

    The registry ID associated with the request.

    */ - lifecyclePolicyText?: string; + registryId?: string; /** *

    The repository name associated with the request.

    @@ -1679,9 +1817,9 @@ export interface GetLifecyclePolicyResponse { repositoryName?: string; /** - *

    The registry ID associated with the request.

    + *

    The JSON lifecycle policy text.

    */ - registryId?: string; + lifecyclePolicyText?: string; /** *

    The time stamp of the last time that the lifecycle policy was run.

    @@ -1712,6 +1850,22 @@ export namespace LifecyclePolicyPreviewFilter { } export interface GetLifecyclePolicyPreviewRequest { + /** + *

    The AWS account ID associated with the registry that contains the repository. + * If you do not specify a registry, the default registry is assumed.

    + */ + registryId?: string; + + /** + *

    The name of the repository.

    + */ + repositoryName: string | undefined; + + /** + *

    The list of imageIDs to be included.

    + */ + imageIds?: ImageIdentifier[]; + /** *

    The nextToken value returned from a previous paginated * GetLifecyclePolicyPreviewRequest request where maxResults @@ -1722,12 +1876,6 @@ export interface GetLifecyclePolicyPreviewRequest { */ nextToken?: string; - /** - *

    The AWS account ID associated with the registry that contains the repository. - * If you do not specify a registry, the default registry is assumed.

    - */ - registryId?: string; - /** *

    The maximum number of repository results returned by * GetLifecyclePolicyPreviewRequest in
 paginated output. When this @@ -1743,21 +1891,11 @@ export interface GetLifecyclePolicyPreviewRequest { */ maxResults?: number; - /** - *

    The name of the repository.

    - */ - repositoryName: string | undefined; - /** *

    An optional parameter that filters results based on image tag status and all tags, if * tagged.

    */ filter?: LifecyclePolicyPreviewFilter; - - /** - *

    The list of imageIDs to be included.

    - */ - imageIds?: ImageIdentifier[]; } export namespace GetLifecyclePolicyPreviewRequest { @@ -1796,14 +1934,9 @@ export interface LifecyclePolicyPreviewResult { imageTags?: string[]; /** - *

    The priority of the applied rule.

    - */ - appliedRulePriority?: number; - - /** - *

    The type of action to be taken.

    + *

    The sha256 digest of the image manifest.

    */ - action?: LifecyclePolicyRuleAction; + imageDigest?: string; /** *

    The date and time, expressed in standard JavaScript date format, at which the current @@ -1812,9 +1945,14 @@ export interface LifecyclePolicyPreviewResult { imagePushedAt?: Date; /** - *

    The sha256 digest of the image manifest.

    + *

    The type of action to be taken.

    */ - imageDigest?: string; + action?: LifecyclePolicyRuleAction; + + /** + *

    The priority of the applied rule.

    + */ + appliedRulePriority?: number; } export namespace LifecyclePolicyPreviewResult { @@ -1848,15 +1986,25 @@ export namespace LifecyclePolicyPreviewSummary { export interface GetLifecyclePolicyPreviewResponse { /** - *

    The status of the lifecycle policy preview request.

    + *

    The registry ID associated with the request.

    */ - status?: LifecyclePolicyPreviewStatus | string; + registryId?: string; + + /** + *

    The repository name associated with the request.

    + */ + repositoryName?: string; /** *

    The JSON lifecycle policy text.

    */ lifecyclePolicyText?: string; + /** + *

    The status of the lifecycle policy preview request.

    + */ + status?: LifecyclePolicyPreviewStatus | string; + /** *

    The nextToken value to include in a future * GetLifecyclePolicyPreview request. When the results of a @@ -1866,16 +2014,6 @@ export interface GetLifecyclePolicyPreviewResponse { */ nextToken?: string; - /** - *

    The registry ID associated with the request.

    - */ - registryId?: string; - - /** - *

    The repository name associated with the request.

    - */ - repositoryName?: string; - /** *

    The results of the lifecycle policy preview request.

    */ @@ -1908,6 +2046,32 @@ export namespace LifecyclePolicyPreviewNotFoundException { }); } +export interface GetRegistryPolicyRequest {} + +export namespace GetRegistryPolicyRequest { + export const filterSensitiveLog = (obj: GetRegistryPolicyRequest): any => ({ + ...obj, + }); +} + +export interface GetRegistryPolicyResponse { + /** + *

    The ID of the registry.

    + */ + registryId?: string; + + /** + *

    The JSON text of the permissions policy for a registry.

    + */ + policyText?: string; +} + +export namespace GetRegistryPolicyResponse { + export const filterSensitiveLog = (obj: GetRegistryPolicyResponse): any => ({ + ...obj, + }); +} + export interface GetRepositoryPolicyRequest { /** *

    The AWS account ID associated with the registry that contains the repository. @@ -1934,14 +2098,14 @@ export interface GetRepositoryPolicyResponse { registryId?: string; /** - *

    The JSON repository policy text associated with the repository.

    + *

    The repository name associated with the request.

    */ - policyText?: string; + repositoryName?: string; /** - *

    The repository name associated with the request.

    + *

    The JSON repository policy text associated with the repository.

    */ - repositoryName?: string; + policyText?: string; } export namespace GetRepositoryPolicyResponse { @@ -1951,16 +2115,16 @@ export namespace GetRepositoryPolicyResponse { } export interface InitiateLayerUploadRequest { - /** - *

    The name of the repository to which you intend to upload layers.

    - */ - repositoryName: string | undefined; - /** *

    The AWS account ID associated with the registry to which you intend to upload layers. * If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + + /** + *

    The name of the repository to which you intend to upload layers.

    + */ + repositoryName: string | undefined; } export namespace InitiateLayerUploadRequest { @@ -2008,16 +2172,15 @@ export namespace ListImagesFilter { export interface ListImagesRequest { /** - *

    The maximum number of image results returned by ListImages in paginated - * output. When this parameter is used, ListImages only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another ListImages request with the returned nextToken value. - * This value can be between 1 and 1000. If this parameter is - * not used, then ListImages returns up to 100 results and a - * nextToken value, if applicable.

    + *

    The AWS account ID associated with the registry that contains the repository in which + * to list images. If you do not specify a registry, the default registry is assumed.

    */ - maxResults?: number; + registryId?: string; + + /** + *

    The repository with image IDs to be listed.

    + */ + repositoryName: string | undefined; /** *

    The nextToken value returned from a previous paginated @@ -2033,15 +2196,16 @@ export interface ListImagesRequest { nextToken?: string; /** - *

    The AWS account ID associated with the registry that contains the repository in which - * to list images. If you do not specify a registry, the default registry is assumed.

    - */ - registryId?: string; - - /** - *

    The repository with image IDs to be listed.

    + *

    The maximum number of image results returned by ListImages in paginated + * output. When this parameter is used, ListImages only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another ListImages request with the returned nextToken value. + * This value can be between 1 and 1000. If this parameter is + * not used, then ListImages returns up to 100 results and a + * nextToken value, if applicable.

    */ - repositoryName: string | undefined; + maxResults?: number; /** *

    The filter key and value with which to filter your ListImages @@ -2057,6 +2221,11 @@ export namespace ListImagesRequest { } export interface ListImagesResponse { + /** + *

    The list of image IDs for the requested repository.

    + */ + imageIds?: ImageIdentifier[]; + /** *

    The nextToken value to include in a future ListImages * request. When the results of a ListImages request exceed @@ -2065,11 +2234,6 @@ export interface ListImagesResponse { * return.

    */ nextToken?: string; - - /** - *

    The list of image IDs for the requested repository.

    - */ - imageIds?: ImageIdentifier[]; } export namespace ListImagesResponse { @@ -2158,19 +2322,20 @@ export namespace ImageTagAlreadyExistsException { export interface PutImageRequest { /** - *

    The image digest of the image manifest corresponding to the image.

    + *

    The AWS account ID associated with the registry that contains the repository in which + * to put the image. If you do not specify a registry, the default registry is assumed.

    */ - imageDigest?: string; + registryId?: string; /** - *

    The image manifest corresponding to the image to be uploaded.

    + *

    The name of the repository in which to put the image.

    */ - imageManifest: string | undefined; + repositoryName: string | undefined; /** - *

    The name of the repository in which to put the image.

    + *

    The image manifest corresponding to the image to be uploaded.

    */ - repositoryName: string | undefined; + imageManifest: string | undefined; /** *

    The media type of the image manifest. If you push an image manifest that does not @@ -2179,17 +2344,16 @@ export interface PutImageRequest { */ imageManifestMediaType?: string; - /** - *

    The AWS account ID associated with the registry that contains the repository in which - * to put the image. If you do not specify a registry, the default registry is assumed.

    - */ - registryId?: string; - /** *

    The tag to associate with the image. This parameter is required for images that use * the Docker Image Manifest V2 Schema 2 or Open Container Initiative (OCI) formats.

    */ imageTag?: string; + + /** + *

    The image digest of the image manifest corresponding to the image.

    + */ + imageDigest?: string; } export namespace PutImageRequest { @@ -2228,11 +2392,11 @@ export namespace ReferencedImagesNotFoundException { export interface PutImageScanningConfigurationRequest { /** - *

    The image scanning configuration for the repository. This setting determines whether - * images are scanned for known vulnerabilities after being pushed to the - * repository.

    + *

    The AWS account ID associated with the registry that contains the repository in + * which to update the image scanning configuration setting. + * If you do not specify a registry, the default registry is assumed.

    */ - imageScanningConfiguration: ImageScanningConfiguration | undefined; + registryId?: string; /** *

    The name of the repository in which to update the image scanning configuration @@ -2241,11 +2405,11 @@ export interface PutImageScanningConfigurationRequest { repositoryName: string | undefined; /** - *

    The AWS account ID associated with the registry that contains the repository in - * which to update the image scanning configuration setting. - * If you do not specify a registry, the default registry is assumed.

    + *

    The image scanning configuration for the repository. This setting determines whether + * images are scanned for known vulnerabilities after being pushed to the + * repository.

    */ - registryId?: string; + imageScanningConfiguration: ImageScanningConfiguration | undefined; } export namespace PutImageScanningConfigurationRequest { @@ -2255,11 +2419,6 @@ export namespace PutImageScanningConfigurationRequest { } export interface PutImageScanningConfigurationResponse { - /** - *

    The image scanning configuration setting for the repository.

    - */ - imageScanningConfiguration?: ImageScanningConfiguration; - /** *

    The registry ID associated with the request.

    */ @@ -2269,6 +2428,11 @@ export interface PutImageScanningConfigurationResponse { *

    The repository name associated with the request.

    */ repositoryName?: string; + + /** + *

    The image scanning configuration setting for the repository.

    + */ + imageScanningConfiguration?: ImageScanningConfiguration; } export namespace PutImageScanningConfigurationResponse { @@ -2279,12 +2443,10 @@ export namespace PutImageScanningConfigurationResponse { export interface PutImageTagMutabilityRequest { /** - *

    The tag mutability setting for the repository. If MUTABLE is specified, - * image tags can be overwritten. If IMMUTABLE is specified, all image tags - * within the repository will be immutable which will prevent them from being - * overwritten.

    + *

    The AWS account ID associated with the registry that contains the repository in which + * to update the image tag mutability settings. If you do not specify a registry, the default registry is assumed.

    */ - imageTagMutability: ImageTagMutability | string | undefined; + registryId?: string; /** *

    The name of the repository in which to update the image tag mutability @@ -2293,10 +2455,12 @@ export interface PutImageTagMutabilityRequest { repositoryName: string | undefined; /** - *

    The AWS account ID associated with the registry that contains the repository in which - * to update the image tag mutability settings. If you do not specify a registry, the default registry is assumed.

    + *

    The tag mutability setting for the repository. If MUTABLE is specified, + * image tags can be overwritten. If IMMUTABLE is specified, all image tags + * within the repository will be immutable which will prevent them from being + * overwritten.

    */ - registryId?: string; + imageTagMutability: ImageTagMutability | string | undefined; } export namespace PutImageTagMutabilityRequest { @@ -2312,14 +2476,14 @@ export interface PutImageTagMutabilityResponse { registryId?: string; /** - *

    The image tag mutability setting for the repository.

    + *

    The repository name associated with the request.

    */ - imageTagMutability?: ImageTagMutability | string; + repositoryName?: string; /** - *

    The repository name associated with the request.

    + *

    The image tag mutability setting for the repository.

    */ - repositoryName?: string; + imageTagMutability?: ImageTagMutability | string; } export namespace PutImageTagMutabilityResponse { @@ -2329,6 +2493,12 @@ export namespace PutImageTagMutabilityResponse { } export interface PutLifecyclePolicyRequest { + /** + *

    The AWS account ID associated with the registry that contains the repository. If you + * do
 not specify a registry, the default registry is assumed.

    + */ + registryId?: string; + /** *

    The name of the repository to receive the policy.

    */ @@ -2338,12 +2508,6 @@ export interface PutLifecyclePolicyRequest { *

    The JSON repository policy text to apply to the repository.

    */ lifecyclePolicyText: string | undefined; - - /** - *

    The AWS account ID associated with the registry that contains the repository. If you - * do
 not specify a registry, the default registry is assumed.

    - */ - registryId?: string; } export namespace PutLifecyclePolicyRequest { @@ -2375,20 +2539,77 @@ export namespace PutLifecyclePolicyResponse { }); } -export interface SetRepositoryPolicyRequest { +export interface PutRegistryPolicyRequest { /** - *

    If the policy you are attempting to set on a repository policy would prevent you from - * setting another policy in the future, you must force the SetRepositoryPolicy operation. This is intended to prevent accidental - * repository lock outs.

    + *

    The JSON policy text to apply to your registry. The policy text follows the same + * format as IAM policy text. For more information, see Registry + * permissions in the Amazon Elastic Container Registry User Guide.

    */ - force?: boolean; + policyText: string | undefined; +} + +export namespace PutRegistryPolicyRequest { + export const filterSensitiveLog = (obj: PutRegistryPolicyRequest): any => ({ + ...obj, + }); +} + +export interface PutRegistryPolicyResponse { + /** + *

    The registry ID.

    + */ + registryId?: string; + + /** + *

    The JSON policy text for your registry.

    + */ + policyText?: string; +} + +export namespace PutRegistryPolicyResponse { + export const filterSensitiveLog = (obj: PutRegistryPolicyResponse): any => ({ + ...obj, + }); +} + +export interface PutReplicationConfigurationRequest { + /** + *

    An object representing the replication configuration for a registry.

    + */ + replicationConfiguration: ReplicationConfiguration | undefined; +} + +export namespace PutReplicationConfigurationRequest { + export const filterSensitiveLog = (obj: PutReplicationConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface PutReplicationConfigurationResponse { + /** + *

    The contents of the replication configuration for the registry.

    + */ + replicationConfiguration?: ReplicationConfiguration; +} + +export namespace PutReplicationConfigurationResponse { + export const filterSensitiveLog = (obj: PutReplicationConfigurationResponse): any => ({ + ...obj, + }); +} +export interface SetRepositoryPolicyRequest { /** *

    The AWS account ID associated with the registry that contains the repository. * If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + /** + *

    The name of the repository to receive the policy.

    + */ + repositoryName: string | undefined; + /** *

    The JSON repository policy text to apply to the repository. For more information, see * Amazon ECR Repository @@ -2397,9 +2618,11 @@ export interface SetRepositoryPolicyRequest { policyText: string | undefined; /** - *

    The name of the repository to receive the policy.

    + *

    If the policy you are attempting to set on a repository policy would prevent you from + * setting another policy in the future, you must force the SetRepositoryPolicy operation. This is intended to prevent accidental + * repository lock outs.

    */ - repositoryName: string | undefined; + force?: boolean; } export namespace SetRepositoryPolicyRequest { @@ -2415,14 +2638,14 @@ export interface SetRepositoryPolicyResponse { registryId?: string; /** - *

    The JSON repository policy text applied to the repository.

    + *

    The repository name associated with the request.

    */ - policyText?: string; + repositoryName?: string; /** - *

    The repository name associated with the request.

    + *

    The JSON repository policy text applied to the repository.

    */ - repositoryName?: string; + policyText?: string; } export namespace SetRepositoryPolicyResponse { @@ -2439,14 +2662,14 @@ export interface StartImageScanRequest { registryId?: string; /** - *

    An object with identifying information for an Amazon ECR image.

    + *

    The name of the repository that contains the images to scan.

    */ - imageId: ImageIdentifier | undefined; + repositoryName: string | undefined; /** - *

    The name of the repository that contains the images to scan.

    + *

    An object with identifying information for an Amazon ECR image.

    */ - repositoryName: string | undefined; + imageId: ImageIdentifier | undefined; } export namespace StartImageScanRequest { @@ -2456,11 +2679,6 @@ export namespace StartImageScanRequest { } export interface StartImageScanResponse { - /** - *

    The current state of the scan.

    - */ - imageScanStatus?: ImageScanStatus; - /** *

    The registry ID associated with the request.

    */ @@ -2475,6 +2693,11 @@ export interface StartImageScanResponse { *

    An object with identifying information for an Amazon ECR image.

    */ imageId?: ImageIdentifier; + + /** + *

    The current state of the scan.

    + */ + imageScanStatus?: ImageScanStatus; } export namespace StartImageScanResponse { @@ -2515,17 +2738,17 @@ export namespace LifecyclePolicyPreviewInProgressException { } export interface StartLifecyclePolicyPreviewRequest { - /** - *

    The name of the repository to be evaluated.

    - */ - repositoryName: string | undefined; - /** *

    The AWS account ID associated with the registry that contains the repository. * If you do not specify a registry, the default registry is assumed.

    */ registryId?: string; + /** + *

    The name of the repository to be evaluated.

    + */ + repositoryName: string | undefined; + /** *

    The policy to be evaluated against. If you do not specify a policy, the current policy * for the repository is used.

    @@ -2551,14 +2774,14 @@ export interface StartLifecyclePolicyPreviewResponse { repositoryName?: string; /** - *

    The status of the lifecycle policy preview request.

    + *

    The JSON repository policy text.

    */ - status?: LifecyclePolicyPreviewStatus | string; + lifecyclePolicyText?: string; /** - *

    The JSON repository policy text.

    + *

    The status of the lifecycle policy preview request.

    */ - lifecyclePolicyText?: string; + status?: LifecyclePolicyPreviewStatus | string; } export namespace StartLifecyclePolicyPreviewResponse { @@ -2631,30 +2854,30 @@ export interface InvalidLayerPartException extends __SmithyException, $MetadataB name: "InvalidLayerPartException"; $fault: "client"; /** - *

    The repository name associated with the exception.

    + *

    The registry ID associated with the exception.

    */ - repositoryName?: string; + registryId?: string; /** - *

    The error message associated with the exception.

    + *

    The repository name associated with the exception.

    */ - message?: string; + repositoryName?: string; /** *

    The upload ID associated with the exception.

    */ uploadId?: string; - /** - *

    The registry ID associated with the exception.

    - */ - registryId?: string; - /** *

    The last valid byte received from the layer part upload that is associated with the * exception.

    */ lastValidByteReceived?: number; + + /** + *

    The error message associated with the exception.

    + */ + message?: string; } export namespace InvalidLayerPartException { @@ -2671,9 +2894,9 @@ export interface UploadLayerPartRequest { registryId?: string; /** - *

    The base64-encoded layer part payload.

    + *

    The name of the repository to which you are uploading layer parts.

    */ - layerPartBlob: Uint8Array | undefined; + repositoryName: string | undefined; /** *

    The upload ID from a previous InitiateLayerUpload operation to @@ -2687,14 +2910,14 @@ export interface UploadLayerPartRequest { partFirstByte: number | undefined; /** - *

    The name of the repository to which you are uploading layer parts.

    + *

    The position of the last byte of the layer part within the overall image layer.

    */ - repositoryName: string | undefined; + partLastByte: number | undefined; /** - *

    The position of the last byte of the layer part within the overall image layer.

    + *

    The base64-encoded layer part payload.

    */ - partLastByte: number | undefined; + layerPartBlob: Uint8Array | undefined; } export namespace UploadLayerPartRequest { @@ -2704,11 +2927,6 @@ export namespace UploadLayerPartRequest { } export interface UploadLayerPartResponse { - /** - *

    The integer value of the last byte received in the request.

    - */ - lastByteReceived?: number; - /** *

    The registry ID associated with the request.

    */ @@ -2723,6 +2941,11 @@ export interface UploadLayerPartResponse { *

    The upload ID associated with the request.

    */ uploadId?: string; + + /** + *

    The integer value of the last byte received in the request.

    + */ + lastByteReceived?: number; } export namespace UploadLayerPartResponse { diff --git a/clients/client-ecr/protocols/Aws_json1_1.ts b/clients/client-ecr/protocols/Aws_json1_1.ts index 3afcc72813852..29126c94e02ac 100644 --- a/clients/client-ecr/protocols/Aws_json1_1.ts +++ b/clients/client-ecr/protocols/Aws_json1_1.ts @@ -13,6 +13,10 @@ import { DeleteLifecyclePolicyCommandInput, DeleteLifecyclePolicyCommandOutput, } from "../commands/DeleteLifecyclePolicyCommand"; +import { + DeleteRegistryPolicyCommandInput, + DeleteRegistryPolicyCommandOutput, +} from "../commands/DeleteRegistryPolicyCommand"; import { DeleteRepositoryCommandInput, DeleteRepositoryCommandOutput } from "../commands/DeleteRepositoryCommand"; import { DeleteRepositoryPolicyCommandInput, @@ -23,6 +27,7 @@ import { DescribeImageScanFindingsCommandOutput, } from "../commands/DescribeImageScanFindingsCommand"; import { DescribeImagesCommandInput, DescribeImagesCommandOutput } from "../commands/DescribeImagesCommand"; +import { DescribeRegistryCommandInput, DescribeRegistryCommandOutput } from "../commands/DescribeRegistryCommand"; import { DescribeRepositoriesCommandInput, DescribeRepositoriesCommandOutput, @@ -40,6 +45,7 @@ import { GetLifecyclePolicyPreviewCommandInput, GetLifecyclePolicyPreviewCommandOutput, } from "../commands/GetLifecyclePolicyPreviewCommand"; +import { GetRegistryPolicyCommandInput, GetRegistryPolicyCommandOutput } from "../commands/GetRegistryPolicyCommand"; import { GetRepositoryPolicyCommandInput, GetRepositoryPolicyCommandOutput, @@ -63,6 +69,11 @@ import { PutImageTagMutabilityCommandOutput, } from "../commands/PutImageTagMutabilityCommand"; import { PutLifecyclePolicyCommandInput, PutLifecyclePolicyCommandOutput } from "../commands/PutLifecyclePolicyCommand"; +import { PutRegistryPolicyCommandInput, PutRegistryPolicyCommandOutput } from "../commands/PutRegistryPolicyCommand"; +import { + PutReplicationConfigurationCommandInput, + PutReplicationConfigurationCommandOutput, +} from "../commands/PutReplicationConfigurationCommand"; import { SetRepositoryPolicyCommandInput, SetRepositoryPolicyCommandOutput, @@ -90,6 +101,8 @@ import { CreateRepositoryResponse, DeleteLifecyclePolicyRequest, DeleteLifecyclePolicyResponse, + DeleteRegistryPolicyRequest, + DeleteRegistryPolicyResponse, DeleteRepositoryPolicyRequest, DeleteRepositoryPolicyResponse, DeleteRepositoryRequest, @@ -99,6 +112,8 @@ import { DescribeImagesFilter, DescribeImagesRequest, DescribeImagesResponse, + DescribeRegistryRequest, + DescribeRegistryResponse, DescribeRepositoriesRequest, DescribeRepositoriesResponse, EmptyUploadException, @@ -112,6 +127,8 @@ import { GetLifecyclePolicyPreviewResponse, GetLifecyclePolicyRequest, GetLifecyclePolicyResponse, + GetRegistryPolicyRequest, + GetRegistryPolicyResponse, GetRepositoryPolicyRequest, GetRepositoryPolicyResponse, Image, @@ -161,7 +178,15 @@ import { PutImageTagMutabilityResponse, PutLifecyclePolicyRequest, PutLifecyclePolicyResponse, + PutRegistryPolicyRequest, + PutRegistryPolicyResponse, + PutReplicationConfigurationRequest, + PutReplicationConfigurationResponse, ReferencedImagesNotFoundException, + RegistryPolicyNotFoundException, + ReplicationConfiguration, + ReplicationDestination, + ReplicationRule, Repository, RepositoryAlreadyExistsException, RepositoryNotEmptyException, @@ -185,6 +210,7 @@ import { UploadLayerPartRequest, UploadLayerPartResponse, UploadNotFoundException, + ValidationException, } from "../models/models_0"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; @@ -274,6 +300,19 @@ export const serializeAws_json1_1DeleteLifecyclePolicyCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteRegistryPolicyCommand = async ( + input: DeleteRegistryPolicyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.DeleteRegistryPolicy", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteRegistryPolicyRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteRepositoryCommand = async ( input: DeleteRepositoryCommandInput, context: __SerdeContext @@ -326,6 +365,19 @@ export const serializeAws_json1_1DescribeImageScanFindingsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeRegistryCommand = async ( + input: DescribeRegistryCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.DescribeRegistry", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeRegistryRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeRepositoriesCommand = async ( input: DescribeRepositoriesCommandInput, context: __SerdeContext @@ -391,6 +443,19 @@ export const serializeAws_json1_1GetLifecyclePolicyPreviewCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1GetRegistryPolicyCommand = async ( + input: GetRegistryPolicyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.GetRegistryPolicy", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetRegistryPolicyRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1GetRepositoryPolicyCommand = async ( input: GetRepositoryPolicyCommandInput, context: __SerdeContext @@ -495,6 +560,32 @@ export const serializeAws_json1_1PutLifecyclePolicyCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1PutRegistryPolicyCommand = async ( + input: PutRegistryPolicyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.PutRegistryPolicy", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1PutRegistryPolicyRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1PutReplicationConfigurationCommand = async ( + input: PutReplicationConfigurationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonEC2ContainerRegistry_V20150921.PutReplicationConfiguration", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1PutReplicationConfigurationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1SetRepositoryPolicyCommand = async ( input: SetRepositoryPolicyCommandInput, context: __SerdeContext @@ -1087,6 +1178,77 @@ const deserializeAws_json1_1DeleteLifecyclePolicyCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteRegistryPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteRegistryPolicyCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DeleteRegistryPolicyResponse(data, context); + const response: DeleteRegistryPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteRegistryPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.ecr#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RegistryPolicyNotFoundException": + case "com.amazonaws.ecr#RegistryPolicyNotFoundException": + response = { + ...(await deserializeAws_json1_1RegistryPolicyNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerException": + case "com.amazonaws.ecr#ServerException": + response = { + ...(await deserializeAws_json1_1ServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteRepositoryCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1419,6 +1581,77 @@ const deserializeAws_json1_1DescribeImageScanFindingsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DescribeRegistryCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeRegistryCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeRegistryResponse(data, context); + const response: DescribeRegistryCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeRegistryCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.ecr#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerException": + case "com.amazonaws.ecr#ServerException": + response = { + ...(await deserializeAws_json1_1ServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.ecr#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DescribeRepositoriesCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1798,6 +2031,77 @@ const deserializeAws_json1_1GetLifecyclePolicyPreviewCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1GetRegistryPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetRegistryPolicyCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetRegistryPolicyResponse(data, context); + const response: GetRegistryPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetRegistryPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.ecr#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RegistryPolicyNotFoundException": + case "com.amazonaws.ecr#RegistryPolicyNotFoundException": + response = { + ...(await deserializeAws_json1_1RegistryPolicyNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerException": + case "com.amazonaws.ecr#ServerException": + response = { + ...(await deserializeAws_json1_1ServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1GetRepositoryPolicyCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2438,6 +2742,140 @@ const deserializeAws_json1_1PutLifecyclePolicyCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1PutRegistryPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1PutRegistryPolicyCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1PutRegistryPolicyResponse(data, context); + const response: PutRegistryPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1PutRegistryPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.ecr#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerException": + case "com.amazonaws.ecr#ServerException": + response = { + ...(await deserializeAws_json1_1ServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1PutReplicationConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1PutReplicationConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1PutReplicationConfigurationResponse(data, context); + const response: PutReplicationConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1PutReplicationConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.ecr#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerException": + case "com.amazonaws.ecr#ServerException": + response = { + ...(await deserializeAws_json1_1ServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.ecr#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1SetRepositoryPolicyCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -3253,6 +3691,21 @@ const deserializeAws_json1_1ReferencedImagesNotFoundExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1RegistryPolicyNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1RegistryPolicyNotFoundException(body, context); + const contents: RegistryPolicyNotFoundException = { + name: "RegistryPolicyNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1RepositoryAlreadyExistsExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -3388,6 +3841,21 @@ const deserializeAws_json1_1UploadNotFoundExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1ValidationException(body, context); + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const serializeAws_json1_1BatchCheckLayerAvailabilityRequest = ( input: BatchCheckLayerAvailabilityRequest, context: __SerdeContext @@ -3465,6 +3933,13 @@ const serializeAws_json1_1DeleteLifecyclePolicyRequest = ( }; }; +const serializeAws_json1_1DeleteRegistryPolicyRequest = ( + input: DeleteRegistryPolicyRequest, + context: __SerdeContext +): any => { + return {}; +}; + const serializeAws_json1_1DeleteRepositoryPolicyRequest = ( input: DeleteRepositoryPolicyRequest, context: __SerdeContext @@ -3513,6 +3988,10 @@ const serializeAws_json1_1DescribeImagesRequest = (input: DescribeImagesRequest, }; }; +const serializeAws_json1_1DescribeRegistryRequest = (input: DescribeRegistryRequest, context: __SerdeContext): any => { + return {}; +}; + const serializeAws_json1_1DescribeRepositoriesRequest = ( input: DescribeRepositoriesRequest, context: __SerdeContext @@ -3586,6 +4065,13 @@ const serializeAws_json1_1GetLifecyclePolicyRequest = ( }; }; +const serializeAws_json1_1GetRegistryPolicyRequest = ( + input: GetRegistryPolicyRequest, + context: __SerdeContext +): any => { + return {}; +}; + const serializeAws_json1_1GetRepositoryPolicyRequest = ( input: GetRepositoryPolicyRequest, context: __SerdeContext @@ -3717,6 +4203,61 @@ const serializeAws_json1_1PutLifecyclePolicyRequest = ( }; }; +const serializeAws_json1_1PutRegistryPolicyRequest = ( + input: PutRegistryPolicyRequest, + context: __SerdeContext +): any => { + return { + ...(input.policyText !== undefined && { policyText: input.policyText }), + }; +}; + +const serializeAws_json1_1PutReplicationConfigurationRequest = ( + input: PutReplicationConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.replicationConfiguration !== undefined && { + replicationConfiguration: serializeAws_json1_1ReplicationConfiguration(input.replicationConfiguration, context), + }), + }; +}; + +const serializeAws_json1_1ReplicationConfiguration = ( + input: ReplicationConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.rules !== undefined && { rules: serializeAws_json1_1ReplicationRuleList(input.rules, context) }), + }; +}; + +const serializeAws_json1_1ReplicationDestination = (input: ReplicationDestination, context: __SerdeContext): any => { + return { + ...(input.region !== undefined && { region: input.region }), + ...(input.registryId !== undefined && { registryId: input.registryId }), + }; +}; + +const serializeAws_json1_1ReplicationDestinationList = ( + input: ReplicationDestination[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_json1_1ReplicationDestination(entry, context)); +}; + +const serializeAws_json1_1ReplicationRule = (input: ReplicationRule, context: __SerdeContext): any => { + return { + ...(input.destinations !== undefined && { + destinations: serializeAws_json1_1ReplicationDestinationList(input.destinations, context), + }), + }; +}; + +const serializeAws_json1_1ReplicationRuleList = (input: ReplicationRule[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1ReplicationRule(entry, context)); +}; + const serializeAws_json1_1RepositoryNameList = (input: string[], context: __SerdeContext): any => { return input.map((entry) => entry); }; @@ -3911,6 +4452,16 @@ const deserializeAws_json1_1DeleteLifecyclePolicyResponse = ( } as any; }; +const deserializeAws_json1_1DeleteRegistryPolicyResponse = ( + output: any, + context: __SerdeContext +): DeleteRegistryPolicyResponse => { + return { + policyText: output.policyText !== undefined && output.policyText !== null ? output.policyText : undefined, + registryId: output.registryId !== undefined && output.registryId !== null ? output.registryId : undefined, + } as any; +}; + const deserializeAws_json1_1DeleteRepositoryPolicyResponse = ( output: any, context: __SerdeContext @@ -3969,6 +4520,19 @@ const deserializeAws_json1_1DescribeImagesResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1DescribeRegistryResponse = ( + output: any, + context: __SerdeContext +): DescribeRegistryResponse => { + return { + registryId: output.registryId !== undefined && output.registryId !== null ? output.registryId : undefined, + replicationConfiguration: + output.replicationConfiguration !== undefined && output.replicationConfiguration !== null + ? deserializeAws_json1_1ReplicationConfiguration(output.replicationConfiguration, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeRepositoriesResponse = ( output: any, context: __SerdeContext @@ -4078,6 +4642,16 @@ const deserializeAws_json1_1GetLifecyclePolicyResponse = ( } as any; }; +const deserializeAws_json1_1GetRegistryPolicyResponse = ( + output: any, + context: __SerdeContext +): GetRegistryPolicyResponse => { + return { + policyText: output.policyText !== undefined && output.policyText !== null ? output.policyText : undefined, + registryId: output.registryId !== undefined && output.registryId !== null ? output.registryId : undefined, + } as any; +}; + const deserializeAws_json1_1GetRepositoryPolicyResponse = ( output: any, context: __SerdeContext @@ -4574,6 +5148,28 @@ const deserializeAws_json1_1PutLifecyclePolicyResponse = ( } as any; }; +const deserializeAws_json1_1PutRegistryPolicyResponse = ( + output: any, + context: __SerdeContext +): PutRegistryPolicyResponse => { + return { + policyText: output.policyText !== undefined && output.policyText !== null ? output.policyText : undefined, + registryId: output.registryId !== undefined && output.registryId !== null ? output.registryId : undefined, + } as any; +}; + +const deserializeAws_json1_1PutReplicationConfigurationResponse = ( + output: any, + context: __SerdeContext +): PutReplicationConfigurationResponse => { + return { + replicationConfiguration: + output.replicationConfiguration !== undefined && output.replicationConfiguration !== null + ? deserializeAws_json1_1ReplicationConfiguration(output.replicationConfiguration, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ReferencedImagesNotFoundException = ( output: any, context: __SerdeContext @@ -4583,6 +5179,54 @@ const deserializeAws_json1_1ReferencedImagesNotFoundException = ( } as any; }; +const deserializeAws_json1_1RegistryPolicyNotFoundException = ( + output: any, + context: __SerdeContext +): RegistryPolicyNotFoundException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1ReplicationConfiguration = ( + output: any, + context: __SerdeContext +): ReplicationConfiguration => { + return { + rules: + output.rules !== undefined && output.rules !== null + ? deserializeAws_json1_1ReplicationRuleList(output.rules, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ReplicationDestination = (output: any, context: __SerdeContext): ReplicationDestination => { + return { + region: output.region !== undefined && output.region !== null ? output.region : undefined, + registryId: output.registryId !== undefined && output.registryId !== null ? output.registryId : undefined, + } as any; +}; + +const deserializeAws_json1_1ReplicationDestinationList = ( + output: any, + context: __SerdeContext +): ReplicationDestination[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ReplicationDestination(entry, context)); +}; + +const deserializeAws_json1_1ReplicationRule = (output: any, context: __SerdeContext): ReplicationRule => { + return { + destinations: + output.destinations !== undefined && output.destinations !== null + ? deserializeAws_json1_1ReplicationDestinationList(output.destinations, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ReplicationRuleList = (output: any, context: __SerdeContext): ReplicationRule[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ReplicationRule(entry, context)); +}; + const deserializeAws_json1_1Repository = (output: any, context: __SerdeContext): Repository => { return { createdAt: @@ -4764,6 +5408,12 @@ const deserializeAws_json1_1UploadNotFoundException = ( } as any; }; +const deserializeAws_json1_1ValidationException = (output: any, context: __SerdeContext): ValidationException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, httpHeaders: output.headers, diff --git a/clients/client-emr-containers/.gitignore b/clients/client-emr-containers/.gitignore new file mode 100644 index 0000000000000..b41c05b597c42 --- /dev/null +++ b/clients/client-emr-containers/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-emr-containers/.npmignore b/clients/client-emr-containers/.npmignore new file mode 100644 index 0000000000000..b7ff81137c4ad --- /dev/null +++ b/clients/client-emr-containers/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-emr-containers/EMRContainers.ts b/clients/client-emr-containers/EMRContainers.ts new file mode 100644 index 0000000000000..fb133b5143883 --- /dev/null +++ b/clients/client-emr-containers/EMRContainers.ts @@ -0,0 +1,550 @@ +import { EMRContainersClient } from "./EMRContainersClient"; +import { + CancelJobRunCommand, + CancelJobRunCommandInput, + CancelJobRunCommandOutput, +} from "./commands/CancelJobRunCommand"; +import { + CreateManagedEndpointCommand, + CreateManagedEndpointCommandInput, + CreateManagedEndpointCommandOutput, +} from "./commands/CreateManagedEndpointCommand"; +import { + CreateVirtualClusterCommand, + CreateVirtualClusterCommandInput, + CreateVirtualClusterCommandOutput, +} from "./commands/CreateVirtualClusterCommand"; +import { + DeleteManagedEndpointCommand, + DeleteManagedEndpointCommandInput, + DeleteManagedEndpointCommandOutput, +} from "./commands/DeleteManagedEndpointCommand"; +import { + DeleteVirtualClusterCommand, + DeleteVirtualClusterCommandInput, + DeleteVirtualClusterCommandOutput, +} from "./commands/DeleteVirtualClusterCommand"; +import { + DescribeJobRunCommand, + DescribeJobRunCommandInput, + DescribeJobRunCommandOutput, +} from "./commands/DescribeJobRunCommand"; +import { + DescribeManagedEndpointCommand, + DescribeManagedEndpointCommandInput, + DescribeManagedEndpointCommandOutput, +} from "./commands/DescribeManagedEndpointCommand"; +import { + DescribeVirtualClusterCommand, + DescribeVirtualClusterCommandInput, + DescribeVirtualClusterCommandOutput, +} from "./commands/DescribeVirtualClusterCommand"; +import { ListJobRunsCommand, ListJobRunsCommandInput, ListJobRunsCommandOutput } from "./commands/ListJobRunsCommand"; +import { + ListManagedEndpointsCommand, + ListManagedEndpointsCommandInput, + ListManagedEndpointsCommandOutput, +} from "./commands/ListManagedEndpointsCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + ListVirtualClustersCommand, + ListVirtualClustersCommandInput, + ListVirtualClustersCommandOutput, +} from "./commands/ListVirtualClustersCommand"; +import { StartJobRunCommand, StartJobRunCommandInput, StartJobRunCommandOutput } from "./commands/StartJobRunCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + *

    Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run + * open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With + * this deployment option, you can focus on running analytics workloads while Amazon EMR on + * EKS builds, configures, and manages containers for open-source applications. For more + * information about Amazon EMR on EKS concepts and tasks, see What is Amazon EMR on EKS.

    + *

    + * Amazon EMR containers is the API name for Amazon EMR on EKS. The + * emr-containers prefix is used in the following scenarios:

    + *
      + *
    • + *

      It is the prefix in the CLI commands for Amazon EMR on EKS. For example, aws + * emr-containers start-job-run.

      + *
    • + *
    • + *

      It is the prefix before IAM policy actions for Amazon EMR on EKS. For example, "Action": [ + * "emr-containers:StartJobRun"]. For more information, see Policy actions for Amazon EMR on EKS.

      + *
    • + *
    • + *

      It is the prefix used in Amazon EMR on EKS service endpoints. For example, emr-containers.us-east-2.amazonaws.com. For more + * information, see Amazon EMR on EKS Service Endpoints.

      + *
    • + *
    + */ +export class EMRContainers extends EMRContainersClient { + /** + *

    Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ + public cancelJobRun( + args: CancelJobRunCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public cancelJobRun(args: CancelJobRunCommandInput, cb: (err: any, data?: CancelJobRunCommandOutput) => void): void; + public cancelJobRun( + args: CancelJobRunCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CancelJobRunCommandOutput) => void + ): void; + public cancelJobRun( + args: CancelJobRunCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CancelJobRunCommandOutput) => void), + cb?: (err: any, data?: CancelJobRunCommandOutput) => void + ): Promise | void { + const command = new CancelJobRunCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Creates a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ + public createManagedEndpoint( + args: CreateManagedEndpointCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createManagedEndpoint( + args: CreateManagedEndpointCommandInput, + cb: (err: any, data?: CreateManagedEndpointCommandOutput) => void + ): void; + public createManagedEndpoint( + args: CreateManagedEndpointCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateManagedEndpointCommandOutput) => void + ): void; + public createManagedEndpoint( + args: CreateManagedEndpointCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateManagedEndpointCommandOutput) => void), + cb?: (err: any, data?: CreateManagedEndpointCommandOutput) => void + ): Promise | void { + const command = new CreateManagedEndpointCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ + public createVirtualCluster( + args: CreateVirtualClusterCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createVirtualCluster( + args: CreateVirtualClusterCommandInput, + cb: (err: any, data?: CreateVirtualClusterCommandOutput) => void + ): void; + public createVirtualCluster( + args: CreateVirtualClusterCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateVirtualClusterCommandOutput) => void + ): void; + public createVirtualCluster( + args: CreateVirtualClusterCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateVirtualClusterCommandOutput) => void), + cb?: (err: any, data?: CreateVirtualClusterCommandOutput) => void + ): Promise | void { + const command = new CreateVirtualClusterCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Deletes a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ + public deleteManagedEndpoint( + args: DeleteManagedEndpointCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteManagedEndpoint( + args: DeleteManagedEndpointCommandInput, + cb: (err: any, data?: DeleteManagedEndpointCommandOutput) => void + ): void; + public deleteManagedEndpoint( + args: DeleteManagedEndpointCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteManagedEndpointCommandOutput) => void + ): void; + public deleteManagedEndpoint( + args: DeleteManagedEndpointCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteManagedEndpointCommandOutput) => void), + cb?: (err: any, data?: DeleteManagedEndpointCommandOutput) => void + ): Promise | void { + const command = new DeleteManagedEndpointCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ + public deleteVirtualCluster( + args: DeleteVirtualClusterCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteVirtualCluster( + args: DeleteVirtualClusterCommandInput, + cb: (err: any, data?: DeleteVirtualClusterCommandOutput) => void + ): void; + public deleteVirtualCluster( + args: DeleteVirtualClusterCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteVirtualClusterCommandOutput) => void + ): void; + public deleteVirtualCluster( + args: DeleteVirtualClusterCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteVirtualClusterCommandOutput) => void), + cb?: (err: any, data?: DeleteVirtualClusterCommandOutput) => void + ): Promise | void { + const command = new DeleteVirtualClusterCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ + public describeJobRun( + args: DescribeJobRunCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeJobRun( + args: DescribeJobRunCommandInput, + cb: (err: any, data?: DescribeJobRunCommandOutput) => void + ): void; + public describeJobRun( + args: DescribeJobRunCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeJobRunCommandOutput) => void + ): void; + public describeJobRun( + args: DescribeJobRunCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeJobRunCommandOutput) => void), + cb?: (err: any, data?: DescribeJobRunCommandOutput) => void + ): Promise | void { + const command = new DescribeJobRunCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ + public describeManagedEndpoint( + args: DescribeManagedEndpointCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeManagedEndpoint( + args: DescribeManagedEndpointCommandInput, + cb: (err: any, data?: DescribeManagedEndpointCommandOutput) => void + ): void; + public describeManagedEndpoint( + args: DescribeManagedEndpointCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeManagedEndpointCommandOutput) => void + ): void; + public describeManagedEndpoint( + args: DescribeManagedEndpointCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeManagedEndpointCommandOutput) => void), + cb?: (err: any, data?: DescribeManagedEndpointCommandOutput) => void + ): Promise | void { + const command = new DescribeManagedEndpointCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ + public describeVirtualCluster( + args: DescribeVirtualClusterCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeVirtualCluster( + args: DescribeVirtualClusterCommandInput, + cb: (err: any, data?: DescribeVirtualClusterCommandOutput) => void + ): void; + public describeVirtualCluster( + args: DescribeVirtualClusterCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeVirtualClusterCommandOutput) => void + ): void; + public describeVirtualCluster( + args: DescribeVirtualClusterCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeVirtualClusterCommandOutput) => void), + cb?: (err: any, data?: DescribeVirtualClusterCommandOutput) => void + ): Promise | void { + const command = new DescribeVirtualClusterCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ + public listJobRuns(args: ListJobRunsCommandInput, options?: __HttpHandlerOptions): Promise; + public listJobRuns(args: ListJobRunsCommandInput, cb: (err: any, data?: ListJobRunsCommandOutput) => void): void; + public listJobRuns( + args: ListJobRunsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListJobRunsCommandOutput) => void + ): void; + public listJobRuns( + args: ListJobRunsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListJobRunsCommandOutput) => void), + cb?: (err: any, data?: ListJobRunsCommandOutput) => void + ): Promise | void { + const command = new ListJobRunsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ + public listManagedEndpoints( + args: ListManagedEndpointsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listManagedEndpoints( + args: ListManagedEndpointsCommandInput, + cb: (err: any, data?: ListManagedEndpointsCommandOutput) => void + ): void; + public listManagedEndpoints( + args: ListManagedEndpointsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListManagedEndpointsCommandOutput) => void + ): void; + public listManagedEndpoints( + args: ListManagedEndpointsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListManagedEndpointsCommandOutput) => void), + cb?: (err: any, data?: ListManagedEndpointsCommandOutput) => void + ): Promise | void { + const command = new ListManagedEndpointsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Lists the tags assigned to the resources.

    + */ + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTagsForResourceCommandOutput) => void), + cb?: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): Promise | void { + const command = new ListTagsForResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ + public listVirtualClusters( + args: ListVirtualClustersCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listVirtualClusters( + args: ListVirtualClustersCommandInput, + cb: (err: any, data?: ListVirtualClustersCommandOutput) => void + ): void; + public listVirtualClusters( + args: ListVirtualClustersCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListVirtualClustersCommandOutput) => void + ): void; + public listVirtualClusters( + args: ListVirtualClustersCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListVirtualClustersCommandOutput) => void), + cb?: (err: any, data?: ListVirtualClustersCommandOutput) => void + ): Promise | void { + const command = new ListVirtualClustersCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ + public startJobRun(args: StartJobRunCommandInput, options?: __HttpHandlerOptions): Promise; + public startJobRun(args: StartJobRunCommandInput, cb: (err: any, data?: StartJobRunCommandOutput) => void): void; + public startJobRun( + args: StartJobRunCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartJobRunCommandOutput) => void + ): void; + public startJobRun( + args: StartJobRunCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StartJobRunCommandOutput) => void), + cb?: (err: any, data?: StartJobRunCommandOutput) => void + ): Promise | void { + const command = new StartJobRunCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add.

    + */ + public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + public tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + public tagResource( + args: TagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: TagResourceCommandOutput) => void), + cb?: (err: any, data?: TagResourceCommandOutput) => void + ): Promise | void { + const command = new TagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Removes tags from resources.

    + */ + public untagResource( + args: UntagResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public untagResource( + args: UntagResourceCommandInput, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UntagResourceCommandOutput) => void), + cb?: (err: any, data?: UntagResourceCommandOutput) => void + ): Promise | void { + const command = new UntagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-emr-containers/EMRContainersClient.ts b/clients/client-emr-containers/EMRContainersClient.ts new file mode 100644 index 0000000000000..b532b5bcc6a9d --- /dev/null +++ b/clients/client-emr-containers/EMRContainersClient.ts @@ -0,0 +1,294 @@ +import { CancelJobRunCommandInput, CancelJobRunCommandOutput } from "./commands/CancelJobRunCommand"; +import { + CreateManagedEndpointCommandInput, + CreateManagedEndpointCommandOutput, +} from "./commands/CreateManagedEndpointCommand"; +import { + CreateVirtualClusterCommandInput, + CreateVirtualClusterCommandOutput, +} from "./commands/CreateVirtualClusterCommand"; +import { + DeleteManagedEndpointCommandInput, + DeleteManagedEndpointCommandOutput, +} from "./commands/DeleteManagedEndpointCommand"; +import { + DeleteVirtualClusterCommandInput, + DeleteVirtualClusterCommandOutput, +} from "./commands/DeleteVirtualClusterCommand"; +import { DescribeJobRunCommandInput, DescribeJobRunCommandOutput } from "./commands/DescribeJobRunCommand"; +import { + DescribeManagedEndpointCommandInput, + DescribeManagedEndpointCommandOutput, +} from "./commands/DescribeManagedEndpointCommand"; +import { + DescribeVirtualClusterCommandInput, + DescribeVirtualClusterCommandOutput, +} from "./commands/DescribeVirtualClusterCommand"; +import { ListJobRunsCommandInput, ListJobRunsCommandOutput } from "./commands/ListJobRunsCommand"; +import { + ListManagedEndpointsCommandInput, + ListManagedEndpointsCommandOutput, +} from "./commands/ListManagedEndpointsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + ListVirtualClustersCommandInput, + ListVirtualClustersCommandOutput, +} from "./commands/ListVirtualClustersCommand"; +import { StartJobRunCommandInput, StartJobRunCommandOutput } from "./commands/StartJobRunCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, +} from "@aws-sdk/types"; + +export type ServiceInputTypes = + | CancelJobRunCommandInput + | CreateManagedEndpointCommandInput + | CreateVirtualClusterCommandInput + | DeleteManagedEndpointCommandInput + | DeleteVirtualClusterCommandInput + | DescribeJobRunCommandInput + | DescribeManagedEndpointCommandInput + | DescribeVirtualClusterCommandInput + | ListJobRunsCommandInput + | ListManagedEndpointsCommandInput + | ListTagsForResourceCommandInput + | ListVirtualClustersCommandInput + | StartJobRunCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput; + +export type ServiceOutputTypes = + | CancelJobRunCommandOutput + | CreateManagedEndpointCommandOutput + | CreateVirtualClusterCommandOutput + | DeleteManagedEndpointCommandOutput + | DeleteVirtualClusterCommandOutput + | DescribeJobRunCommandOutput + | DescribeManagedEndpointCommandOutput + | DescribeVirtualClusterCommandOutput + | ListJobRunsCommandOutput + | ListManagedEndpointsCommandOutput + | ListTagsForResourceCommandOutput + | ListVirtualClustersCommandOutput + | StartJobRunCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type EMRContainersClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type EMRContainersClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + *

    Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run + * open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With + * this deployment option, you can focus on running analytics workloads while Amazon EMR on + * EKS builds, configures, and manages containers for open-source applications. For more + * information about Amazon EMR on EKS concepts and tasks, see What is Amazon EMR on EKS.

    + *

    + * Amazon EMR containers is the API name for Amazon EMR on EKS. The + * emr-containers prefix is used in the following scenarios:

    + *
      + *
    • + *

      It is the prefix in the CLI commands for Amazon EMR on EKS. For example, aws + * emr-containers start-job-run.

      + *
    • + *
    • + *

      It is the prefix before IAM policy actions for Amazon EMR on EKS. For example, "Action": [ + * "emr-containers:StartJobRun"]. For more information, see Policy actions for Amazon EMR on EKS.

      + *
    • + *
    • + *

      It is the prefix used in Amazon EMR on EKS service endpoints. For example, emr-containers.us-east-2.amazonaws.com. For more + * information, see Amazon EMR on EKS Service Endpoints.

      + *
    • + *
    + */ +export class EMRContainersClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + EMRContainersClientResolvedConfig +> { + readonly config: EMRContainersClientResolvedConfig; + + constructor(configuration: EMRContainersClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration, + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + } + + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-emr-containers/LICENSE b/clients/client-emr-containers/LICENSE new file mode 100644 index 0000000000000..dd65ae06be7a9 --- /dev/null +++ b/clients/client-emr-containers/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/clients/client-emr-containers/README.md b/clients/client-emr-containers/README.md new file mode 100644 index 0000000000000..5cd9f683e1a84 --- /dev/null +++ b/clients/client-emr-containers/README.md @@ -0,0 +1,6 @@ +# @aws-sdk/client-emr-containers + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-emr-containers/rc.svg)](https://www.npmjs.com/package/@aws-sdk/client-emr-containers) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-emr-containers.svg)](https://www.npmjs.com/package/@aws-sdk/client-emr-containers) + +For SDK usage, please step to [SDK readme](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-emr-containers/commands/CancelJobRunCommand.ts b/clients/client-emr-containers/commands/CancelJobRunCommand.ts new file mode 100644 index 0000000000000..21545dac0cc16 --- /dev/null +++ b/clients/client-emr-containers/commands/CancelJobRunCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { CancelJobRunRequest, CancelJobRunResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CancelJobRunCommand, + serializeAws_restJson1CancelJobRunCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CancelJobRunCommandInput = CancelJobRunRequest; +export type CancelJobRunCommandOutput = CancelJobRunResponse & __MetadataBearer; + +/** + *

    Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ +export class CancelJobRunCommand extends $Command< + CancelJobRunCommandInput, + CancelJobRunCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CancelJobRunCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "CancelJobRunCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CancelJobRunRequest.filterSensitiveLog, + outputFilterSensitiveLog: CancelJobRunResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CancelJobRunCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CancelJobRunCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CancelJobRunCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/CreateManagedEndpointCommand.ts b/clients/client-emr-containers/commands/CreateManagedEndpointCommand.ts new file mode 100644 index 0000000000000..c3bee6e924210 --- /dev/null +++ b/clients/client-emr-containers/commands/CreateManagedEndpointCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { CreateManagedEndpointRequest, CreateManagedEndpointResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateManagedEndpointCommand, + serializeAws_restJson1CreateManagedEndpointCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateManagedEndpointCommandInput = CreateManagedEndpointRequest; +export type CreateManagedEndpointCommandOutput = CreateManagedEndpointResponse & __MetadataBearer; + +/** + *

    Creates a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ +export class CreateManagedEndpointCommand extends $Command< + CreateManagedEndpointCommandInput, + CreateManagedEndpointCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateManagedEndpointCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "CreateManagedEndpointCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateManagedEndpointRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateManagedEndpointResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateManagedEndpointCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateManagedEndpointCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateManagedEndpointCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/CreateVirtualClusterCommand.ts b/clients/client-emr-containers/commands/CreateVirtualClusterCommand.ts new file mode 100644 index 0000000000000..dd25cb6845016 --- /dev/null +++ b/clients/client-emr-containers/commands/CreateVirtualClusterCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { CreateVirtualClusterRequest, CreateVirtualClusterResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateVirtualClusterCommand, + serializeAws_restJson1CreateVirtualClusterCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateVirtualClusterCommandInput = CreateVirtualClusterRequest; +export type CreateVirtualClusterCommandOutput = CreateVirtualClusterResponse & __MetadataBearer; + +/** + *

    Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ +export class CreateVirtualClusterCommand extends $Command< + CreateVirtualClusterCommandInput, + CreateVirtualClusterCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateVirtualClusterCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "CreateVirtualClusterCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateVirtualClusterRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateVirtualClusterResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateVirtualClusterCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateVirtualClusterCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateVirtualClusterCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/DeleteManagedEndpointCommand.ts b/clients/client-emr-containers/commands/DeleteManagedEndpointCommand.ts new file mode 100644 index 0000000000000..a9b0da18f0c5b --- /dev/null +++ b/clients/client-emr-containers/commands/DeleteManagedEndpointCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { DeleteManagedEndpointRequest, DeleteManagedEndpointResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteManagedEndpointCommand, + serializeAws_restJson1DeleteManagedEndpointCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteManagedEndpointCommandInput = DeleteManagedEndpointRequest; +export type DeleteManagedEndpointCommandOutput = DeleteManagedEndpointResponse & __MetadataBearer; + +/** + *

    Deletes a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ +export class DeleteManagedEndpointCommand extends $Command< + DeleteManagedEndpointCommandInput, + DeleteManagedEndpointCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteManagedEndpointCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "DeleteManagedEndpointCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteManagedEndpointRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteManagedEndpointResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteManagedEndpointCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteManagedEndpointCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteManagedEndpointCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/DeleteVirtualClusterCommand.ts b/clients/client-emr-containers/commands/DeleteVirtualClusterCommand.ts new file mode 100644 index 0000000000000..c2b7cf3bf359a --- /dev/null +++ b/clients/client-emr-containers/commands/DeleteVirtualClusterCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { DeleteVirtualClusterRequest, DeleteVirtualClusterResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteVirtualClusterCommand, + serializeAws_restJson1DeleteVirtualClusterCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteVirtualClusterCommandInput = DeleteVirtualClusterRequest; +export type DeleteVirtualClusterCommandOutput = DeleteVirtualClusterResponse & __MetadataBearer; + +/** + *

    Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ +export class DeleteVirtualClusterCommand extends $Command< + DeleteVirtualClusterCommandInput, + DeleteVirtualClusterCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteVirtualClusterCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "DeleteVirtualClusterCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteVirtualClusterRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteVirtualClusterResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteVirtualClusterCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteVirtualClusterCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteVirtualClusterCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/DescribeJobRunCommand.ts b/clients/client-emr-containers/commands/DescribeJobRunCommand.ts new file mode 100644 index 0000000000000..5da767dc3650e --- /dev/null +++ b/clients/client-emr-containers/commands/DescribeJobRunCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { DescribeJobRunRequest, DescribeJobRunResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DescribeJobRunCommand, + serializeAws_restJson1DescribeJobRunCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeJobRunCommandInput = DescribeJobRunRequest; +export type DescribeJobRunCommandOutput = DescribeJobRunResponse & __MetadataBearer; + +/** + *

    Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ +export class DescribeJobRunCommand extends $Command< + DescribeJobRunCommandInput, + DescribeJobRunCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeJobRunCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "DescribeJobRunCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeJobRunRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeJobRunResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeJobRunCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DescribeJobRunCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DescribeJobRunCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/DescribeManagedEndpointCommand.ts b/clients/client-emr-containers/commands/DescribeManagedEndpointCommand.ts new file mode 100644 index 0000000000000..088ae31b50fa8 --- /dev/null +++ b/clients/client-emr-containers/commands/DescribeManagedEndpointCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { DescribeManagedEndpointRequest, DescribeManagedEndpointResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DescribeManagedEndpointCommand, + serializeAws_restJson1DescribeManagedEndpointCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeManagedEndpointCommandInput = DescribeManagedEndpointRequest; +export type DescribeManagedEndpointCommandOutput = DescribeManagedEndpointResponse & __MetadataBearer; + +/** + *

    Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ +export class DescribeManagedEndpointCommand extends $Command< + DescribeManagedEndpointCommandInput, + DescribeManagedEndpointCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeManagedEndpointCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "DescribeManagedEndpointCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeManagedEndpointRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeManagedEndpointResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeManagedEndpointCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DescribeManagedEndpointCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DescribeManagedEndpointCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/DescribeVirtualClusterCommand.ts b/clients/client-emr-containers/commands/DescribeVirtualClusterCommand.ts new file mode 100644 index 0000000000000..3134b5f28ce1b --- /dev/null +++ b/clients/client-emr-containers/commands/DescribeVirtualClusterCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { DescribeVirtualClusterRequest, DescribeVirtualClusterResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DescribeVirtualClusterCommand, + serializeAws_restJson1DescribeVirtualClusterCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeVirtualClusterCommandInput = DescribeVirtualClusterRequest; +export type DescribeVirtualClusterCommandOutput = DescribeVirtualClusterResponse & __MetadataBearer; + +/** + *

    Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ +export class DescribeVirtualClusterCommand extends $Command< + DescribeVirtualClusterCommandInput, + DescribeVirtualClusterCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeVirtualClusterCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "DescribeVirtualClusterCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeVirtualClusterRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeVirtualClusterResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeVirtualClusterCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DescribeVirtualClusterCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DescribeVirtualClusterCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/ListJobRunsCommand.ts b/clients/client-emr-containers/commands/ListJobRunsCommand.ts new file mode 100644 index 0000000000000..d43c82d40e222 --- /dev/null +++ b/clients/client-emr-containers/commands/ListJobRunsCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { ListJobRunsRequest, ListJobRunsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListJobRunsCommand, + serializeAws_restJson1ListJobRunsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListJobRunsCommandInput = ListJobRunsRequest; +export type ListJobRunsCommandOutput = ListJobRunsResponse & __MetadataBearer; + +/** + *

    Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ +export class ListJobRunsCommand extends $Command< + ListJobRunsCommandInput, + ListJobRunsCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListJobRunsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "ListJobRunsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListJobRunsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListJobRunsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListJobRunsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListJobRunsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListJobRunsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/ListManagedEndpointsCommand.ts b/clients/client-emr-containers/commands/ListManagedEndpointsCommand.ts new file mode 100644 index 0000000000000..e43ae10be4e93 --- /dev/null +++ b/clients/client-emr-containers/commands/ListManagedEndpointsCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { ListManagedEndpointsRequest, ListManagedEndpointsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListManagedEndpointsCommand, + serializeAws_restJson1ListManagedEndpointsCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListManagedEndpointsCommandInput = ListManagedEndpointsRequest; +export type ListManagedEndpointsCommandOutput = ListManagedEndpointsResponse & __MetadataBearer; + +/** + *

    Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

    + */ +export class ListManagedEndpointsCommand extends $Command< + ListManagedEndpointsCommandInput, + ListManagedEndpointsCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListManagedEndpointsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "ListManagedEndpointsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListManagedEndpointsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListManagedEndpointsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListManagedEndpointsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListManagedEndpointsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListManagedEndpointsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/ListTagsForResourceCommand.ts b/clients/client-emr-containers/commands/ListTagsForResourceCommand.ts new file mode 100644 index 0000000000000..257269bb9e6ed --- /dev/null +++ b/clients/client-emr-containers/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListTagsForResourceCommand, + serializeAws_restJson1ListTagsForResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; +export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; + +/** + *

    Lists the tags assigned to the resources.

    + */ +export class ListTagsForResourceCommand extends $Command< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTagsForResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "ListTagsForResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTagsForResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTagsForResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTagsForResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListTagsForResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListTagsForResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/ListVirtualClustersCommand.ts b/clients/client-emr-containers/commands/ListVirtualClustersCommand.ts new file mode 100644 index 0000000000000..bb0737b882c78 --- /dev/null +++ b/clients/client-emr-containers/commands/ListVirtualClustersCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { ListVirtualClustersRequest, ListVirtualClustersResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListVirtualClustersCommand, + serializeAws_restJson1ListVirtualClustersCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListVirtualClustersCommandInput = ListVirtualClustersRequest; +export type ListVirtualClustersCommandOutput = ListVirtualClustersResponse & __MetadataBearer; + +/** + *

    Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

    + */ +export class ListVirtualClustersCommand extends $Command< + ListVirtualClustersCommandInput, + ListVirtualClustersCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListVirtualClustersCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "ListVirtualClustersCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListVirtualClustersRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListVirtualClustersResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListVirtualClustersCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListVirtualClustersCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListVirtualClustersCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/StartJobRunCommand.ts b/clients/client-emr-containers/commands/StartJobRunCommand.ts new file mode 100644 index 0000000000000..d757832e94f72 --- /dev/null +++ b/clients/client-emr-containers/commands/StartJobRunCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { StartJobRunRequest, StartJobRunResponse } from "../models/models_0"; +import { + deserializeAws_restJson1StartJobRunCommand, + serializeAws_restJson1StartJobRunCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type StartJobRunCommandInput = StartJobRunRequest; +export type StartJobRunCommandOutput = StartJobRunResponse & __MetadataBearer; + +/** + *

    Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ +export class StartJobRunCommand extends $Command< + StartJobRunCommandInput, + StartJobRunCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartJobRunCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "StartJobRunCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartJobRunRequest.filterSensitiveLog, + outputFilterSensitiveLog: StartJobRunResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StartJobRunCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1StartJobRunCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1StartJobRunCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/TagResourceCommand.ts b/clients/client-emr-containers/commands/TagResourceCommand.ts new file mode 100644 index 0000000000000..18c86f1a53257 --- /dev/null +++ b/clients/client-emr-containers/commands/TagResourceCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1TagResourceCommand, + serializeAws_restJson1TagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type TagResourceCommandInput = TagResourceRequest; +export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; + +/** + *

    Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add.

    + */ +export class TagResourceCommand extends $Command< + TagResourceCommandInput, + TagResourceCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: TagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "TagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: TagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: TagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: TagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1TagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1TagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/commands/UntagResourceCommand.ts b/clients/client-emr-containers/commands/UntagResourceCommand.ts new file mode 100644 index 0000000000000..99c33ce3ad574 --- /dev/null +++ b/clients/client-emr-containers/commands/UntagResourceCommand.ts @@ -0,0 +1,88 @@ +import { EMRContainersClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRContainersClient"; +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UntagResourceCommand, + serializeAws_restJson1UntagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UntagResourceCommandInput = UntagResourceRequest; +export type UntagResourceCommandOutput = UntagResourceResponse & __MetadataBearer; + +/** + *

    Removes tags from resources.

    + */ +export class UntagResourceCommand extends $Command< + UntagResourceCommandInput, + UntagResourceCommandOutput, + EMRContainersClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UntagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRContainersClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRContainersClient"; + const commandName = "UntagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UntagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: UntagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UntagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UntagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UntagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr-containers/endpoints.ts b/clients/client-emr-containers/endpoints.ts new file mode 100644 index 0000000000000..88e43e219c83e --- /dev/null +++ b/clients/client-emr-containers/endpoints.ts @@ -0,0 +1,81 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "emr-containers.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "emr-containers.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "emr-containers.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "emr-containers.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "emr-containers.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-east-1", "us-gov-west-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region), + partition: "aws-cn", + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region), + partition: "aws-iso", + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), + partition: "aws-iso-b", + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), + partition: "aws-us-gov", + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-emr-containers/index.ts b/clients/client-emr-containers/index.ts new file mode 100644 index 0000000000000..74414ca61135e --- /dev/null +++ b/clients/client-emr-containers/index.ts @@ -0,0 +1,22 @@ +export * from "./EMRContainersClient"; +export * from "./EMRContainers"; +export * from "./commands/CancelJobRunCommand"; +export * from "./commands/CreateManagedEndpointCommand"; +export * from "./commands/CreateVirtualClusterCommand"; +export * from "./commands/DeleteManagedEndpointCommand"; +export * from "./commands/DeleteVirtualClusterCommand"; +export * from "./commands/DescribeJobRunCommand"; +export * from "./commands/DescribeManagedEndpointCommand"; +export * from "./commands/DescribeVirtualClusterCommand"; +export * from "./commands/ListJobRunsCommand"; +export * from "./pagination/ListJobRunsPaginator"; +export * from "./commands/ListManagedEndpointsCommand"; +export * from "./pagination/ListManagedEndpointsPaginator"; +export * from "./commands/ListTagsForResourceCommand"; +export * from "./commands/ListVirtualClustersCommand"; +export * from "./pagination/ListVirtualClustersPaginator"; +export * from "./commands/StartJobRunCommand"; +export * from "./commands/TagResourceCommand"; +export * from "./commands/UntagResourceCommand"; +export * from "./pagination/Interfaces"; +export * from "./models/index"; diff --git a/clients/client-emr-containers/models/index.ts b/clients/client-emr-containers/models/index.ts new file mode 100644 index 0000000000000..09c5d6e09b8c5 --- /dev/null +++ b/clients/client-emr-containers/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-emr-containers/models/models_0.ts b/clients/client-emr-containers/models/models_0.ts new file mode 100644 index 0000000000000..0c342cb2fa718 --- /dev/null +++ b/clients/client-emr-containers/models/models_0.ts @@ -0,0 +1,1236 @@ +import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +export interface CancelJobRunRequest { + /** + *

    The ID of the job run to cancel.

    + */ + id: string | undefined; + + /** + *

    The ID of the virtual cluster for which the job run will be canceled.

    + */ + virtualClusterId: string | undefined; +} + +export namespace CancelJobRunRequest { + export const filterSensitiveLog = (obj: CancelJobRunRequest): any => ({ + ...obj, + }); +} + +export interface CancelJobRunResponse { + /** + *

    The output contains the ID of the cancelled job run.

    + */ + id?: string; + + /** + *

    The output contains the virtual cluster ID for which the job run is cancelled.

    + */ + virtualClusterId?: string; +} + +export namespace CancelJobRunResponse { + export const filterSensitiveLog = (obj: CancelJobRunResponse): any => ({ + ...obj, + }); +} + +/** + *

    This is an internal server exception.

    + */ +export interface InternalServerException extends __SmithyException, $MetadataBearer { + name: "InternalServerException"; + $fault: "server"; + message?: string; +} + +export namespace InternalServerException { + export const filterSensitiveLog = (obj: InternalServerException): any => ({ + ...obj, + }); +} + +/** + *

    There are invalid parameters in the client request.

    + */ +export interface ValidationException extends __SmithyException, $MetadataBearer { + name: "ValidationException"; + $fault: "client"; + message?: string; +} + +export namespace ValidationException { + export const filterSensitiveLog = (obj: ValidationException): any => ({ + ...obj, + }); +} + +/** + *

    A configuration for CloudWatch monitoring. You can configure your jobs to send log information to CloudWatch Logs.

    + */ +export interface CloudWatchMonitoringConfiguration { + /** + *

    The name of the log group for log publishing.

    + */ + logGroupName: string | undefined; + + /** + *

    The specified name prefix for log streams.

    + */ + logStreamNamePrefix?: string; +} + +export namespace CloudWatchMonitoringConfiguration { + export const filterSensitiveLog = (obj: CloudWatchMonitoringConfiguration): any => ({ + ...obj, + }); +} + +export enum PersistentAppUI { + DISABLED = "DISABLED", + ENABLED = "ENABLED", +} + +/** + *

    Amazon S3 configuration for monitoring log publishing. You can configure your jobs to send log information to Amazon S3.

    + */ +export interface S3MonitoringConfiguration { + /** + *

    Amazon S3 destination URI for log publishing.

    + */ + logUri: string | undefined; +} + +export namespace S3MonitoringConfiguration { + export const filterSensitiveLog = (obj: S3MonitoringConfiguration): any => ({ + ...obj, + }); +} + +/** + *

    Configuration setting for monitoring.

    + */ +export interface MonitoringConfiguration { + /** + *

    Monitoring configurations for the persistent application UI.

    + */ + persistentAppUI?: PersistentAppUI | string; + + /** + *

    Monitoring configurations for CloudWatch.

    + */ + cloudWatchMonitoringConfiguration?: CloudWatchMonitoringConfiguration; + + /** + *

    Amazon S3 configuration for monitoring log publishing.

    + */ + s3MonitoringConfiguration?: S3MonitoringConfiguration; +} + +export namespace MonitoringConfiguration { + export const filterSensitiveLog = (obj: MonitoringConfiguration): any => ({ + ...obj, + }); +} + +export interface CreateManagedEndpointResponse { + /** + *

    The output contains the ID of the managed endpoint.

    + */ + id?: string; + + /** + *

    The output contains the name of the managed endpoint.

    + */ + name?: string; + + /** + *

    The output contains the ARN of the managed endpoint.

    + */ + arn?: string; + + /** + *

    The output contains the ID of the virtual cluster.

    + */ + virtualClusterId?: string; +} + +export namespace CreateManagedEndpointResponse { + export const filterSensitiveLog = (obj: CreateManagedEndpointResponse): any => ({ + ...obj, + }); +} + +/** + *

    The specified resource was not found.

    + */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + message?: string; +} + +export namespace ResourceNotFoundException { + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +/** + *

    The information about the EKS cluster.

    + */ +export interface EksInfo { + /** + *

    The namespaces of the EKS cluster.

    + */ + namespace?: string; +} + +export namespace EksInfo { + export const filterSensitiveLog = (obj: EksInfo): any => ({ + ...obj, + }); +} + +/** + *

    The information about the container used for a job run or a managed endpoint.

    + */ +export type ContainerInfo = ContainerInfo.EksInfoMember | ContainerInfo.$UnknownMember; + +export namespace ContainerInfo { + /** + *

    The information about the EKS cluster.

    + */ + export interface EksInfoMember { + eksInfo: EksInfo; + $unknown?: never; + } + + export interface $UnknownMember { + eksInfo?: never; + $unknown: [string, any]; + } + + export interface Visitor { + eksInfo: (value: EksInfo) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: ContainerInfo, visitor: Visitor): T => { + if (value.eksInfo !== undefined) return visitor.eksInfo(value.eksInfo); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; + + export const filterSensitiveLog = (obj: ContainerInfo): any => { + if (obj.eksInfo !== undefined) return { eksInfo: EksInfo.filterSensitiveLog(obj.eksInfo) }; + if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; + }; +} + +export enum ContainerProviderType { + EKS = "EKS", +} + +/** + *

    The information about the container provider.

    + */ +export interface ContainerProvider { + /** + *

    The type of the container provider. EKS is the only supported type as of now.

    + */ + type: ContainerProviderType | string | undefined; + + /** + *

    The ID of the container cluster.

    + */ + id: string | undefined; + + /** + *

    The information about the container cluster.

    + */ + info?: ContainerInfo; +} + +export namespace ContainerProvider { + export const filterSensitiveLog = (obj: ContainerProvider): any => ({ + ...obj, + ...(obj.info && { info: ContainerInfo.filterSensitiveLog(obj.info) }), + }); +} + +export interface CreateVirtualClusterRequest { + /** + *

    The specified name of the virtual cluster.

    + */ + name: string | undefined; + + /** + *

    The container provider of the virtual cluster.

    + */ + containerProvider: ContainerProvider | undefined; + + /** + *

    The client token of the virtual cluster.

    + */ + clientToken?: string; + + /** + *

    The tags assigned to the virtual cluster.

    + */ + tags?: { [key: string]: string }; +} + +export namespace CreateVirtualClusterRequest { + export const filterSensitiveLog = (obj: CreateVirtualClusterRequest): any => ({ + ...obj, + ...(obj.containerProvider && { containerProvider: ContainerProvider.filterSensitiveLog(obj.containerProvider) }), + }); +} + +export interface CreateVirtualClusterResponse { + /** + *

    This output contains the virtual cluster ID.

    + */ + id?: string; + + /** + *

    This output contains the name of the virtual cluster.

    + */ + name?: string; + + /** + *

    This output contains the ARN of virtual cluster.

    + */ + arn?: string; +} + +export namespace CreateVirtualClusterResponse { + export const filterSensitiveLog = (obj: CreateVirtualClusterResponse): any => ({ + ...obj, + }); +} + +export interface DeleteManagedEndpointRequest { + /** + *

    The ID of the managed endpoint.

    + */ + id: string | undefined; + + /** + *

    The ID of the endpoint's virtual cluster.

    + */ + virtualClusterId: string | undefined; +} + +export namespace DeleteManagedEndpointRequest { + export const filterSensitiveLog = (obj: DeleteManagedEndpointRequest): any => ({ + ...obj, + }); +} + +export interface DeleteManagedEndpointResponse { + /** + *

    The output displays the ID of the managed endpoint.

    + */ + id?: string; + + /** + *

    The output displays the ID of the endpoint's virtual cluster.

    + */ + virtualClusterId?: string; +} + +export namespace DeleteManagedEndpointResponse { + export const filterSensitiveLog = (obj: DeleteManagedEndpointResponse): any => ({ + ...obj, + }); +} + +export interface DeleteVirtualClusterRequest { + /** + *

    The ID of the virtual cluster that will be deleted.

    + */ + id: string | undefined; +} + +export namespace DeleteVirtualClusterRequest { + export const filterSensitiveLog = (obj: DeleteVirtualClusterRequest): any => ({ + ...obj, + }); +} + +export interface DeleteVirtualClusterResponse { + /** + *

    This output contains the ID of the virtual cluster that will be deleted.

    + */ + id?: string; +} + +export namespace DeleteVirtualClusterResponse { + export const filterSensitiveLog = (obj: DeleteVirtualClusterResponse): any => ({ + ...obj, + }); +} + +export interface DescribeJobRunRequest { + /** + *

    The ID of the job run request.

    + */ + id: string | undefined; + + /** + *

    The ID of the virtual cluster for which the job run is submitted.

    + */ + virtualClusterId: string | undefined; +} + +export namespace DescribeJobRunRequest { + export const filterSensitiveLog = (obj: DescribeJobRunRequest): any => ({ + ...obj, + }); +} + +export enum FailureReason { + CLUSTER_UNAVAILABLE = "CLUSTER_UNAVAILABLE", + INTERNAL_ERROR = "INTERNAL_ERROR", + USER_ERROR = "USER_ERROR", + VALIDATION_ERROR = "VALIDATION_ERROR", +} + +/** + *

    The information about job driver for Spark submit.

    + */ +export interface SparkSubmitJobDriver { + /** + *

    The entry point of job application.

    + */ + entryPoint: string | undefined; + + /** + *

    The arguments for job application.

    + */ + entryPointArguments?: string[]; + + /** + *

    The Spark submit parameters that are used for job runs.

    + */ + sparkSubmitParameters?: string; +} + +export namespace SparkSubmitJobDriver { + export const filterSensitiveLog = (obj: SparkSubmitJobDriver): any => ({ + ...obj, + ...(obj.entryPoint && { entryPoint: SENSITIVE_STRING }), + ...(obj.entryPointArguments && { entryPointArguments: SENSITIVE_STRING }), + ...(obj.sparkSubmitParameters && { sparkSubmitParameters: SENSITIVE_STRING }), + }); +} + +/** + *

    Specify the driver that the job runs on.

    + */ +export interface JobDriver { + /** + *

    The job driver parameters specified for spark submit.

    + */ + sparkSubmitJobDriver?: SparkSubmitJobDriver; +} + +export namespace JobDriver { + export const filterSensitiveLog = (obj: JobDriver): any => ({ + ...obj, + ...(obj.sparkSubmitJobDriver && { + sparkSubmitJobDriver: SparkSubmitJobDriver.filterSensitiveLog(obj.sparkSubmitJobDriver), + }), + }); +} + +export enum JobRunState { + CANCELLED = "CANCELLED", + CANCEL_PENDING = "CANCEL_PENDING", + COMPLETED = "COMPLETED", + FAILED = "FAILED", + PENDING = "PENDING", + RUNNING = "RUNNING", + SUBMITTED = "SUBMITTED", +} + +export interface DescribeManagedEndpointRequest { + /** + *

    This output displays ID of the managed endpoint.

    + */ + id: string | undefined; + + /** + *

    The ID of the endpoint's virtual cluster.

    + */ + virtualClusterId: string | undefined; +} + +export namespace DescribeManagedEndpointRequest { + export const filterSensitiveLog = (obj: DescribeManagedEndpointRequest): any => ({ + ...obj, + }); +} + +export enum EndpointState { + ACTIVE = "ACTIVE", + CREATING = "CREATING", + TERMINATED = "TERMINATED", + TERMINATED_WITH_ERRORS = "TERMINATED_WITH_ERRORS", + TERMINATING = "TERMINATING", +} + +export interface DescribeVirtualClusterRequest { + /** + *

    The ID of the virtual cluster that will be described.

    + */ + id: string | undefined; +} + +export namespace DescribeVirtualClusterRequest { + export const filterSensitiveLog = (obj: DescribeVirtualClusterRequest): any => ({ + ...obj, + }); +} + +export enum VirtualClusterState { + ARRESTED = "ARRESTED", + RUNNING = "RUNNING", + TERMINATED = "TERMINATED", + TERMINATING = "TERMINATING", +} + +/** + *

    This entity describes a virtual cluster. A virtual cluster is a Kubernetes namespace that Amazon EMR is registered with. Amazon EMR uses virtual clusters to run jobs and host endpoints. Multiple virtual clusters can be backed by the same physical cluster. However, each virtual cluster maps to one namespace on an EKS cluster. Virtual clusters do not create any active resources that contribute to your bill or that require lifecycle management outside the service.

    + */ +export interface VirtualCluster { + /** + *

    The ID of the virtual cluster.

    + */ + id?: string; + + /** + *

    The name of the virtual cluster.

    + */ + name?: string; + + /** + *

    The ARN of the virtual cluster.

    + */ + arn?: string; + + /** + *

    The state of the virtual cluster.

    + */ + state?: VirtualClusterState | string; + + /** + *

    The container provider of the virtual cluster.

    + */ + containerProvider?: ContainerProvider; + + /** + *

    The date and time when the virtual cluster is created.

    + */ + createdAt?: Date; + + /** + *

    The assigned tags of the virtual cluster.

    + */ + tags?: { [key: string]: string }; +} + +export namespace VirtualCluster { + export const filterSensitiveLog = (obj: VirtualCluster): any => ({ + ...obj, + ...(obj.containerProvider && { containerProvider: ContainerProvider.filterSensitiveLog(obj.containerProvider) }), + }); +} + +export interface DescribeVirtualClusterResponse { + /** + *

    This output displays information about the specified virtual cluster.

    + */ + virtualCluster?: VirtualCluster; +} + +export namespace DescribeVirtualClusterResponse { + export const filterSensitiveLog = (obj: DescribeVirtualClusterResponse): any => ({ + ...obj, + ...(obj.virtualCluster && { virtualCluster: VirtualCluster.filterSensitiveLog(obj.virtualCluster) }), + }); +} + +export interface ListJobRunsRequest { + /** + *

    The ID of the virtual cluster for which to list the job run.

    + */ + virtualClusterId: string | undefined; + + /** + *

    The date and time before which the job runs were submitted.

    + */ + createdBefore?: Date; + + /** + *

    The date and time after which the job runs were submitted.

    + */ + createdAfter?: Date; + + /** + *

    The name of the job run.

    + */ + name?: string; + + /** + *

    The states of the job run.

    + */ + states?: (JobRunState | string)[]; + + /** + *

    The maximum number of job runs that can be listed.

    + */ + maxResults?: number; + + /** + *

    The token for the next set of job runs to return.

    + */ + nextToken?: string; +} + +export namespace ListJobRunsRequest { + export const filterSensitiveLog = (obj: ListJobRunsRequest): any => ({ + ...obj, + }); +} + +export interface ListManagedEndpointsRequest { + /** + *

    The ID of the virtual cluster.

    + */ + virtualClusterId: string | undefined; + + /** + *

    The date and time before which the endpoints are created.

    + */ + createdBefore?: Date; + + /** + *

    The date and time after which the endpoints are created.

    + */ + createdAfter?: Date; + + /** + *

    The types of the managed endpoints.

    + */ + types?: string[]; + + /** + *

    The states of the managed endpoints.

    + */ + states?: (EndpointState | string)[]; + + /** + *

    The maximum number of managed endpoints that can be listed.

    + */ + maxResults?: number; + + /** + *

    The token for the next set of managed endpoints to return.

    + */ + nextToken?: string; +} + +export namespace ListManagedEndpointsRequest { + export const filterSensitiveLog = (obj: ListManagedEndpointsRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceRequest { + /** + *

    The ARN of tagged resources.

    + */ + resourceArn: string | undefined; +} + +export namespace ListTagsForResourceRequest { + export const filterSensitiveLog = (obj: ListTagsForResourceRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceResponse { + /** + *

    The tags assigned to resources.

    + */ + tags?: { [key: string]: string }; +} + +export namespace ListTagsForResourceResponse { + export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ + ...obj, + }); +} + +export interface ListVirtualClustersRequest { + /** + *

    The container provider ID of the virtual cluster.

    + */ + containerProviderId?: string; + + /** + *

    The container provider type of the virtual cluster. EKS is the only supported type as of now.

    + */ + containerProviderType?: ContainerProviderType | string; + + /** + *

    The date and time after which the virtual clusters are created.

    + */ + createdAfter?: Date; + + /** + *

    The date and time before which the virtual clusters are created.

    + */ + createdBefore?: Date; + + /** + *

    The states of the requested virtual clusters.

    + */ + states?: (VirtualClusterState | string)[]; + + /** + *

    The maximum number of virtual clusters that can be listed.

    + */ + maxResults?: number; + + /** + *

    The token for the next set of virtual clusters to return.

    + */ + nextToken?: string; +} + +export namespace ListVirtualClustersRequest { + export const filterSensitiveLog = (obj: ListVirtualClustersRequest): any => ({ + ...obj, + }); +} + +export interface ListVirtualClustersResponse { + /** + *

    This output lists the specified virtual clusters.

    + */ + virtualClusters?: VirtualCluster[]; + + /** + *

    This output displays the token for the next set of virtual clusters.

    + */ + nextToken?: string; +} + +export namespace ListVirtualClustersResponse { + export const filterSensitiveLog = (obj: ListVirtualClustersResponse): any => ({ + ...obj, + ...(obj.virtualClusters && { + virtualClusters: obj.virtualClusters.map((item) => VirtualCluster.filterSensitiveLog(item)), + }), + }); +} + +export interface StartJobRunResponse { + /** + *

    This output displays the started job run ID.

    + */ + id?: string; + + /** + *

    This output displays the name of the started job run.

    + */ + name?: string; + + /** + *

    This output lists the ARN of job run.

    + */ + arn?: string; + + /** + *

    This output displays the virtual cluster ID for which the job run was submitted.

    + */ + virtualClusterId?: string; +} + +export namespace StartJobRunResponse { + export const filterSensitiveLog = (obj: StartJobRunResponse): any => ({ + ...obj, + }); +} + +export interface TagResourceRequest { + /** + *

    The ARN of resources.

    + */ + resourceArn: string | undefined; + + /** + *

    The tags assigned to resources.

    + */ + tags: { [key: string]: string } | undefined; +} + +export namespace TagResourceRequest { + export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceResponse {} + +export namespace TagResourceResponse { + export const filterSensitiveLog = (obj: TagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UntagResourceRequest { + /** + *

    The ARN of resources.

    + */ + resourceArn: string | undefined; + + /** + *

    The tag keys of the resources.

    + */ + tagKeys: string[] | undefined; +} + +export namespace UntagResourceRequest { + export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ + ...obj, + }); +} + +export interface UntagResourceResponse {} + +export namespace UntagResourceResponse { + export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({ + ...obj, + }); +} + +/** + *

    A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.

    + */ +export interface Configuration { + /** + *

    The classification within a configuration.

    + */ + classification: string | undefined; + + /** + *

    A set of properties specified within a configuration classification.

    + */ + properties?: { [key: string]: string }; + + /** + *

    A list of additional configurations to apply within a configuration object.

    + */ + configurations?: Configuration[]; +} + +export namespace Configuration { + export const filterSensitiveLog = (obj: Configuration): any => ({ + ...obj, + ...(obj.properties && { properties: SENSITIVE_STRING }), + ...(obj.configurations && { + configurations: obj.configurations.map((item) => Configuration.filterSensitiveLog(item)), + }), + }); +} + +/** + *

    A configuration specification to be used to override existing configurations.

    + */ +export interface ConfigurationOverrides { + /** + *

    The configurations for the application running by the job run.

    + */ + applicationConfiguration?: Configuration[]; + + /** + *

    The configurations for monitoring.

    + */ + monitoringConfiguration?: MonitoringConfiguration; +} + +export namespace ConfigurationOverrides { + export const filterSensitiveLog = (obj: ConfigurationOverrides): any => ({ + ...obj, + ...(obj.applicationConfiguration && { + applicationConfiguration: obj.applicationConfiguration.map((item) => Configuration.filterSensitiveLog(item)), + }), + }); +} + +export interface CreateManagedEndpointRequest { + /** + *

    The name of the managed endpoint.

    + */ + name: string | undefined; + + /** + *

    The ID of the virtual cluster for which a managed endpoint is created.

    + */ + virtualClusterId: string | undefined; + + /** + *

    The type of the managed endpoint.

    + */ + type: string | undefined; + + /** + *

    The Amazon EMR release version.

    + */ + releaseLabel: string | undefined; + + /** + *

    The ARN of the execution role.

    + */ + executionRoleArn: string | undefined; + + /** + *

    The certificate ARN of the managed endpoint.

    + */ + certificateArn: string | undefined; + + /** + *

    The configuration settings that will be used to override existing configurations.

    + */ + configurationOverrides?: ConfigurationOverrides; + + /** + *

    The client idempotency token for this create call.

    + */ + clientToken?: string; + + /** + *

    The tags of the managed endpoint. + *

    + */ + tags?: { [key: string]: string }; +} + +export namespace CreateManagedEndpointRequest { + export const filterSensitiveLog = (obj: CreateManagedEndpointRequest): any => ({ + ...obj, + ...(obj.configurationOverrides && { + configurationOverrides: ConfigurationOverrides.filterSensitiveLog(obj.configurationOverrides), + }), + }); +} + +/** + *

    This entity represents the endpoint that is managed by Amazon EMR on EKS.

    + */ +export interface Endpoint { + /** + *

    The ID of the endpoint.

    + */ + id?: string; + + /** + *

    The name of the endpoint.

    + */ + name?: string; + + /** + *

    The ARN of the endpoint.

    + */ + arn?: string; + + /** + *

    The ID of the endpoint's virtual cluster.

    + */ + virtualClusterId?: string; + + /** + *

    The type of the endpoint.

    + */ + type?: string; + + /** + *

    The state of the endpoint.

    + */ + state?: EndpointState | string; + + /** + *

    The EMR release version to be used for the endpoint.

    + */ + releaseLabel?: string; + + /** + *

    The execution role ARN of the endpoint.

    + */ + executionRoleArn?: string; + + /** + *

    The certificate ARN of the endpoint.

    + */ + certificateArn?: string; + + /** + *

    The configuration settings that are used to override existing configurations for endpoints.

    + */ + configurationOverrides?: ConfigurationOverrides; + + /** + *

    The server URL of the endpoint.

    + */ + serverUrl?: string; + + /** + *

    The date and time when the endpoint was created.

    + */ + createdAt?: Date; + + /** + *

    The security group configuration of the endpoint. + *

    + */ + securityGroup?: string; + + /** + *

    The subnet IDs of the endpoint. + *

    + */ + subnetIds?: string[]; + + /** + *

    The tags of the endpoint. + *

    + */ + tags?: { [key: string]: string }; +} + +export namespace Endpoint { + export const filterSensitiveLog = (obj: Endpoint): any => ({ + ...obj, + ...(obj.configurationOverrides && { + configurationOverrides: ConfigurationOverrides.filterSensitiveLog(obj.configurationOverrides), + }), + }); +} + +/** + *

    This entity describes a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

    + */ +export interface JobRun { + /** + *

    The ID of the job run.

    + */ + id?: string; + + /** + *

    The name of the job run.

    + */ + name?: string; + + /** + *

    The ID of the job run's virtual cluster.

    + */ + virtualClusterId?: string; + + /** + *

    The ARN of job run.

    + */ + arn?: string; + + /** + *

    The state of the job run.

    + */ + state?: JobRunState | string; + + /** + *

    The client token used to start a job run.

    + */ + clientToken?: string; + + /** + *

    The execution role ARN of the job run.

    + */ + executionRoleArn?: string; + + /** + *

    The release version of Amazon EMR.

    + */ + releaseLabel?: string; + + /** + *

    The configuration settings that are used to override default configuration.

    + */ + configurationOverrides?: ConfigurationOverrides; + + /** + *

    Parameters of job driver for the job run.

    + */ + jobDriver?: JobDriver; + + /** + *

    The date and time when the job run was created.

    + */ + createdAt?: Date; + + /** + *

    The user who created the job run.

    + */ + createdBy?: string; + + /** + *

    The date and time when the job run has finished.

    + */ + finishedAt?: Date; + + /** + *

    Additional details of the job run state.

    + */ + stateDetails?: string; + + /** + *

    The reasons why the job run has failed.

    + */ + failureReason?: FailureReason | string; + + /** + *

    The assigned tags of the job run.

    + */ + tags?: { [key: string]: string }; +} + +export namespace JobRun { + export const filterSensitiveLog = (obj: JobRun): any => ({ + ...obj, + ...(obj.configurationOverrides && { + configurationOverrides: ConfigurationOverrides.filterSensitiveLog(obj.configurationOverrides), + }), + ...(obj.jobDriver && { jobDriver: JobDriver.filterSensitiveLog(obj.jobDriver) }), + }); +} + +export interface StartJobRunRequest { + /** + *

    The name of the job run.

    + */ + name?: string; + + /** + *

    The virtual cluster ID for which the job run request is submitted.

    + */ + virtualClusterId: string | undefined; + + /** + *

    The client idempotency token of the job run request.

    + */ + clientToken?: string; + + /** + *

    The execution role ARN for the job run.

    + */ + executionRoleArn: string | undefined; + + /** + *

    The Amazon EMR release version to use for the job run.

    + */ + releaseLabel: string | undefined; + + /** + *

    The job driver for the job run.

    + */ + jobDriver: JobDriver | undefined; + + /** + *

    The configuration overrides for the job run.

    + */ + configurationOverrides?: ConfigurationOverrides; + + /** + *

    The tags assigned to job runs.

    + */ + tags?: { [key: string]: string }; +} + +export namespace StartJobRunRequest { + export const filterSensitiveLog = (obj: StartJobRunRequest): any => ({ + ...obj, + ...(obj.jobDriver && { jobDriver: JobDriver.filterSensitiveLog(obj.jobDriver) }), + ...(obj.configurationOverrides && { + configurationOverrides: ConfigurationOverrides.filterSensitiveLog(obj.configurationOverrides), + }), + }); +} + +export interface DescribeJobRunResponse { + /** + *

    The output displays information about a job run.

    + */ + jobRun?: JobRun; +} + +export namespace DescribeJobRunResponse { + export const filterSensitiveLog = (obj: DescribeJobRunResponse): any => ({ + ...obj, + ...(obj.jobRun && { jobRun: JobRun.filterSensitiveLog(obj.jobRun) }), + }); +} + +export interface DescribeManagedEndpointResponse { + /** + *

    This output displays information about a managed endpoint.

    + */ + endpoint?: Endpoint; +} + +export namespace DescribeManagedEndpointResponse { + export const filterSensitiveLog = (obj: DescribeManagedEndpointResponse): any => ({ + ...obj, + ...(obj.endpoint && { endpoint: Endpoint.filterSensitiveLog(obj.endpoint) }), + }); +} + +export interface ListJobRunsResponse { + /** + *

    This output lists information about the specified job runs.

    + */ + jobRuns?: JobRun[]; + + /** + *

    This output displays the token for the next set of job runs.

    + */ + nextToken?: string; +} + +export namespace ListJobRunsResponse { + export const filterSensitiveLog = (obj: ListJobRunsResponse): any => ({ + ...obj, + ...(obj.jobRuns && { jobRuns: obj.jobRuns.map((item) => JobRun.filterSensitiveLog(item)) }), + }); +} + +export interface ListManagedEndpointsResponse { + /** + *

    The managed endpoints to be listed.

    + */ + endpoints?: Endpoint[]; + + /** + *

    The token for the next set of endpoints to return.

    + */ + nextToken?: string; +} + +export namespace ListManagedEndpointsResponse { + export const filterSensitiveLog = (obj: ListManagedEndpointsResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-emr-containers/package.json b/clients/client-emr-containers/package.json new file mode 100644 index 0000000000000..74c4f1853328a --- /dev/null +++ b/clients/client-emr-containers/package.json @@ -0,0 +1,85 @@ +{ + "name": "@aws-sdk/client-emr-containers", + "description": "AWS SDK for JavaScript Emr Containers Client for Node.js, Browser and React Native", + "version": "1.0.0-rc.1", + "scripts": { + "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation", + "build-documentation": "yarn remove-documentation && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "yarn build:cjs", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "test": "yarn build && jest --coverage --passWithNoTests", + "build:cjs": "tsc -p tsconfig.json", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn build:cjs && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "react-native": { + "./runtimeConfig": "./runtimeConfig.native" + }, + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.8", + "@aws-sdk/credential-provider-node": "1.0.0-rc.8", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.8", + "@aws-sdk/hash-node": "1.0.0-rc.8", + "@aws-sdk/invalid-dependency": "1.0.0-rc.8", + "@aws-sdk/middleware-content-length": "1.0.0-rc.8", + "@aws-sdk/middleware-host-header": "1.0.0-rc.8", + "@aws-sdk/middleware-logger": "1.0.0-rc.8", + "@aws-sdk/middleware-retry": "1.0.0-rc.8", + "@aws-sdk/middleware-serde": "1.0.0-rc.8", + "@aws-sdk/middleware-signing": "1.0.0-rc.8", + "@aws-sdk/middleware-stack": "1.0.0-rc.8", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.8", + "@aws-sdk/node-config-provider": "1.0.0-rc.8", + "@aws-sdk/node-http-handler": "1.0.0-rc.8", + "@aws-sdk/protocol-http": "1.0.0-rc.8", + "@aws-sdk/smithy-client": "1.0.0-rc.8", + "@aws-sdk/url-parser-browser": "1.0.0-rc.8", + "@aws-sdk/url-parser-node": "1.0.0-rc.8", + "@aws-sdk/util-base64-browser": "1.0.0-rc.8", + "@aws-sdk/util-base64-node": "1.0.0-rc.8", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.8", + "@aws-sdk/util-body-length-node": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.8", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.8", + "@aws-sdk/util-utf8-node": "1.0.0-rc.8", + "tslib": "^2.0.0", + "uuid": "^3.0.0" + }, + "devDependencies": { + "@aws-sdk/client-documentation-generator": "1.0.0-rc.8", + "@aws-sdk/types": "1.0.0-rc.8", + "@types/node": "^12.7.5", + "@types/uuid": "^3.0.0", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "typedoc": "^0.19.2", + "typescript": "~4.1.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/master/clients/client-emr-containers", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-emr-containers" + } +} diff --git a/clients/client-emr-containers/pagination/Interfaces.ts b/clients/client-emr-containers/pagination/Interfaces.ts new file mode 100644 index 0000000000000..0eec8eeb48a4e --- /dev/null +++ b/clients/client-emr-containers/pagination/Interfaces.ts @@ -0,0 +1,7 @@ +import { EMRContainers } from "../EMRContainers"; +import { EMRContainersClient } from "../EMRContainersClient"; +import { PaginationConfiguration } from "@aws-sdk/types"; + +export interface EMRContainersPaginationConfiguration extends PaginationConfiguration { + client: EMRContainers | EMRContainersClient; +} diff --git a/clients/client-emr-containers/pagination/ListJobRunsPaginator.ts b/clients/client-emr-containers/pagination/ListJobRunsPaginator.ts new file mode 100644 index 0000000000000..fd8b2b1d1f1ba --- /dev/null +++ b/clients/client-emr-containers/pagination/ListJobRunsPaginator.ts @@ -0,0 +1,53 @@ +import { EMRContainers } from "../EMRContainers"; +import { EMRContainersClient } from "../EMRContainersClient"; +import { ListJobRunsCommand, ListJobRunsCommandInput, ListJobRunsCommandOutput } from "../commands/ListJobRunsCommand"; +import { EMRContainersPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: EMRContainersClient, + input: ListJobRunsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListJobRunsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: EMRContainers, + input: ListJobRunsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listJobRuns(input, ...args); +}; +export async function* paginateListJobRuns( + config: EMRContainersPaginationConfiguration, + input: ListJobRunsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListJobRunsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof EMRContainers) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof EMRContainersClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected EMRContainers | EMRContainersClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-emr-containers/pagination/ListManagedEndpointsPaginator.ts b/clients/client-emr-containers/pagination/ListManagedEndpointsPaginator.ts new file mode 100644 index 0000000000000..36f85ca8095ae --- /dev/null +++ b/clients/client-emr-containers/pagination/ListManagedEndpointsPaginator.ts @@ -0,0 +1,57 @@ +import { EMRContainers } from "../EMRContainers"; +import { EMRContainersClient } from "../EMRContainersClient"; +import { + ListManagedEndpointsCommand, + ListManagedEndpointsCommandInput, + ListManagedEndpointsCommandOutput, +} from "../commands/ListManagedEndpointsCommand"; +import { EMRContainersPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: EMRContainersClient, + input: ListManagedEndpointsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListManagedEndpointsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: EMRContainers, + input: ListManagedEndpointsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listManagedEndpoints(input, ...args); +}; +export async function* paginateListManagedEndpoints( + config: EMRContainersPaginationConfiguration, + input: ListManagedEndpointsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListManagedEndpointsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof EMRContainers) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof EMRContainersClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected EMRContainers | EMRContainersClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-emr-containers/pagination/ListVirtualClustersPaginator.ts b/clients/client-emr-containers/pagination/ListVirtualClustersPaginator.ts new file mode 100644 index 0000000000000..be5644df2fe79 --- /dev/null +++ b/clients/client-emr-containers/pagination/ListVirtualClustersPaginator.ts @@ -0,0 +1,57 @@ +import { EMRContainers } from "../EMRContainers"; +import { EMRContainersClient } from "../EMRContainersClient"; +import { + ListVirtualClustersCommand, + ListVirtualClustersCommandInput, + ListVirtualClustersCommandOutput, +} from "../commands/ListVirtualClustersCommand"; +import { EMRContainersPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: EMRContainersClient, + input: ListVirtualClustersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListVirtualClustersCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: EMRContainers, + input: ListVirtualClustersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listVirtualClusters(input, ...args); +}; +export async function* paginateListVirtualClusters( + config: EMRContainersPaginationConfiguration, + input: ListVirtualClustersCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListVirtualClustersCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof EMRContainers) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof EMRContainersClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected EMRContainers | EMRContainersClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-emr-containers/protocols/Aws_restJson1.ts b/clients/client-emr-containers/protocols/Aws_restJson1.ts new file mode 100644 index 0000000000000..4cf71fe20a725 --- /dev/null +++ b/clients/client-emr-containers/protocols/Aws_restJson1.ts @@ -0,0 +1,2191 @@ +import { CancelJobRunCommandInput, CancelJobRunCommandOutput } from "../commands/CancelJobRunCommand"; +import { + CreateManagedEndpointCommandInput, + CreateManagedEndpointCommandOutput, +} from "../commands/CreateManagedEndpointCommand"; +import { + CreateVirtualClusterCommandInput, + CreateVirtualClusterCommandOutput, +} from "../commands/CreateVirtualClusterCommand"; +import { + DeleteManagedEndpointCommandInput, + DeleteManagedEndpointCommandOutput, +} from "../commands/DeleteManagedEndpointCommand"; +import { + DeleteVirtualClusterCommandInput, + DeleteVirtualClusterCommandOutput, +} from "../commands/DeleteVirtualClusterCommand"; +import { DescribeJobRunCommandInput, DescribeJobRunCommandOutput } from "../commands/DescribeJobRunCommand"; +import { + DescribeManagedEndpointCommandInput, + DescribeManagedEndpointCommandOutput, +} from "../commands/DescribeManagedEndpointCommand"; +import { + DescribeVirtualClusterCommandInput, + DescribeVirtualClusterCommandOutput, +} from "../commands/DescribeVirtualClusterCommand"; +import { ListJobRunsCommandInput, ListJobRunsCommandOutput } from "../commands/ListJobRunsCommand"; +import { + ListManagedEndpointsCommandInput, + ListManagedEndpointsCommandOutput, +} from "../commands/ListManagedEndpointsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { + ListVirtualClustersCommandInput, + ListVirtualClustersCommandOutput, +} from "../commands/ListVirtualClustersCommand"; +import { StartJobRunCommandInput, StartJobRunCommandOutput } from "../commands/StartJobRunCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; +import { + CloudWatchMonitoringConfiguration, + Configuration, + ConfigurationOverrides, + ContainerInfo, + ContainerProvider, + EksInfo, + Endpoint, + InternalServerException, + JobDriver, + JobRun, + MonitoringConfiguration, + ResourceNotFoundException, + S3MonitoringConfiguration, + SparkSubmitJobDriver, + ValidationException, + VirtualCluster, +} from "../models/models_0"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { + SmithyException as __SmithyException, + extendedEncodeURIComponent as __extendedEncodeURIComponent, +} from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; +import { v4 as generateIdempotencyToken } from "uuid"; + +export const serializeAws_restJson1CancelJobRunCommand = async ( + input: CancelJobRunCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/jobruns/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateManagedEndpointCommand = async ( + input: CreateManagedEndpointCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/endpoints"; + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + body = JSON.stringify({ + ...(input.certificateArn !== undefined && { certificateArn: input.certificateArn }), + clientToken: input.clientToken ?? generateIdempotencyToken(), + ...(input.configurationOverrides !== undefined && { + configurationOverrides: serializeAws_restJson1ConfigurationOverrides(input.configurationOverrides, context), + }), + ...(input.executionRoleArn !== undefined && { executionRoleArn: input.executionRoleArn }), + ...(input.name !== undefined && { name: input.name }), + ...(input.releaseLabel !== undefined && { releaseLabel: input.releaseLabel }), + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + ...(input.type !== undefined && { type: input.type }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateVirtualClusterCommand = async ( + input: CreateVirtualClusterCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/virtualclusters"; + let body: any; + body = JSON.stringify({ + clientToken: input.clientToken ?? generateIdempotencyToken(), + ...(input.containerProvider !== undefined && { + containerProvider: serializeAws_restJson1ContainerProvider(input.containerProvider, context), + }), + ...(input.name !== undefined && { name: input.name }), + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteManagedEndpointCommand = async ( + input: DeleteManagedEndpointCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/endpoints/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteVirtualClusterCommand = async ( + input: DeleteVirtualClusterCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DescribeJobRunCommand = async ( + input: DescribeJobRunCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/jobruns/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DescribeManagedEndpointCommand = async ( + input: DescribeManagedEndpointCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/endpoints/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DescribeVirtualClusterCommand = async ( + input: DescribeVirtualClusterCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{id}"; + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ListJobRunsCommand = async ( + input: ListJobRunsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/jobruns"; + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + const query: any = { + ...(input.createdBefore !== undefined && { + createdBefore: (input.createdBefore.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.createdAfter !== undefined && { + createdAfter: (input.createdAfter.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.name !== undefined && { name: input.name }), + ...(input.states !== undefined && { states: (input.states || []).map((_entry) => _entry) }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListManagedEndpointsCommand = async ( + input: ListManagedEndpointsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/endpoints"; + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + const query: any = { + ...(input.createdBefore !== undefined && { + createdBefore: (input.createdBefore.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.createdAfter !== undefined && { + createdAfter: (input.createdAfter.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.types !== undefined && { types: (input.types || []).map((_entry) => _entry) }), + ...(input.states !== undefined && { states: (input.states || []).map((_entry) => _entry) }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ListVirtualClustersCommand = async ( + input: ListVirtualClustersCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/virtualclusters"; + const query: any = { + ...(input.containerProviderId !== undefined && { containerProviderId: input.containerProviderId }), + ...(input.containerProviderType !== undefined && { containerProviderType: input.containerProviderType }), + ...(input.createdAfter !== undefined && { + createdAfter: (input.createdAfter.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.createdBefore !== undefined && { + createdBefore: (input.createdBefore.toISOString().split(".")[0] + "Z").toString(), + }), + ...(input.states !== undefined && { states: (input.states || []).map((_entry) => _entry) }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1StartJobRunCommand = async ( + input: StartJobRunCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/virtualclusters/{virtualClusterId}/jobruns"; + if (input.virtualClusterId !== undefined) { + const labelValue: string = input.virtualClusterId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: virtualClusterId."); + } + resolvedPath = resolvedPath.replace("{virtualClusterId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: virtualClusterId."); + } + let body: any; + body = JSON.stringify({ + clientToken: input.clientToken ?? generateIdempotencyToken(), + ...(input.configurationOverrides !== undefined && { + configurationOverrides: serializeAws_restJson1ConfigurationOverrides(input.configurationOverrides, context), + }), + ...(input.executionRoleArn !== undefined && { executionRoleArn: input.executionRoleArn }), + ...(input.jobDriver !== undefined && { jobDriver: serializeAws_restJson1JobDriver(input.jobDriver, context) }), + ...(input.name !== undefined && { name: input.name }), + ...(input.releaseLabel !== undefined && { releaseLabel: input.releaseLabel }), + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.tags !== undefined && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + const query: any = { + ...(input.tagKeys !== undefined && { tagKeys: (input.tagKeys || []).map((_entry) => _entry) }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const deserializeAws_restJson1CancelJobRunCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CancelJobRunCommandError(output, context); + } + const contents: CancelJobRunCommandOutput = { + $metadata: deserializeMetadata(output), + id: undefined, + virtualClusterId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + if (data.virtualClusterId !== undefined && data.virtualClusterId !== null) { + contents.virtualClusterId = data.virtualClusterId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CancelJobRunCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateManagedEndpointCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateManagedEndpointCommandError(output, context); + } + const contents: CreateManagedEndpointCommandOutput = { + $metadata: deserializeMetadata(output), + arn: undefined, + id: undefined, + name: undefined, + virtualClusterId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.arn !== undefined && data.arn !== null) { + contents.arn = data.arn; + } + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + if (data.name !== undefined && data.name !== null) { + contents.name = data.name; + } + if (data.virtualClusterId !== undefined && data.virtualClusterId !== null) { + contents.virtualClusterId = data.virtualClusterId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateManagedEndpointCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateVirtualClusterCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateVirtualClusterCommandError(output, context); + } + const contents: CreateVirtualClusterCommandOutput = { + $metadata: deserializeMetadata(output), + arn: undefined, + id: undefined, + name: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.arn !== undefined && data.arn !== null) { + contents.arn = data.arn; + } + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + if (data.name !== undefined && data.name !== null) { + contents.name = data.name; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateVirtualClusterCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteManagedEndpointCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteManagedEndpointCommandError(output, context); + } + const contents: DeleteManagedEndpointCommandOutput = { + $metadata: deserializeMetadata(output), + id: undefined, + virtualClusterId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + if (data.virtualClusterId !== undefined && data.virtualClusterId !== null) { + contents.virtualClusterId = data.virtualClusterId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteManagedEndpointCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteVirtualClusterCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteVirtualClusterCommandError(output, context); + } + const contents: DeleteVirtualClusterCommandOutput = { + $metadata: deserializeMetadata(output), + id: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteVirtualClusterCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DescribeJobRunCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DescribeJobRunCommandError(output, context); + } + const contents: DescribeJobRunCommandOutput = { + $metadata: deserializeMetadata(output), + jobRun: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.jobRun !== undefined && data.jobRun !== null) { + contents.jobRun = deserializeAws_restJson1JobRun(data.jobRun, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DescribeJobRunCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DescribeManagedEndpointCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DescribeManagedEndpointCommandError(output, context); + } + const contents: DescribeManagedEndpointCommandOutput = { + $metadata: deserializeMetadata(output), + endpoint: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.endpoint !== undefined && data.endpoint !== null) { + contents.endpoint = deserializeAws_restJson1Endpoint(data.endpoint, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DescribeManagedEndpointCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DescribeVirtualClusterCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DescribeVirtualClusterCommandError(output, context); + } + const contents: DescribeVirtualClusterCommandOutput = { + $metadata: deserializeMetadata(output), + virtualCluster: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.virtualCluster !== undefined && data.virtualCluster !== null) { + contents.virtualCluster = deserializeAws_restJson1VirtualCluster(data.virtualCluster, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DescribeVirtualClusterCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListJobRunsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListJobRunsCommandError(output, context); + } + const contents: ListJobRunsCommandOutput = { + $metadata: deserializeMetadata(output), + jobRuns: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.jobRuns !== undefined && data.jobRuns !== null) { + contents.jobRuns = deserializeAws_restJson1JobRuns(data.jobRuns, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListJobRunsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListManagedEndpointsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListManagedEndpointsCommandError(output, context); + } + const contents: ListManagedEndpointsCommandOutput = { + $metadata: deserializeMetadata(output), + endpoints: undefined, + nextToken: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.endpoints !== undefined && data.endpoints !== null) { + contents.endpoints = deserializeAws_restJson1Endpoints(data.endpoints, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListManagedEndpointsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.tags !== undefined && data.tags !== null) { + contents.tags = deserializeAws_restJson1TagMap(data.tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListVirtualClustersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListVirtualClustersCommandError(output, context); + } + const contents: ListVirtualClustersCommandOutput = { + $metadata: deserializeMetadata(output), + nextToken: undefined, + virtualClusters: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = data.nextToken; + } + if (data.virtualClusters !== undefined && data.virtualClusters !== null) { + contents.virtualClusters = deserializeAws_restJson1VirtualClusters(data.virtualClusters, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListVirtualClustersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1StartJobRunCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1StartJobRunCommandError(output, context); + } + const contents: StartJobRunCommandOutput = { + $metadata: deserializeMetadata(output), + arn: undefined, + id: undefined, + name: undefined, + virtualClusterId: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.arn !== undefined && data.arn !== null) { + contents.arn = data.arn; + } + if (data.id !== undefined && data.id !== null) { + contents.id = data.id; + } + if (data.name !== undefined && data.name !== null) { + contents.name = data.name; + } + if (data.virtualClusterId !== undefined && data.virtualClusterId !== null) { + contents.virtualClusterId = data.virtualClusterId; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1StartJobRunCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emrcontainers#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.emrcontainers#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.emrcontainers#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + return contents; +}; + +const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + return contents; +}; + +const deserializeAws_restJson1ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = data.message; + } + return contents; +}; + +const serializeAws_restJson1CloudWatchMonitoringConfiguration = ( + input: CloudWatchMonitoringConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.logGroupName !== undefined && { logGroupName: input.logGroupName }), + ...(input.logStreamNamePrefix !== undefined && { logStreamNamePrefix: input.logStreamNamePrefix }), + }; +}; + +const serializeAws_restJson1Configuration = (input: Configuration, context: __SerdeContext): any => { + return { + ...(input.classification !== undefined && { classification: input.classification }), + ...(input.configurations !== undefined && { + configurations: serializeAws_restJson1ConfigurationList(input.configurations, context), + }), + ...(input.properties !== undefined && { + properties: serializeAws_restJson1SensitivePropertiesMap(input.properties, context), + }), + }; +}; + +const serializeAws_restJson1ConfigurationList = (input: Configuration[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1Configuration(entry, context)); +}; + +const serializeAws_restJson1ConfigurationOverrides = (input: ConfigurationOverrides, context: __SerdeContext): any => { + return { + ...(input.applicationConfiguration !== undefined && { + applicationConfiguration: serializeAws_restJson1ConfigurationList(input.applicationConfiguration, context), + }), + ...(input.monitoringConfiguration !== undefined && { + monitoringConfiguration: serializeAws_restJson1MonitoringConfiguration(input.monitoringConfiguration, context), + }), + }; +}; + +const serializeAws_restJson1ContainerInfo = (input: ContainerInfo, context: __SerdeContext): any => { + return ContainerInfo.visit(input, { + eksInfo: (value) => ({ eksInfo: serializeAws_restJson1EksInfo(value, context) }), + _: (name, value) => ({ name: value } as any), + }); +}; + +const serializeAws_restJson1ContainerProvider = (input: ContainerProvider, context: __SerdeContext): any => { + return { + ...(input.id !== undefined && { id: input.id }), + ...(input.info !== undefined && { info: serializeAws_restJson1ContainerInfo(input.info, context) }), + ...(input.type !== undefined && { type: input.type }), + }; +}; + +const serializeAws_restJson1EksInfo = (input: EksInfo, context: __SerdeContext): any => { + return { + ...(input.namespace !== undefined && { namespace: input.namespace }), + }; +}; + +const serializeAws_restJson1EntryPointArguments = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_restJson1JobDriver = (input: JobDriver, context: __SerdeContext): any => { + return { + ...(input.sparkSubmitJobDriver !== undefined && { + sparkSubmitJobDriver: serializeAws_restJson1SparkSubmitJobDriver(input.sparkSubmitJobDriver, context), + }), + }; +}; + +const serializeAws_restJson1MonitoringConfiguration = ( + input: MonitoringConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.cloudWatchMonitoringConfiguration !== undefined && { + cloudWatchMonitoringConfiguration: serializeAws_restJson1CloudWatchMonitoringConfiguration( + input.cloudWatchMonitoringConfiguration, + context + ), + }), + ...(input.persistentAppUI !== undefined && { persistentAppUI: input.persistentAppUI }), + ...(input.s3MonitoringConfiguration !== undefined && { + s3MonitoringConfiguration: serializeAws_restJson1S3MonitoringConfiguration( + input.s3MonitoringConfiguration, + context + ), + }), + }; +}; + +const serializeAws_restJson1S3MonitoringConfiguration = ( + input: S3MonitoringConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.logUri !== undefined && { logUri: input.logUri }), + }; +}; + +const serializeAws_restJson1SensitivePropertiesMap = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const serializeAws_restJson1SparkSubmitJobDriver = (input: SparkSubmitJobDriver, context: __SerdeContext): any => { + return { + ...(input.entryPoint !== undefined && { entryPoint: input.entryPoint }), + ...(input.entryPointArguments !== undefined && { + entryPointArguments: serializeAws_restJson1EntryPointArguments(input.entryPointArguments, context), + }), + ...(input.sparkSubmitParameters !== undefined && { sparkSubmitParameters: input.sparkSubmitParameters }), + }; +}; + +const serializeAws_restJson1TagMap = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1CloudWatchMonitoringConfiguration = ( + output: any, + context: __SerdeContext +): CloudWatchMonitoringConfiguration => { + return { + logGroupName: output.logGroupName !== undefined && output.logGroupName !== null ? output.logGroupName : undefined, + logStreamNamePrefix: + output.logStreamNamePrefix !== undefined && output.logStreamNamePrefix !== null + ? output.logStreamNamePrefix + : undefined, + } as any; +}; + +const deserializeAws_restJson1Configuration = (output: any, context: __SerdeContext): Configuration => { + return { + classification: + output.classification !== undefined && output.classification !== null ? output.classification : undefined, + configurations: + output.configurations !== undefined && output.configurations !== null + ? deserializeAws_restJson1ConfigurationList(output.configurations, context) + : undefined, + properties: + output.properties !== undefined && output.properties !== null + ? deserializeAws_restJson1SensitivePropertiesMap(output.properties, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ConfigurationList = (output: any, context: __SerdeContext): Configuration[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Configuration(entry, context)); +}; + +const deserializeAws_restJson1ConfigurationOverrides = ( + output: any, + context: __SerdeContext +): ConfigurationOverrides => { + return { + applicationConfiguration: + output.applicationConfiguration !== undefined && output.applicationConfiguration !== null + ? deserializeAws_restJson1ConfigurationList(output.applicationConfiguration, context) + : undefined, + monitoringConfiguration: + output.monitoringConfiguration !== undefined && output.monitoringConfiguration !== null + ? deserializeAws_restJson1MonitoringConfiguration(output.monitoringConfiguration, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ContainerInfo = (output: any, context: __SerdeContext): ContainerInfo => { + if (output.eksInfo !== undefined && output.eksInfo !== null) { + return { + eksInfo: deserializeAws_restJson1EksInfo(output.eksInfo, context), + }; + } + return { $unknown: Object.entries(output)[0] }; +}; + +const deserializeAws_restJson1ContainerProvider = (output: any, context: __SerdeContext): ContainerProvider => { + return { + id: output.id !== undefined && output.id !== null ? output.id : undefined, + info: + output.info !== undefined && output.info !== null + ? deserializeAws_restJson1ContainerInfo(output.info, context) + : undefined, + type: output.type !== undefined && output.type !== null ? output.type : undefined, + } as any; +}; + +const deserializeAws_restJson1EksInfo = (output: any, context: __SerdeContext): EksInfo => { + return { + namespace: output.namespace !== undefined && output.namespace !== null ? output.namespace : undefined, + } as any; +}; + +const deserializeAws_restJson1Endpoint = (output: any, context: __SerdeContext): Endpoint => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + certificateArn: + output.certificateArn !== undefined && output.certificateArn !== null ? output.certificateArn : undefined, + configurationOverrides: + output.configurationOverrides !== undefined && output.configurationOverrides !== null + ? deserializeAws_restJson1ConfigurationOverrides(output.configurationOverrides, context) + : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + executionRoleArn: + output.executionRoleArn !== undefined && output.executionRoleArn !== null ? output.executionRoleArn : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + releaseLabel: output.releaseLabel !== undefined && output.releaseLabel !== null ? output.releaseLabel : undefined, + securityGroup: + output.securityGroup !== undefined && output.securityGroup !== null ? output.securityGroup : undefined, + serverUrl: output.serverUrl !== undefined && output.serverUrl !== null ? output.serverUrl : undefined, + state: output.state !== undefined && output.state !== null ? output.state : undefined, + subnetIds: + output.subnetIds !== undefined && output.subnetIds !== null + ? deserializeAws_restJson1SubnetIds(output.subnetIds, context) + : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1TagMap(output.tags, context) + : undefined, + type: output.type !== undefined && output.type !== null ? output.type : undefined, + virtualClusterId: + output.virtualClusterId !== undefined && output.virtualClusterId !== null ? output.virtualClusterId : undefined, + } as any; +}; + +const deserializeAws_restJson1Endpoints = (output: any, context: __SerdeContext): Endpoint[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1Endpoint(entry, context)); +}; + +const deserializeAws_restJson1EntryPointArguments = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1JobDriver = (output: any, context: __SerdeContext): JobDriver => { + return { + sparkSubmitJobDriver: + output.sparkSubmitJobDriver !== undefined && output.sparkSubmitJobDriver !== null + ? deserializeAws_restJson1SparkSubmitJobDriver(output.sparkSubmitJobDriver, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1JobRun = (output: any, context: __SerdeContext): JobRun => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + clientToken: output.clientToken !== undefined && output.clientToken !== null ? output.clientToken : undefined, + configurationOverrides: + output.configurationOverrides !== undefined && output.configurationOverrides !== null + ? deserializeAws_restJson1ConfigurationOverrides(output.configurationOverrides, context) + : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + createdBy: output.createdBy !== undefined && output.createdBy !== null ? output.createdBy : undefined, + executionRoleArn: + output.executionRoleArn !== undefined && output.executionRoleArn !== null ? output.executionRoleArn : undefined, + failureReason: + output.failureReason !== undefined && output.failureReason !== null ? output.failureReason : undefined, + finishedAt: + output.finishedAt !== undefined && output.finishedAt !== null + ? new Date(Math.round(output.finishedAt * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + jobDriver: + output.jobDriver !== undefined && output.jobDriver !== null + ? deserializeAws_restJson1JobDriver(output.jobDriver, context) + : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + releaseLabel: output.releaseLabel !== undefined && output.releaseLabel !== null ? output.releaseLabel : undefined, + state: output.state !== undefined && output.state !== null ? output.state : undefined, + stateDetails: output.stateDetails !== undefined && output.stateDetails !== null ? output.stateDetails : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1TagMap(output.tags, context) + : undefined, + virtualClusterId: + output.virtualClusterId !== undefined && output.virtualClusterId !== null ? output.virtualClusterId : undefined, + } as any; +}; + +const deserializeAws_restJson1JobRuns = (output: any, context: __SerdeContext): JobRun[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1JobRun(entry, context)); +}; + +const deserializeAws_restJson1MonitoringConfiguration = ( + output: any, + context: __SerdeContext +): MonitoringConfiguration => { + return { + cloudWatchMonitoringConfiguration: + output.cloudWatchMonitoringConfiguration !== undefined && output.cloudWatchMonitoringConfiguration !== null + ? deserializeAws_restJson1CloudWatchMonitoringConfiguration(output.cloudWatchMonitoringConfiguration, context) + : undefined, + persistentAppUI: + output.persistentAppUI !== undefined && output.persistentAppUI !== null ? output.persistentAppUI : undefined, + s3MonitoringConfiguration: + output.s3MonitoringConfiguration !== undefined && output.s3MonitoringConfiguration !== null + ? deserializeAws_restJson1S3MonitoringConfiguration(output.s3MonitoringConfiguration, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1S3MonitoringConfiguration = ( + output: any, + context: __SerdeContext +): S3MonitoringConfiguration => { + return { + logUri: output.logUri !== undefined && output.logUri !== null ? output.logUri : undefined, + } as any; +}; + +const deserializeAws_restJson1SensitivePropertiesMap = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1SparkSubmitJobDriver = (output: any, context: __SerdeContext): SparkSubmitJobDriver => { + return { + entryPoint: output.entryPoint !== undefined && output.entryPoint !== null ? output.entryPoint : undefined, + entryPointArguments: + output.entryPointArguments !== undefined && output.entryPointArguments !== null + ? deserializeAws_restJson1EntryPointArguments(output.entryPointArguments, context) + : undefined, + sparkSubmitParameters: + output.sparkSubmitParameters !== undefined && output.sparkSubmitParameters !== null + ? output.sparkSubmitParameters + : undefined, + } as any; +}; + +const deserializeAws_restJson1SubnetIds = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_restJson1TagMap = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + +const deserializeAws_restJson1VirtualCluster = (output: any, context: __SerdeContext): VirtualCluster => { + return { + arn: output.arn !== undefined && output.arn !== null ? output.arn : undefined, + containerProvider: + output.containerProvider !== undefined && output.containerProvider !== null + ? deserializeAws_restJson1ContainerProvider(output.containerProvider, context) + : undefined, + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? new Date(Math.round(output.createdAt * 1000)) + : undefined, + id: output.id !== undefined && output.id !== null ? output.id : undefined, + name: output.name !== undefined && output.name !== null ? output.name : undefined, + state: output.state !== undefined && output.state !== null ? output.state : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1TagMap(output.tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1VirtualClusters = (output: any, context: __SerdeContext): VirtualCluster[] => { + return (output || []).map((entry: any) => deserializeAws_restJson1VirtualCluster(entry, context)); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const isSerializableHeaderValue = (value: any): boolean => + value !== undefined && + value !== "" && + (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && + (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); + +/** + * Load an error code for the aws.rest-json-1.1 protocol. + */ +const loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => { + const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); + + const sanitizeErrorCode = (rawValue: string): string => { + let cleanValue = rawValue; + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== undefined) { + return sanitizeErrorCode(output.headers[headerKey]); + } + + if (data.code !== undefined) { + return sanitizeErrorCode(data.code); + } + + if (data["__type"] !== undefined) { + return sanitizeErrorCode(data["__type"]); + } + + return ""; +}; diff --git a/clients/client-emr-containers/runtimeConfig.browser.ts b/clients/client-emr-containers/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..8260c2acd9180 --- /dev/null +++ b/clients/client-emr-containers/runtimeConfig.browser.ts @@ -0,0 +1,34 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidAsyncFunction } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS } from "@aws-sdk/middleware-retry"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { ClientDefaults } from "./EMRContainersClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "browser", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider: invalidAsyncFunction("Credentialis missing") as any, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: DEFAULT_MAX_ATTEMPTS, + region: invalidAsyncFunction("Region is missing") as any, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-emr-containers/runtimeConfig.native.ts b/clients/client-emr-containers/runtimeConfig.native.ts new file mode 100644 index 0000000000000..a106dbb795dc4 --- /dev/null +++ b/clients/client-emr-containers/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-js"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { ClientDefaults } from "./EMRContainersClient"; +import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...BrowserDefaults, + runtime: "react-native", + defaultUserAgent: `aws-sdk-js-v3-react-native-${packageInfo.name}/${packageInfo.version}`, + sha256: Sha256, + urlParser: parseUrl, +}; diff --git a/clients/client-emr-containers/runtimeConfig.shared.ts b/clients/client-emr-containers/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..e0894da828d06 --- /dev/null +++ b/clients/client-emr-containers/runtimeConfig.shared.ts @@ -0,0 +1,13 @@ +import { defaultRegionInfoProvider } from "./endpoints"; +import { Logger as __Logger } from "@aws-sdk/types"; + +/** + * @internal + */ +export const ClientSharedValues = { + apiVersion: "2020-10-01", + disableHostPrefix: false, + logger: {} as __Logger, + regionInfoProvider: defaultRegionInfoProvider, + signingName: "emr-containers", +}; diff --git a/clients/client-emr-containers/runtimeConfig.ts b/clients/client-emr-containers/runtimeConfig.ts new file mode 100644 index 0000000000000..1cc9bddbe4fe2 --- /dev/null +++ b/clients/client-emr-containers/runtimeConfig.ts @@ -0,0 +1,36 @@ +import packageInfo from "./package.json"; + +import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { ClientDefaults } from "./EMRContainersClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "node", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-emr-containers/tsconfig.es.json b/clients/client-emr-containers/tsconfig.es.json new file mode 100644 index 0000000000000..30df5d2e6986e --- /dev/null +++ b/clients/client-emr-containers/tsconfig.es.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist/es" + } +} diff --git a/clients/client-emr-containers/tsconfig.json b/clients/client-emr-containers/tsconfig.json new file mode 100644 index 0000000000000..4cf936f614b4d --- /dev/null +++ b/clients/client-emr-containers/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "./protocols/*.ts", "./e2e/*.ts", "./endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "readme": "./README.md", + "mode": "file", + "out": "./docs", + "theme": "minimal", + "plugin": ["@aws-sdk/client-documentation-generator"] + } +} diff --git a/clients/client-forecast/Forecast.ts b/clients/client-forecast/Forecast.ts index efd5b8cd74450..7e1a2e92a1bfe 100644 --- a/clients/client-forecast/Forecast.ts +++ b/clients/client-forecast/Forecast.ts @@ -520,11 +520,21 @@ export class Forecast extends ForecastClient { } /** - *

    Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two CSV files are exported to a specified - * S3 bucket.

    - *

    You must specify a DataDestination object that includes an AWS Identity and Access Management - * (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see - * aws-forecast-iam-roles.

    + *

    Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported + * to your specified S3 bucket.

    + *

    The export file names will match the following conventions:

    + *

    + * __.csv + *

    + *

    The component is in Java SimpleDate format + * (yyyy-MM-ddTHH-mm-ssZ).

    + *

    You must specify a DataDestination object that includes an Amazon S3 + * bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 + * bucket. For more information, see aws-forecast-iam-roles.

    + * + *

    The Status of the export job must be ACTIVE before + * you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

    + *
    */ public createPredictorBacktestExportJob( args: CreatePredictorBacktestExportJobCommandInput, diff --git a/clients/client-forecast/commands/CreatePredictorBacktestExportJobCommand.ts b/clients/client-forecast/commands/CreatePredictorBacktestExportJobCommand.ts index 938edc887b8cd..e7e41fbcf229a 100644 --- a/clients/client-forecast/commands/CreatePredictorBacktestExportJobCommand.ts +++ b/clients/client-forecast/commands/CreatePredictorBacktestExportJobCommand.ts @@ -21,11 +21,21 @@ export type CreatePredictorBacktestExportJobCommandInput = CreatePredictorBackte export type CreatePredictorBacktestExportJobCommandOutput = CreatePredictorBacktestExportJobResponse & __MetadataBearer; /** - *

    Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two CSV files are exported to a specified - * S3 bucket.

    - *

    You must specify a DataDestination object that includes an AWS Identity and Access Management - * (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see - * aws-forecast-iam-roles.

    + *

    Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported + * to your specified S3 bucket.

    + *

    The export file names will match the following conventions:

    + *

    + * __.csv + *

    + *

    The component is in Java SimpleDate format + * (yyyy-MM-ddTHH-mm-ssZ).

    + *

    You must specify a DataDestination object that includes an Amazon S3 + * bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 + * bucket. For more information, see aws-forecast-iam-roles.

    + * + *

    The Status of the export job must be ACTIVE before + * you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

    + *
    */ export class CreatePredictorBacktestExportJobCommand extends $Command< CreatePredictorBacktestExportJobCommandInput, diff --git a/clients/client-forecast/models/models_0.ts b/clients/client-forecast/models/models_0.ts index daa73d84def03..ac9a956a21ab6 100644 --- a/clients/client-forecast/models/models_0.ts +++ b/clients/client-forecast/models/models_0.ts @@ -44,6 +44,7 @@ export namespace EncryptionConfig { export enum AttributeType { FLOAT = "float", + GEOLOCATION = "geolocation", INTEGER = "integer", STRING = "string", TIMESTAMP = "timestamp", @@ -130,6 +131,8 @@ export interface Tag { export namespace Tag { export const filterSensitiveLog = (obj: Tag): any => ({ ...obj, + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Value && { Value: SENSITIVE_STRING }), }); } @@ -211,6 +214,7 @@ export interface CreateDatasetRequest { export namespace CreateDatasetRequest { export const filterSensitiveLog = (obj: CreateDatasetRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -330,6 +334,7 @@ export interface CreateDatasetGroupRequest { export namespace CreateDatasetGroupRequest { export const filterSensitiveLog = (obj: CreateDatasetGroupRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -471,6 +476,38 @@ export interface CreateDatasetImportJobRequest { */ TimestampFormat?: string; + /** + *

    A single time zone for every item in your dataset. This option is ideal for datasets + * with all timestamps within a single time zone, or if all timestamps are normalized to a + * single time zone.

    + *

    Refer to the Joda-Time + * API for a complete list of valid time zone names.

    + */ + TimeZone?: string; + + /** + *

    Automatically derive time zone information from the geolocation attribute. This option + * is ideal for datasets that contain timestamps in multiple time zones and those + * timestamps are expressed in local time.

    + */ + UseGeolocationForTimeZone?: boolean; + + /** + *

    The format of the geolocation attribute. The geolocation attribute can be formatted in + * one of two ways:

    + *
      + *
    • + *

      + * LAT_LONG - the latitude and longitude in decimal format (Example: 47.61_-122.33).

      + *
    • + *
    • + *

      + * CC_POSTALCODE (US Only) - the country code (US), followed by the 5-digit ZIP code (Example: US_98121).

      + *
    • + *
    + */ + GeolocationFormat?: string; + /** *

    The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

    *

    The following basic restrictions apply to tags:

    @@ -504,6 +541,7 @@ export interface CreateDatasetImportJobRequest { export namespace CreateDatasetImportJobRequest { export const filterSensitiveLog = (obj: CreateDatasetImportJobRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -573,6 +611,7 @@ export interface CreateForecastRequest { export namespace CreateForecastRequest { export const filterSensitiveLog = (obj: CreateForecastRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -590,8 +629,8 @@ export namespace CreateForecastResponse { } /** - *

    The destination for an export job, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast - * to access the location and, optionally, an AWS Key Management Service (KMS) key.

    + *

    The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast + * to access the location, and an AWS Key Management Service (KMS) key (optional).

    */ export interface DataDestination { /** @@ -660,6 +699,7 @@ export interface CreateForecastExportJobRequest { export namespace CreateForecastExportJobRequest { export const filterSensitiveLog = (obj: CreateForecastExportJobRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -1098,19 +1138,40 @@ export namespace HyperParameterTuningJobConfig { } /** - *

    Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object.

    - *

    The only supported feature is Holidays. If you use the calendar, all data in the - * datasets should belong to the same country as the calendar. For the holiday calendar data, see - * the Jollyday website.

    + *

    Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in + * featurizations.

    + *

    + * Weather Index + *

    + *

    The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and + * projected weather information into your model. The Weather Index supplements your datasets + * with over two years of historical weather data and up to 14 days of projected weather data. + * For more information, see Amazon Forecast Weather Index.

    + *

    + * Holidays + *

    + *

    Holidays is a built-in featurization that incorporates a feature-engineered dataset of + * national holiday information into your model. It provides native support for the holiday + * calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more + * information, see Holidays Featurization.

    */ export interface SupplementaryFeature { /** - *

    The name of the feature. This must be "holiday".

    + *

    The name of the feature. Valid values: "holiday" and "weather".

    */ Name: string | undefined; /** - *

    One of the following 2 letter country codes:

    + *

    + * Weather Index + *

    + *

    To enable the Weather Index, set the value to "true" + *

    + *

    + * Holidays + *

    + *

    To enable Holidays, specify a country with one of the following two-letter country + * codes:

    *
      *
    • *

      "AL" - ALBANIA

      @@ -1518,6 +1579,7 @@ export interface CreatePredictorRequest { export namespace CreatePredictorRequest { export const filterSensitiveLog = (obj: CreatePredictorRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -1546,8 +1608,8 @@ export interface CreatePredictorBacktestExportJobRequest { PredictorArn: string | undefined; /** - *

      The destination for an export job, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast - * to access the location and, optionally, an AWS Key Management Service (KMS) key.

      + *

      The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast + * to access the location, and an AWS Key Management Service (KMS) key (optional).

      */ Destination: DataDestination | undefined; @@ -1591,6 +1653,7 @@ export interface CreatePredictorBacktestExportJobRequest { export namespace CreatePredictorBacktestExportJobRequest { export const filterSensitiveLog = (obj: CreatePredictorBacktestExportJobRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -2001,6 +2064,23 @@ export interface DescribeDatasetImportJobResponse { */ TimestampFormat?: string; + /** + *

      The single time zone applied to every item in the dataset

      + */ + TimeZone?: string; + + /** + *

      Whether TimeZone is automatically derived from the geolocation + * attribute.

      + */ + UseGeolocationForTimeZone?: boolean; + + /** + *

      The format of the geolocation attribute. Valid Values:"LAT_LONG" and + * "CC_POSTALCODE".

      + */ + GeolocationFormat?: string; + /** *

      The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast * can assume to access the data.

      @@ -2543,8 +2623,8 @@ export interface DescribePredictorBacktestExportJobResponse { PredictorArn?: string; /** - *

      The destination for an export job, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast - * to access the location and, optionally, an AWS Key Management Service (KMS) key.

      + *

      The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast + * to access the location, and an AWS Key Management Service (KMS) key (optional).

      */ Destination?: DataDestination; @@ -3542,8 +3622,8 @@ export interface PredictorBacktestExportJobSummary { PredictorBacktestExportJobName?: string; /** - *

      The destination for an export job, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast - * to access the location and, optionally, an AWS Key Management Service (KMS) key.

      + *

      The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast + * to access the location, and an AWS Key Management Service (KMS) key (optional).

      */ Destination?: DataDestination; @@ -3806,6 +3886,7 @@ export interface ListTagsForResourceResponse { export namespace ListTagsForResourceResponse { export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -3848,6 +3929,7 @@ export interface TagResourceRequest { export namespace TagResourceRequest { export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ ...obj, + ...(obj.Tags && { Tags: obj.Tags.map((item) => Tag.filterSensitiveLog(item)) }), }); } @@ -3874,6 +3956,7 @@ export interface UntagResourceRequest { export namespace UntagResourceRequest { export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ ...obj, + ...(obj.TagKeys && { TagKeys: SENSITIVE_STRING }), }); } diff --git a/clients/client-forecast/protocols/Aws_json1_1.ts b/clients/client-forecast/protocols/Aws_json1_1.ts index b1a13a1310b8c..1fe9a53b5ddc0 100644 --- a/clients/client-forecast/protocols/Aws_json1_1.ts +++ b/clients/client-forecast/protocols/Aws_json1_1.ts @@ -3038,8 +3038,13 @@ const serializeAws_json1_1CreateDatasetImportJobRequest = ( ...(input.DataSource !== undefined && { DataSource: serializeAws_json1_1DataSource(input.DataSource, context) }), ...(input.DatasetArn !== undefined && { DatasetArn: input.DatasetArn }), ...(input.DatasetImportJobName !== undefined && { DatasetImportJobName: input.DatasetImportJobName }), + ...(input.GeolocationFormat !== undefined && { GeolocationFormat: input.GeolocationFormat }), ...(input.Tags !== undefined && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + ...(input.TimeZone !== undefined && { TimeZone: input.TimeZone }), ...(input.TimestampFormat !== undefined && { TimestampFormat: input.TimestampFormat }), + ...(input.UseGeolocationForTimeZone !== undefined && { + UseGeolocationForTimeZone: input.UseGeolocationForTimeZone, + }), }; }; @@ -3830,14 +3835,23 @@ const deserializeAws_json1_1DescribeDatasetImportJobResponse = ( output.FieldStatistics !== undefined && output.FieldStatistics !== null ? deserializeAws_json1_1FieldStatistics(output.FieldStatistics, context) : undefined, + GeolocationFormat: + output.GeolocationFormat !== undefined && output.GeolocationFormat !== null + ? output.GeolocationFormat + : undefined, LastModificationTime: output.LastModificationTime !== undefined && output.LastModificationTime !== null ? new Date(Math.round(output.LastModificationTime * 1000)) : undefined, Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + TimeZone: output.TimeZone !== undefined && output.TimeZone !== null ? output.TimeZone : undefined, TimestampFormat: output.TimestampFormat !== undefined && output.TimestampFormat !== null ? output.TimestampFormat : undefined, + UseGeolocationForTimeZone: + output.UseGeolocationForTimeZone !== undefined && output.UseGeolocationForTimeZone !== null + ? output.UseGeolocationForTimeZone + : undefined, } as any; }; diff --git a/clients/client-global-accelerator/GlobalAccelerator.ts b/clients/client-global-accelerator/GlobalAccelerator.ts index 3ce5ecc52c34f..f1816884d9d83 100644 --- a/clients/client-global-accelerator/GlobalAccelerator.ts +++ b/clients/client-global-accelerator/GlobalAccelerator.ts @@ -1,14 +1,39 @@ import { GlobalAcceleratorClient } from "./GlobalAcceleratorClient"; +import { + AddCustomRoutingEndpointsCommand, + AddCustomRoutingEndpointsCommandInput, + AddCustomRoutingEndpointsCommandOutput, +} from "./commands/AddCustomRoutingEndpointsCommand"; import { AdvertiseByoipCidrCommand, AdvertiseByoipCidrCommandInput, AdvertiseByoipCidrCommandOutput, } from "./commands/AdvertiseByoipCidrCommand"; +import { + AllowCustomRoutingTrafficCommand, + AllowCustomRoutingTrafficCommandInput, + AllowCustomRoutingTrafficCommandOutput, +} from "./commands/AllowCustomRoutingTrafficCommand"; import { CreateAcceleratorCommand, CreateAcceleratorCommandInput, CreateAcceleratorCommandOutput, } from "./commands/CreateAcceleratorCommand"; +import { + CreateCustomRoutingAcceleratorCommand, + CreateCustomRoutingAcceleratorCommandInput, + CreateCustomRoutingAcceleratorCommandOutput, +} from "./commands/CreateCustomRoutingAcceleratorCommand"; +import { + CreateCustomRoutingEndpointGroupCommand, + CreateCustomRoutingEndpointGroupCommandInput, + CreateCustomRoutingEndpointGroupCommandOutput, +} from "./commands/CreateCustomRoutingEndpointGroupCommand"; +import { + CreateCustomRoutingListenerCommand, + CreateCustomRoutingListenerCommandInput, + CreateCustomRoutingListenerCommandOutput, +} from "./commands/CreateCustomRoutingListenerCommand"; import { CreateEndpointGroupCommand, CreateEndpointGroupCommandInput, @@ -24,6 +49,21 @@ import { DeleteAcceleratorCommandInput, DeleteAcceleratorCommandOutput, } from "./commands/DeleteAcceleratorCommand"; +import { + DeleteCustomRoutingAcceleratorCommand, + DeleteCustomRoutingAcceleratorCommandInput, + DeleteCustomRoutingAcceleratorCommandOutput, +} from "./commands/DeleteCustomRoutingAcceleratorCommand"; +import { + DeleteCustomRoutingEndpointGroupCommand, + DeleteCustomRoutingEndpointGroupCommandInput, + DeleteCustomRoutingEndpointGroupCommandOutput, +} from "./commands/DeleteCustomRoutingEndpointGroupCommand"; +import { + DeleteCustomRoutingListenerCommand, + DeleteCustomRoutingListenerCommandInput, + DeleteCustomRoutingListenerCommandOutput, +} from "./commands/DeleteCustomRoutingListenerCommand"; import { DeleteEndpointGroupCommand, DeleteEndpointGroupCommandInput, @@ -34,6 +74,11 @@ import { DeleteListenerCommandInput, DeleteListenerCommandOutput, } from "./commands/DeleteListenerCommand"; +import { + DenyCustomRoutingTrafficCommand, + DenyCustomRoutingTrafficCommandInput, + DenyCustomRoutingTrafficCommandOutput, +} from "./commands/DenyCustomRoutingTrafficCommand"; import { DeprovisionByoipCidrCommand, DeprovisionByoipCidrCommandInput, @@ -49,6 +94,26 @@ import { DescribeAcceleratorCommandInput, DescribeAcceleratorCommandOutput, } from "./commands/DescribeAcceleratorCommand"; +import { + DescribeCustomRoutingAcceleratorAttributesCommand, + DescribeCustomRoutingAcceleratorAttributesCommandInput, + DescribeCustomRoutingAcceleratorAttributesCommandOutput, +} from "./commands/DescribeCustomRoutingAcceleratorAttributesCommand"; +import { + DescribeCustomRoutingAcceleratorCommand, + DescribeCustomRoutingAcceleratorCommandInput, + DescribeCustomRoutingAcceleratorCommandOutput, +} from "./commands/DescribeCustomRoutingAcceleratorCommand"; +import { + DescribeCustomRoutingEndpointGroupCommand, + DescribeCustomRoutingEndpointGroupCommandInput, + DescribeCustomRoutingEndpointGroupCommandOutput, +} from "./commands/DescribeCustomRoutingEndpointGroupCommand"; +import { + DescribeCustomRoutingListenerCommand, + DescribeCustomRoutingListenerCommandInput, + DescribeCustomRoutingListenerCommandOutput, +} from "./commands/DescribeCustomRoutingListenerCommand"; import { DescribeEndpointGroupCommand, DescribeEndpointGroupCommandInput, @@ -69,6 +134,31 @@ import { ListByoipCidrsCommandInput, ListByoipCidrsCommandOutput, } from "./commands/ListByoipCidrsCommand"; +import { + ListCustomRoutingAcceleratorsCommand, + ListCustomRoutingAcceleratorsCommandInput, + ListCustomRoutingAcceleratorsCommandOutput, +} from "./commands/ListCustomRoutingAcceleratorsCommand"; +import { + ListCustomRoutingEndpointGroupsCommand, + ListCustomRoutingEndpointGroupsCommandInput, + ListCustomRoutingEndpointGroupsCommandOutput, +} from "./commands/ListCustomRoutingEndpointGroupsCommand"; +import { + ListCustomRoutingListenersCommand, + ListCustomRoutingListenersCommandInput, + ListCustomRoutingListenersCommandOutput, +} from "./commands/ListCustomRoutingListenersCommand"; +import { + ListCustomRoutingPortMappingsByDestinationCommand, + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput, +} from "./commands/ListCustomRoutingPortMappingsByDestinationCommand"; +import { + ListCustomRoutingPortMappingsCommand, + ListCustomRoutingPortMappingsCommandInput, + ListCustomRoutingPortMappingsCommandOutput, +} from "./commands/ListCustomRoutingPortMappingsCommand"; import { ListEndpointGroupsCommand, ListEndpointGroupsCommandInput, @@ -89,6 +179,11 @@ import { ProvisionByoipCidrCommandInput, ProvisionByoipCidrCommandOutput, } from "./commands/ProvisionByoipCidrCommand"; +import { + RemoveCustomRoutingEndpointsCommand, + RemoveCustomRoutingEndpointsCommandInput, + RemoveCustomRoutingEndpointsCommandOutput, +} from "./commands/RemoveCustomRoutingEndpointsCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommand, @@ -105,6 +200,21 @@ import { UpdateAcceleratorCommandInput, UpdateAcceleratorCommandOutput, } from "./commands/UpdateAcceleratorCommand"; +import { + UpdateCustomRoutingAcceleratorAttributesCommand, + UpdateCustomRoutingAcceleratorAttributesCommandInput, + UpdateCustomRoutingAcceleratorAttributesCommandOutput, +} from "./commands/UpdateCustomRoutingAcceleratorAttributesCommand"; +import { + UpdateCustomRoutingAcceleratorCommand, + UpdateCustomRoutingAcceleratorCommandInput, + UpdateCustomRoutingAcceleratorCommandOutput, +} from "./commands/UpdateCustomRoutingAcceleratorCommand"; +import { + UpdateCustomRoutingListenerCommand, + UpdateCustomRoutingListenerCommandInput, + UpdateCustomRoutingListenerCommandOutput, +} from "./commands/UpdateCustomRoutingListenerCommand"; import { UpdateEndpointGroupCommand, UpdateEndpointGroupCommandInput, @@ -127,109 +237,198 @@ import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; *

      This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about * AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the * AWS Global Accelerator Developer Guide.

      - *

      AWS Global Accelerator is a service in which you create accelerators to improve availability and performance - * of your applications for local and global users. Global Accelerator directs traffic to optimal endpoints over the AWS - * global network. This improves the availability and performance of your internet applications that are used by - * a global audience. Global Accelerator is a global service that supports endpoints in multiple AWS Regions, which are listed - * in the AWS - * Region Table.

      * + *

      AWS Global Accelerator is a service in which you create accelerators to improve the performance + * of your applications for local and global users. Depending on the type of accelerator you choose, you can + * gain additional benefits.

      + *
        + *
      • + *

        By using a standard accelerator, you can improve availability of your internet applications + * that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the AWS + * global network.

        + *
      • + *
      • + *

        For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you + * can use application logic to directly map one or more users to a specific endpoint among many endpoints.

        + *
      • + *
      * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators.

      *
      - * - *

      By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. (Instead of using the + *

      By default, Global Accelerator provides you with two static IP addresses that you associate with your accelerator. With + * a standard accelerator, instead of using the * IP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges - * that you bring to Global Accelerator.) The static IP addresses are anycast - * from the AWS edge network and distribute incoming application traffic across multiple endpoint resources in multiple - * AWS Regions, which increases the availability of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, EC2 instances, - * or Elastic IP addresses that are located in one AWS Region or multiple Regions.

      + * that you bring to Global Accelerator. The static IP addresses are anycast from the AWS edge network. For a standard accelerator, + * they distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases + * the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, + * Amazon EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions. For custom routing + * accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that + * are virtual private cloud (VPC) subnets.

      + * + * + *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even if you + * disable the accelerator and it no longer accepts or routes traffic. However, when you + * delete an accelerator, you lose the static IP addresses that + * are assigned to it, so you can no longer route traffic by using them. You can use + * IAM policies like tag-based permissions with Global Accelerator to limit the users who have + * permissions to delete an accelerator. For more information, see Tag-based policies.

      + *
      + *

      For standard accelerators, Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based + * on health, client location, and policies that you configure. The service reacts instantly to + * changes in health or configuration to ensure that internet traffic from clients is always + * directed to healthy endpoints.

      * - *

      Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client - * location, and policies that you configure. The service reacts instantly to changes in health or configuration to - * ensure that internet traffic from clients is directed to only healthy endpoints.

      + *

      For a list of the AWS Regions where Global Accelerator and other services are currently supported, see the + * AWS + * Region Table.

      * - *

      Global Accelerator includes components that work together to help you improve performance and availability for your - * applications:

      + *

      AWS Global Accelerator includes the following components:

      *
      - *
      Static IP address
      + *
      Static IP addresses
      *
      - *

      By default, AWS Global Accelerator provides you with a set of static IP addresses that are anycast from the AWS edge network - * and serve as the single fixed entry points for your clients. Or you can configure these entry points to be IPv4 addresses - * from your own IP address ranges that you bring to Global Accelerator (BYOIP). For more information, - * see Bring Your Own IP Addresses (BYOIP) in - * the AWS Global Accelerator Developer Guide. If you already have load balancers, EC2 instances, or - * Elastic IP addresses set up for your applications, you can easily add those to Global Accelerator to allow the - * resources to be accessed by the static IP addresses.

      - * - *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even - * if you disable the accelerator and - * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the - * static IP addresses that are assigned to it, so you can no longer route traffic by using them. - * You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, - * see Authentication and Access Control in - * the AWS Global Accelerator Developer Guide. - *

      - *
      + *

      Global Accelerator provides you with a set of two static IP addresses that are anycast from the AWS edge + * network. If you bring your own IP address range to AWS (BYOIP) to use with a standard accelerator, you + * can instead assign IP addresses from your own pool to use with your accelerator. For more information, + * see + * Bring your own IP addresses (BYOIP) in AWS Global Accelerator.

      + *

      The IP addresses serve as single fixed entry points for your clients. If you already have Elastic + * Load Balancing load balancers, Amazon EC2 instances, or Elastic IP address resources set up for your applications, + * you can easily add those to a standard accelerator in Global Accelerator. This allows Global Accelerator to use static IP addresses + * to access the resources.

      + *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even + * if you disable the accelerator and it no longer accepts or routes traffic. + * However, when you delete an accelerator, you lose the + * static IP addresses that are assigned to it, so you can no longer route + * traffic by using them. You can use IAM policies like tag-based permissions + * with Global Accelerator to delete an accelerator. For more information, see Tag-based policies.

      *
      *
      Accelerator
      *
      - *

      An accelerator directs traffic to optimal endpoints over the AWS global network to improve availability - * and performance for your internet applications that have a global audience. Each accelerator includes one or - * more listeners.

      + *

      An accelerator directs traffic to endpoints over the AWS global network to improve the + * performance of your internet applications. Each accelerator includes one or more listeners.

      + *

      There are two types of accelerators:

      + *
        + *
      • + *

        A standard accelerator directs traffic to the optimal AWS endpoint based + * on several factors, including the user’s location, the health of the endpoint, and the endpoint weights + * that you configure. This improves the availability and performance of your applications. + * Endpoints can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses.

        + *
      • + *
      • + *

        A custom routing accelerator directs traffic to one of possibly thousands of + * Amazon EC2 instances running in a single or multiple virtual private + * clouds (VPCs). With custom routing, listener ports are mapped to + * statically associate port ranges with VPC subnets, which + * allows Global Accelerator to determine an EC2 instance IP address at the time of + * connection. By default, all port mapping destinations in a VPC + * subnet can't receive traffic. You can choose to configure all + * destinations in the subnet to receive traffic, or to specify + * individual port mappings that can receive traffic.

        + *
      • + *
      + *

      For more information, see Types of accelerators.

      *
      *
      DNS name
      *
      - *

      Global Accelerator assigns each accelerator a default Domain Name System (DNS) - * name, similar to a1234567890abcdef.awsglobalaccelerator.com, - * that points to your Global Accelerator static IP addresses. Depending - * on the use case, you can use your accelerator's static IP addresses or DNS name to route traffic - * to your accelerator, or set up DNS records to route traffic using your own custom domain name.

      + *

      Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to + * a1234567890abcdef.awsglobalaccelerator.com, that points to + * the static IP addresses that Global Accelerator assigns to you or that you choose from your + * own IP address range. Depending on the use + * case, you can use your accelerator's static IP addresses or DNS name to + * route traffic to your accelerator, or set up DNS records to route traffic using + * your own custom domain name.

      *
      *
      Network zone
      *
      - *

      A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an - * AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. - * - * When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a - * network zone becomes unavailable due to IP address blocking by certain client networks, or network - * disruptions, then client applications can retry on the healthy static IP address from the other isolated - * network zone.

      + *

      A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an + * AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. + * When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a + * network zone becomes unavailable due to IP address blocking by certain client networks, or network + * disruptions, then client applications can retry on the healthy static IP address from the other isolated + * network zone.

      *
      *
      Listener
      *
      - *

      A listener processes inbound connections from clients to Global Accelerator, based on the protocol and port that you - * configure. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to - * endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions - * that you want to distribute traffic to. Traffic is distributed to optimal endpoints within the endpoint - * groups associated with a listener.

      - *
      + *

      A listener processes inbound connections from clients to Global Accelerator, based on the port (or port range) + * and protocol (or protocols) that you configure. A listener can be configured for TCP, UDP, or both TCP and UDP protocols. Each + * listener has one or more endpoint groups associated with it, and traffic is forwarded + * to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you + * want to distribute traffic to. With a standard accelerator, traffic is distributed to optimal endpoints within the endpoint + * groups associated with a listener.

      + * *
      Endpoint group
      *
      - *

      Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more - * endpoints in the Region. You can increase or reduce the percentage of traffic that would be otherwise - * directed to an endpoint group by adjusting a setting called a traffic dial. The - * traffic dial lets you easily do performance testing or blue/green deployment testing for new releases - * across different AWS Regions, for example.

      + *

      Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or + * more endpoints in the Region. With a standard accelerator, you can increase or reduce the percentage of + * traffic that would be otherwise directed to an endpoint group by adjusting a + * setting called a traffic dial. The traffic dial lets + * you easily do performance testing or blue/green deployment testing, for example, for new + * releases across different AWS Regions.

      *
      *
      Endpoint
      *
      - *

      An endpoint is a Network Load Balancer, Application Load Balancer, EC2 instance, or Elastic IP address. Traffic is routed to endpoints based on several - * factors, including the geo-proximity to the user, the health of the endpoint, and the configuration - * options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are - * numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, - * for example, to do performance testing within a Region.

      + *

      An endpoint is a resource that Global Accelerator directs traffic to.

      + *

      Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP + * addresses. An Application Load Balancer endpoint can be internet-facing or internal. Traffic for + * standard accelerators is routed to endpoints based on the health of the + * endpoint along with configuration options that you choose, such as endpoint + * weights. For each endpoint, you can configure weights, which are numbers + * that you can use to specify the proportion of traffic to route to each one. + * This can be useful, for example, to do performance testing within a + * Region.

      + *

      Endpoints for custom routing accelerators are virtual private cloud (VPC) subnets with one + * or many EC2 instances.

      *
      *
      */ export class GlobalAccelerator extends GlobalAcceleratorClient { + /** + *

      Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.

      + *

      The listener port range must be large enough to support the number of IP addresses that can be + * specified in your subnet. The number of ports required is: subnet size times the number + * of ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener + * port range of at least 255 ports.

      + *

      Note: You must have enough remaining listener ports available to + * map to the subnet ports, or the call will fail with a LimitExceededException.

      + *

      By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all + * destinations to receive traffic, or to specify individual port mappings that can receive + * traffic, see the + * AllowCustomRoutingTraffic operation.

      + */ + public addCustomRoutingEndpoints( + args: AddCustomRoutingEndpointsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public addCustomRoutingEndpoints( + args: AddCustomRoutingEndpointsCommandInput, + cb: (err: any, data?: AddCustomRoutingEndpointsCommandOutput) => void + ): void; + public addCustomRoutingEndpoints( + args: AddCustomRoutingEndpointsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AddCustomRoutingEndpointsCommandOutput) => void + ): void; + public addCustomRoutingEndpoints( + args: AddCustomRoutingEndpointsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AddCustomRoutingEndpointsCommandOutput) => void), + cb?: (err: any, data?: AddCustomRoutingEndpointsCommandOutput) => void + ): Promise | void { + const command = new AddCustomRoutingEndpointsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Advertises an IPv4 address range that is provisioned for use with your AWS resources * through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to - * the specified addresses starts routing to AWS because of propagation delays. To - * see an AWS CLI example of advertising an address range, scroll down to - * Example.

      + * the specified addresses starts routing to AWS because of propagation delays.

      *

      To stop advertising the BYOIP address range, use * WithdrawByoipCidr.

      *

      For more information, see Bring Your Own @@ -264,10 +463,46 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } } + /** + *

      Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic + * for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a + * specified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports + * outside of the range that you configured for the endpoint group.

      + *

      After you make changes, you can verify that the updates are complete by checking the status of your + * accelerator: the status changes from IN_PROGRESS to DEPLOYED.

      + */ + public allowCustomRoutingTraffic( + args: AllowCustomRoutingTrafficCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public allowCustomRoutingTraffic( + args: AllowCustomRoutingTrafficCommandInput, + cb: (err: any, data?: AllowCustomRoutingTrafficCommandOutput) => void + ): void; + public allowCustomRoutingTraffic( + args: AllowCustomRoutingTrafficCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AllowCustomRoutingTrafficCommandOutput) => void + ): void; + public allowCustomRoutingTraffic( + args: AllowCustomRoutingTrafficCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AllowCustomRoutingTrafficCommandOutput) => void), + cb?: (err: any, data?: AllowCustomRoutingTrafficCommandOutput) => void + ): Promise | void { + const command = new AllowCustomRoutingTrafficCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic - * to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers. To see an AWS CLI - * example of creating an accelerator, scroll down to Example.

      + * to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.

      * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators.

      @@ -302,10 +537,113 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } } + /** + *

      Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands + * of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

      + *

      Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive + * traffic. To enable all destinations to receive traffic, or to specify individual port + * mappings that can receive traffic, see the + * AllowCustomRoutingTraffic operation.

      + */ + public createCustomRoutingAccelerator( + args: CreateCustomRoutingAcceleratorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createCustomRoutingAccelerator( + args: CreateCustomRoutingAcceleratorCommandInput, + cb: (err: any, data?: CreateCustomRoutingAcceleratorCommandOutput) => void + ): void; + public createCustomRoutingAccelerator( + args: CreateCustomRoutingAcceleratorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateCustomRoutingAcceleratorCommandOutput) => void + ): void; + public createCustomRoutingAccelerator( + args: CreateCustomRoutingAcceleratorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateCustomRoutingAcceleratorCommandOutput) => void), + cb?: (err: any, data?: CreateCustomRoutingAcceleratorCommandOutput) => void + ): Promise | void { + const command = new CreateCustomRoutingAcceleratorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Create an endpoint group for the specified listener for a custom routing accelerator. + * An endpoint group is a collection of endpoints in one AWS + * Region.

      + */ + public createCustomRoutingEndpointGroup( + args: CreateCustomRoutingEndpointGroupCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createCustomRoutingEndpointGroup( + args: CreateCustomRoutingEndpointGroupCommandInput, + cb: (err: any, data?: CreateCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public createCustomRoutingEndpointGroup( + args: CreateCustomRoutingEndpointGroupCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public createCustomRoutingEndpointGroup( + args: CreateCustomRoutingEndpointGroupCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateCustomRoutingEndpointGroupCommandOutput) => void), + cb?: (err: any, data?: CreateCustomRoutingEndpointGroupCommandOutput) => void + ): Promise | void { + const command = new CreateCustomRoutingEndpointGroupCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Create a listener to process inbound connections from clients to a custom routing accelerator. + * Connections arrive to assigned static IP addresses on the port range that you specify.

      + */ + public createCustomRoutingListener( + args: CreateCustomRoutingListenerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createCustomRoutingListener( + args: CreateCustomRoutingListenerCommandInput, + cb: (err: any, data?: CreateCustomRoutingListenerCommandOutput) => void + ): void; + public createCustomRoutingListener( + args: CreateCustomRoutingListenerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateCustomRoutingListenerCommandOutput) => void + ): void; + public createCustomRoutingListener( + args: CreateCustomRoutingListenerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateCustomRoutingListenerCommandOutput) => void), + cb?: (err: any, data?: CreateCustomRoutingListenerCommandOutput) => void + ): Promise | void { + const command = new CreateCustomRoutingListenerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS * Region. A resource must be valid and active when you add it as an endpoint.

      - *

      To see an AWS CLI example of creating an endpoint group, scroll down to Example.

      */ public createEndpointGroup( args: CreateEndpointGroupCommandInput, @@ -338,8 +676,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { /** *

      Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned static - * IP addresses on a port, port range, or list of port ranges that you specify. To see an AWS CLI example of creating a - * listener, scroll down to Example.

      + * IP addresses on a port, port range, or list of port ranges that you specify.

      */ public createListener( args: CreateListenerCommandInput, @@ -377,8 +714,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { *

      When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. * Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges. *

      - *

      The IP - * addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and + *

      The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the * static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. * As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You @@ -416,6 +752,115 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } } + /** + *

      Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources + * (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

      + * + *

      When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. + *

      + *

      The IP + * addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and + * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the + * static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. + * As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You + * can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, + * see Authentication and Access Control in + * the AWS Global Accelerator Developer Guide.

      + *
      + */ + public deleteCustomRoutingAccelerator( + args: DeleteCustomRoutingAcceleratorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCustomRoutingAccelerator( + args: DeleteCustomRoutingAcceleratorCommandInput, + cb: (err: any, data?: DeleteCustomRoutingAcceleratorCommandOutput) => void + ): void; + public deleteCustomRoutingAccelerator( + args: DeleteCustomRoutingAcceleratorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCustomRoutingAcceleratorCommandOutput) => void + ): void; + public deleteCustomRoutingAccelerator( + args: DeleteCustomRoutingAcceleratorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCustomRoutingAcceleratorCommandOutput) => void), + cb?: (err: any, data?: DeleteCustomRoutingAcceleratorCommandOutput) => void + ): Promise | void { + const command = new DeleteCustomRoutingAcceleratorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Delete an endpoint group from a listener for a custom routing accelerator.

      + */ + public deleteCustomRoutingEndpointGroup( + args: DeleteCustomRoutingEndpointGroupCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCustomRoutingEndpointGroup( + args: DeleteCustomRoutingEndpointGroupCommandInput, + cb: (err: any, data?: DeleteCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public deleteCustomRoutingEndpointGroup( + args: DeleteCustomRoutingEndpointGroupCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public deleteCustomRoutingEndpointGroup( + args: DeleteCustomRoutingEndpointGroupCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCustomRoutingEndpointGroupCommandOutput) => void), + cb?: (err: any, data?: DeleteCustomRoutingEndpointGroupCommandOutput) => void + ): Promise | void { + const command = new DeleteCustomRoutingEndpointGroupCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Delete a listener for a custom routing accelerator.

      + */ + public deleteCustomRoutingListener( + args: DeleteCustomRoutingListenerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCustomRoutingListener( + args: DeleteCustomRoutingListenerCommandInput, + cb: (err: any, data?: DeleteCustomRoutingListenerCommandOutput) => void + ): void; + public deleteCustomRoutingListener( + args: DeleteCustomRoutingListenerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCustomRoutingListenerCommandOutput) => void + ): void; + public deleteCustomRoutingListener( + args: DeleteCustomRoutingListenerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCustomRoutingListenerCommandOutput) => void), + cb?: (err: any, data?: DeleteCustomRoutingListenerCommandOutput) => void + ): Promise | void { + const command = new DeleteCustomRoutingListenerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Delete an endpoint group from a listener.

      */ @@ -480,11 +925,46 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } } + /** + *

      Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that cannot receive traffic + * for a custom routing accelerator. You can deny traffic to all destinations in the VPC endpoint, or deny traffic to a + * specified list of destination IP addresses and ports. Note that you cannot specify IP addresses + * or ports outside of the range that you configured for the endpoint group.

      + *

      After you make changes, you can verify that the updates are complete by checking the status of your + * accelerator: the status changes from IN_PROGRESS to DEPLOYED.

      + */ + public denyCustomRoutingTraffic( + args: DenyCustomRoutingTrafficCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public denyCustomRoutingTraffic( + args: DenyCustomRoutingTrafficCommandInput, + cb: (err: any, data?: DenyCustomRoutingTrafficCommandOutput) => void + ): void; + public denyCustomRoutingTraffic( + args: DenyCustomRoutingTrafficCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DenyCustomRoutingTrafficCommandOutput) => void + ): void; + public denyCustomRoutingTraffic( + args: DenyCustomRoutingTrafficCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DenyCustomRoutingTrafficCommandOutput) => void), + cb?: (err: any, data?: DenyCustomRoutingTrafficCommandOutput) => void + ): Promise | void { + const command = new DenyCustomRoutingTrafficCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Releases the specified address range that you provisioned to use with your AWS resources - * through bring your own IP addresses (BYOIP) and deletes the corresponding address pool. To - * see an AWS CLI example of deprovisioning an address range, scroll down to - * Example.

      + * through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

      *

      Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have * any accelerators that are using static IP addresses allocated from its address range. *

      @@ -521,7 +1001,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Describe an accelerator. To see an AWS CLI example of describing an accelerator, scroll down to Example.

      + *

      Describe an accelerator.

      */ public describeAccelerator( args: DescribeAcceleratorCommandInput, @@ -553,8 +1033,8 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Describe the attributes of an accelerator. To see an AWS CLI example of describing the attributes of an accelerator, - * scroll down to Example.

      + *

      Describe the attributes of an accelerator. + *

      */ public describeAcceleratorAttributes( args: DescribeAcceleratorAttributesCommandInput, @@ -586,8 +1066,137 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Describe an endpoint group. To see an AWS CLI example of describing - * an endpoint group, scroll down to Example.

      + *

      Describe a custom routing accelerator.

      + */ + public describeCustomRoutingAccelerator( + args: DescribeCustomRoutingAcceleratorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeCustomRoutingAccelerator( + args: DescribeCustomRoutingAcceleratorCommandInput, + cb: (err: any, data?: DescribeCustomRoutingAcceleratorCommandOutput) => void + ): void; + public describeCustomRoutingAccelerator( + args: DescribeCustomRoutingAcceleratorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCustomRoutingAcceleratorCommandOutput) => void + ): void; + public describeCustomRoutingAccelerator( + args: DescribeCustomRoutingAcceleratorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeCustomRoutingAcceleratorCommandOutput) => void), + cb?: (err: any, data?: DescribeCustomRoutingAcceleratorCommandOutput) => void + ): Promise | void { + const command = new DescribeCustomRoutingAcceleratorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Describe the attributes of a custom routing accelerator.

      + */ + public describeCustomRoutingAcceleratorAttributes( + args: DescribeCustomRoutingAcceleratorAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeCustomRoutingAcceleratorAttributes( + args: DescribeCustomRoutingAcceleratorAttributesCommandInput, + cb: (err: any, data?: DescribeCustomRoutingAcceleratorAttributesCommandOutput) => void + ): void; + public describeCustomRoutingAcceleratorAttributes( + args: DescribeCustomRoutingAcceleratorAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCustomRoutingAcceleratorAttributesCommandOutput) => void + ): void; + public describeCustomRoutingAcceleratorAttributes( + args: DescribeCustomRoutingAcceleratorAttributesCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: DescribeCustomRoutingAcceleratorAttributesCommandOutput) => void), + cb?: (err: any, data?: DescribeCustomRoutingAcceleratorAttributesCommandOutput) => void + ): Promise | void { + const command = new DescribeCustomRoutingAcceleratorAttributesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Describe an endpoint group for a custom routing accelerator.

      + */ + public describeCustomRoutingEndpointGroup( + args: DescribeCustomRoutingEndpointGroupCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeCustomRoutingEndpointGroup( + args: DescribeCustomRoutingEndpointGroupCommandInput, + cb: (err: any, data?: DescribeCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public describeCustomRoutingEndpointGroup( + args: DescribeCustomRoutingEndpointGroupCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCustomRoutingEndpointGroupCommandOutput) => void + ): void; + public describeCustomRoutingEndpointGroup( + args: DescribeCustomRoutingEndpointGroupCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeCustomRoutingEndpointGroupCommandOutput) => void), + cb?: (err: any, data?: DescribeCustomRoutingEndpointGroupCommandOutput) => void + ): Promise | void { + const command = new DescribeCustomRoutingEndpointGroupCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      The description of a listener for a custom routing accelerator.

      + */ + public describeCustomRoutingListener( + args: DescribeCustomRoutingListenerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeCustomRoutingListener( + args: DescribeCustomRoutingListenerCommandInput, + cb: (err: any, data?: DescribeCustomRoutingListenerCommandOutput) => void + ): void; + public describeCustomRoutingListener( + args: DescribeCustomRoutingListenerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCustomRoutingListenerCommandOutput) => void + ): void; + public describeCustomRoutingListener( + args: DescribeCustomRoutingListenerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeCustomRoutingListenerCommandOutput) => void), + cb?: (err: any, data?: DescribeCustomRoutingListenerCommandOutput) => void + ): Promise | void { + const command = new DescribeCustomRoutingListenerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Describe an endpoint group.

      */ public describeEndpointGroup( args: DescribeEndpointGroupCommandInput, @@ -619,7 +1228,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Describe a listener. To see an AWS CLI example of describing a listener, scroll down to Example.

      + *

      Describe a listener.

      */ public describeListener( args: DescribeListenerCommandInput, @@ -651,8 +1260,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      List the accelerators for an AWS account. To see an AWS CLI example of listing the accelerators for an AWS account, - * scroll down to Example.

      + *

      List the accelerators for an AWS account.

      */ public listAccelerators( args: ListAcceleratorsCommandInput, @@ -686,8 +1294,6 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { /** *

      Lists the IP address ranges that were specified in calls to ProvisionByoipCidr, including * the current state and a history of state changes.

      - *

      To see an AWS CLI example of listing BYOIP CIDR addresses, scroll down to - * Example.

      */ public listByoipCidrs( args: ListByoipCidrsCommandInput, @@ -719,8 +1325,180 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      List the endpoint groups that are associated with a listener. To see an AWS CLI example of listing - * the endpoint groups for listener, scroll down to Example.

      + *

      List the custom routing accelerators for an AWS account.

      + */ + public listCustomRoutingAccelerators( + args: ListCustomRoutingAcceleratorsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCustomRoutingAccelerators( + args: ListCustomRoutingAcceleratorsCommandInput, + cb: (err: any, data?: ListCustomRoutingAcceleratorsCommandOutput) => void + ): void; + public listCustomRoutingAccelerators( + args: ListCustomRoutingAcceleratorsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCustomRoutingAcceleratorsCommandOutput) => void + ): void; + public listCustomRoutingAccelerators( + args: ListCustomRoutingAcceleratorsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCustomRoutingAcceleratorsCommandOutput) => void), + cb?: (err: any, data?: ListCustomRoutingAcceleratorsCommandOutput) => void + ): Promise | void { + const command = new ListCustomRoutingAcceleratorsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      List the endpoint groups that are associated with a listener for a custom routing accelerator.

      + */ + public listCustomRoutingEndpointGroups( + args: ListCustomRoutingEndpointGroupsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCustomRoutingEndpointGroups( + args: ListCustomRoutingEndpointGroupsCommandInput, + cb: (err: any, data?: ListCustomRoutingEndpointGroupsCommandOutput) => void + ): void; + public listCustomRoutingEndpointGroups( + args: ListCustomRoutingEndpointGroupsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCustomRoutingEndpointGroupsCommandOutput) => void + ): void; + public listCustomRoutingEndpointGroups( + args: ListCustomRoutingEndpointGroupsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCustomRoutingEndpointGroupsCommandOutput) => void), + cb?: (err: any, data?: ListCustomRoutingEndpointGroupsCommandOutput) => void + ): Promise | void { + const command = new ListCustomRoutingEndpointGroupsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      List the listeners for a custom routing accelerator.

      + */ + public listCustomRoutingListeners( + args: ListCustomRoutingListenersCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCustomRoutingListeners( + args: ListCustomRoutingListenersCommandInput, + cb: (err: any, data?: ListCustomRoutingListenersCommandOutput) => void + ): void; + public listCustomRoutingListeners( + args: ListCustomRoutingListenersCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCustomRoutingListenersCommandOutput) => void + ): void; + public listCustomRoutingListeners( + args: ListCustomRoutingListenersCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCustomRoutingListenersCommandOutput) => void), + cb?: (err: any, data?: ListCustomRoutingListenersCommandOutput) => void + ): Promise | void { + const command = new ListCustomRoutingListenersCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Provides a complete mapping from the public accelerator IP address and port to destination EC2 instance + * IP addresses and ports in the virtual public cloud (VPC) subnet endpoint for a custom routing accelerator. + * For each subnet endpoint that you add, Global Accelerator creates a new static port mapping for the accelerator. The port + * mappings don't change after Global Accelerator generates them, so you can retrieve and cache the full mapping on your servers.

      + *

      If you remove a subnet from your accelerator, Global Accelerator removes (reclaims) the port mappings. If you add a subnet to + * your accelerator, Global Accelerator creates new port mappings (the existing ones don't change). If you add or remove EC2 instances + * in your subnet, the port mappings don't change, because the mappings are created when you add the subnet to Global Accelerator.

      + *

      The mappings also include a flag for each destination denoting which destination IP addresses and + * ports are allowed or denied traffic.

      + */ + public listCustomRoutingPortMappings( + args: ListCustomRoutingPortMappingsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCustomRoutingPortMappings( + args: ListCustomRoutingPortMappingsCommandInput, + cb: (err: any, data?: ListCustomRoutingPortMappingsCommandOutput) => void + ): void; + public listCustomRoutingPortMappings( + args: ListCustomRoutingPortMappingsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCustomRoutingPortMappingsCommandOutput) => void + ): void; + public listCustomRoutingPortMappings( + args: ListCustomRoutingPortMappingsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCustomRoutingPortMappingsCommandOutput) => void), + cb?: (err: any, data?: ListCustomRoutingPortMappingsCommandOutput) => void + ): Promise | void { + const command = new ListCustomRoutingPortMappingsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      List the port mappings for a specific EC2 instance (destination) in a VPC subnet endpoint. The + * response is the mappings for one destination IP address. This is useful when your subnet endpoint has mappings that + * span multiple custom routing accelerators in your account, or for scenarios where you only want to + * list the port mappings for a specific destination instance.

      + */ + public listCustomRoutingPortMappingsByDestination( + args: ListCustomRoutingPortMappingsByDestinationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCustomRoutingPortMappingsByDestination( + args: ListCustomRoutingPortMappingsByDestinationCommandInput, + cb: (err: any, data?: ListCustomRoutingPortMappingsByDestinationCommandOutput) => void + ): void; + public listCustomRoutingPortMappingsByDestination( + args: ListCustomRoutingPortMappingsByDestinationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCustomRoutingPortMappingsByDestinationCommandOutput) => void + ): void; + public listCustomRoutingPortMappingsByDestination( + args: ListCustomRoutingPortMappingsByDestinationCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: ListCustomRoutingPortMappingsByDestinationCommandOutput) => void), + cb?: (err: any, data?: ListCustomRoutingPortMappingsByDestinationCommandOutput) => void + ): Promise | void { + const command = new ListCustomRoutingPortMappingsByDestinationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      List the endpoint groups that are associated with a listener.

      */ public listEndpointGroups( args: ListEndpointGroupsCommandInput, @@ -752,8 +1530,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      List the listeners for an accelerator. To see an AWS CLI example of listing the listeners for an accelerator, - * scroll down to Example.

      + *

      List the listeners for an accelerator.

      */ public listListeners( args: ListListenersCommandInput, @@ -785,8 +1562,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      List all tags for an accelerator. To see an AWS CLI example of listing tags for an accelerator, - * scroll down to Example.

      + *

      List all tags for an accelerator.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      */ @@ -824,8 +1600,6 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { * addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, * it is ready to be advertised using * AdvertiseByoipCidr.

      - *

      To see an AWS CLI example of provisioning an address range for BYOIP, scroll down to - * Example.

      *

      For more information, see Bring Your Own * IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

      */ @@ -859,8 +1633,39 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Add tags to an accelerator resource. To see an AWS CLI example of adding tags to an accelerator, scroll down to - * Example.

      + *

      Remove endpoints from a custom routing accelerator.

      + */ + public removeCustomRoutingEndpoints( + args: RemoveCustomRoutingEndpointsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public removeCustomRoutingEndpoints( + args: RemoveCustomRoutingEndpointsCommandInput, + cb: (err: any, data?: RemoveCustomRoutingEndpointsCommandOutput) => void + ): void; + public removeCustomRoutingEndpoints( + args: RemoveCustomRoutingEndpointsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RemoveCustomRoutingEndpointsCommandOutput) => void + ): void; + public removeCustomRoutingEndpoints( + args: RemoveCustomRoutingEndpointsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RemoveCustomRoutingEndpointsCommandOutput) => void), + cb?: (err: any, data?: RemoveCustomRoutingEndpointsCommandOutput) => void + ): Promise | void { + const command = new RemoveCustomRoutingEndpointsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Add tags to an accelerator resource.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      */ @@ -888,8 +1693,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. To - * see an AWS CLI example of removing tags from an accelerator, scroll down to Example. + *

      Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. * The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      @@ -924,8 +1728,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Update an accelerator. To see an AWS CLI example of updating an accelerator, - * scroll down to Example.

      + *

      Update an accelerator.

      * * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the @@ -962,8 +1765,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Update the attributes for an accelerator. To see an AWS CLI example of updating an accelerator to enable flow logs, - * scroll down to Example.

      + *

      Update the attributes for an accelerator.

      */ public updateAcceleratorAttributes( args: UpdateAcceleratorAttributesCommandInput, @@ -994,9 +1796,106 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } } + /** + *

      Update a custom routing accelerator.

      + */ + public updateCustomRoutingAccelerator( + args: UpdateCustomRoutingAcceleratorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateCustomRoutingAccelerator( + args: UpdateCustomRoutingAcceleratorCommandInput, + cb: (err: any, data?: UpdateCustomRoutingAcceleratorCommandOutput) => void + ): void; + public updateCustomRoutingAccelerator( + args: UpdateCustomRoutingAcceleratorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateCustomRoutingAcceleratorCommandOutput) => void + ): void; + public updateCustomRoutingAccelerator( + args: UpdateCustomRoutingAcceleratorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateCustomRoutingAcceleratorCommandOutput) => void), + cb?: (err: any, data?: UpdateCustomRoutingAcceleratorCommandOutput) => void + ): Promise | void { + const command = new UpdateCustomRoutingAcceleratorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Update the attributes for a custom routing accelerator.

      + */ + public updateCustomRoutingAcceleratorAttributes( + args: UpdateCustomRoutingAcceleratorAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateCustomRoutingAcceleratorAttributes( + args: UpdateCustomRoutingAcceleratorAttributesCommandInput, + cb: (err: any, data?: UpdateCustomRoutingAcceleratorAttributesCommandOutput) => void + ): void; + public updateCustomRoutingAcceleratorAttributes( + args: UpdateCustomRoutingAcceleratorAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateCustomRoutingAcceleratorAttributesCommandOutput) => void + ): void; + public updateCustomRoutingAcceleratorAttributes( + args: UpdateCustomRoutingAcceleratorAttributesCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: UpdateCustomRoutingAcceleratorAttributesCommandOutput) => void), + cb?: (err: any, data?: UpdateCustomRoutingAcceleratorAttributesCommandOutput) => void + ): Promise | void { + const command = new UpdateCustomRoutingAcceleratorAttributesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

      Update a listener for a custom routing accelerator.

      + */ + public updateCustomRoutingListener( + args: UpdateCustomRoutingListenerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateCustomRoutingListener( + args: UpdateCustomRoutingListenerCommandInput, + cb: (err: any, data?: UpdateCustomRoutingListenerCommandOutput) => void + ): void; + public updateCustomRoutingListener( + args: UpdateCustomRoutingListenerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateCustomRoutingListenerCommandOutput) => void + ): void; + public updateCustomRoutingListener( + args: UpdateCustomRoutingListenerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateCustomRoutingListenerCommandOutput) => void), + cb?: (err: any, data?: UpdateCustomRoutingListenerCommandOutput) => void + ): Promise | void { + const command = new UpdateCustomRoutingListenerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

      Update an endpoint group. A resource must be valid and active when you add it as an endpoint.

      - *

      To see an AWS CLI example of updating an endpoint group, scroll down to Example.

      */ public updateEndpointGroup( args: UpdateEndpointGroupCommandInput, @@ -1028,7 +1927,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { } /** - *

      Update a listener. To see an AWS CLI example of updating listener, scroll down to Example.

      + *

      Update a listener.

      */ public updateListener( args: UpdateListenerCommandInput, @@ -1062,8 +1961,7 @@ export class GlobalAccelerator extends GlobalAcceleratorClient { /** *

      Stops advertising an address range that is provisioned as an address pool. * You can perform this operation at most once every 10 seconds, even if you specify different address - * ranges each time. To see an AWS CLI example of withdrawing an address range for BYOIP so - * it will no longer be advertised by AWS, scroll down to Example.

      + * ranges each time.

      *

      It can take a few minutes before traffic to the specified addresses stops routing to AWS because of * propagation delays.

      *

      For more information, see Bring Your Own diff --git a/clients/client-global-accelerator/GlobalAcceleratorClient.ts b/clients/client-global-accelerator/GlobalAcceleratorClient.ts index 86c58a2ec883d..7cb4f9da355cb 100644 --- a/clients/client-global-accelerator/GlobalAcceleratorClient.ts +++ b/clients/client-global-accelerator/GlobalAcceleratorClient.ts @@ -1,16 +1,52 @@ +import { + AddCustomRoutingEndpointsCommandInput, + AddCustomRoutingEndpointsCommandOutput, +} from "./commands/AddCustomRoutingEndpointsCommand"; import { AdvertiseByoipCidrCommandInput, AdvertiseByoipCidrCommandOutput } from "./commands/AdvertiseByoipCidrCommand"; +import { + AllowCustomRoutingTrafficCommandInput, + AllowCustomRoutingTrafficCommandOutput, +} from "./commands/AllowCustomRoutingTrafficCommand"; import { CreateAcceleratorCommandInput, CreateAcceleratorCommandOutput } from "./commands/CreateAcceleratorCommand"; +import { + CreateCustomRoutingAcceleratorCommandInput, + CreateCustomRoutingAcceleratorCommandOutput, +} from "./commands/CreateCustomRoutingAcceleratorCommand"; +import { + CreateCustomRoutingEndpointGroupCommandInput, + CreateCustomRoutingEndpointGroupCommandOutput, +} from "./commands/CreateCustomRoutingEndpointGroupCommand"; +import { + CreateCustomRoutingListenerCommandInput, + CreateCustomRoutingListenerCommandOutput, +} from "./commands/CreateCustomRoutingListenerCommand"; import { CreateEndpointGroupCommandInput, CreateEndpointGroupCommandOutput, } from "./commands/CreateEndpointGroupCommand"; import { CreateListenerCommandInput, CreateListenerCommandOutput } from "./commands/CreateListenerCommand"; import { DeleteAcceleratorCommandInput, DeleteAcceleratorCommandOutput } from "./commands/DeleteAcceleratorCommand"; +import { + DeleteCustomRoutingAcceleratorCommandInput, + DeleteCustomRoutingAcceleratorCommandOutput, +} from "./commands/DeleteCustomRoutingAcceleratorCommand"; +import { + DeleteCustomRoutingEndpointGroupCommandInput, + DeleteCustomRoutingEndpointGroupCommandOutput, +} from "./commands/DeleteCustomRoutingEndpointGroupCommand"; +import { + DeleteCustomRoutingListenerCommandInput, + DeleteCustomRoutingListenerCommandOutput, +} from "./commands/DeleteCustomRoutingListenerCommand"; import { DeleteEndpointGroupCommandInput, DeleteEndpointGroupCommandOutput, } from "./commands/DeleteEndpointGroupCommand"; import { DeleteListenerCommandInput, DeleteListenerCommandOutput } from "./commands/DeleteListenerCommand"; +import { + DenyCustomRoutingTrafficCommandInput, + DenyCustomRoutingTrafficCommandOutput, +} from "./commands/DenyCustomRoutingTrafficCommand"; import { DeprovisionByoipCidrCommandInput, DeprovisionByoipCidrCommandOutput, @@ -23,6 +59,22 @@ import { DescribeAcceleratorCommandInput, DescribeAcceleratorCommandOutput, } from "./commands/DescribeAcceleratorCommand"; +import { + DescribeCustomRoutingAcceleratorAttributesCommandInput, + DescribeCustomRoutingAcceleratorAttributesCommandOutput, +} from "./commands/DescribeCustomRoutingAcceleratorAttributesCommand"; +import { + DescribeCustomRoutingAcceleratorCommandInput, + DescribeCustomRoutingAcceleratorCommandOutput, +} from "./commands/DescribeCustomRoutingAcceleratorCommand"; +import { + DescribeCustomRoutingEndpointGroupCommandInput, + DescribeCustomRoutingEndpointGroupCommandOutput, +} from "./commands/DescribeCustomRoutingEndpointGroupCommand"; +import { + DescribeCustomRoutingListenerCommandInput, + DescribeCustomRoutingListenerCommandOutput, +} from "./commands/DescribeCustomRoutingListenerCommand"; import { DescribeEndpointGroupCommandInput, DescribeEndpointGroupCommandOutput, @@ -30,6 +82,26 @@ import { import { DescribeListenerCommandInput, DescribeListenerCommandOutput } from "./commands/DescribeListenerCommand"; import { ListAcceleratorsCommandInput, ListAcceleratorsCommandOutput } from "./commands/ListAcceleratorsCommand"; import { ListByoipCidrsCommandInput, ListByoipCidrsCommandOutput } from "./commands/ListByoipCidrsCommand"; +import { + ListCustomRoutingAcceleratorsCommandInput, + ListCustomRoutingAcceleratorsCommandOutput, +} from "./commands/ListCustomRoutingAcceleratorsCommand"; +import { + ListCustomRoutingEndpointGroupsCommandInput, + ListCustomRoutingEndpointGroupsCommandOutput, +} from "./commands/ListCustomRoutingEndpointGroupsCommand"; +import { + ListCustomRoutingListenersCommandInput, + ListCustomRoutingListenersCommandOutput, +} from "./commands/ListCustomRoutingListenersCommand"; +import { + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput, +} from "./commands/ListCustomRoutingPortMappingsByDestinationCommand"; +import { + ListCustomRoutingPortMappingsCommandInput, + ListCustomRoutingPortMappingsCommandOutput, +} from "./commands/ListCustomRoutingPortMappingsCommand"; import { ListEndpointGroupsCommandInput, ListEndpointGroupsCommandOutput } from "./commands/ListEndpointGroupsCommand"; import { ListListenersCommandInput, ListListenersCommandOutput } from "./commands/ListListenersCommand"; import { @@ -37,6 +109,10 @@ import { ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; import { ProvisionByoipCidrCommandInput, ProvisionByoipCidrCommandOutput } from "./commands/ProvisionByoipCidrCommand"; +import { + RemoveCustomRoutingEndpointsCommandInput, + RemoveCustomRoutingEndpointsCommandOutput, +} from "./commands/RemoveCustomRoutingEndpointsCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { @@ -44,6 +120,18 @@ import { UpdateAcceleratorAttributesCommandOutput, } from "./commands/UpdateAcceleratorAttributesCommand"; import { UpdateAcceleratorCommandInput, UpdateAcceleratorCommandOutput } from "./commands/UpdateAcceleratorCommand"; +import { + UpdateCustomRoutingAcceleratorAttributesCommandInput, + UpdateCustomRoutingAcceleratorAttributesCommandOutput, +} from "./commands/UpdateCustomRoutingAcceleratorAttributesCommand"; +import { + UpdateCustomRoutingAcceleratorCommandInput, + UpdateCustomRoutingAcceleratorCommandOutput, +} from "./commands/UpdateCustomRoutingAcceleratorCommand"; +import { + UpdateCustomRoutingListenerCommandInput, + UpdateCustomRoutingListenerCommandOutput, +} from "./commands/UpdateCustomRoutingListenerCommand"; import { UpdateEndpointGroupCommandInput, UpdateEndpointGroupCommandOutput, @@ -100,55 +188,99 @@ import { } from "@aws-sdk/types"; export type ServiceInputTypes = + | AddCustomRoutingEndpointsCommandInput | AdvertiseByoipCidrCommandInput + | AllowCustomRoutingTrafficCommandInput | CreateAcceleratorCommandInput + | CreateCustomRoutingAcceleratorCommandInput + | CreateCustomRoutingEndpointGroupCommandInput + | CreateCustomRoutingListenerCommandInput | CreateEndpointGroupCommandInput | CreateListenerCommandInput | DeleteAcceleratorCommandInput + | DeleteCustomRoutingAcceleratorCommandInput + | DeleteCustomRoutingEndpointGroupCommandInput + | DeleteCustomRoutingListenerCommandInput | DeleteEndpointGroupCommandInput | DeleteListenerCommandInput + | DenyCustomRoutingTrafficCommandInput | DeprovisionByoipCidrCommandInput | DescribeAcceleratorAttributesCommandInput | DescribeAcceleratorCommandInput + | DescribeCustomRoutingAcceleratorAttributesCommandInput + | DescribeCustomRoutingAcceleratorCommandInput + | DescribeCustomRoutingEndpointGroupCommandInput + | DescribeCustomRoutingListenerCommandInput | DescribeEndpointGroupCommandInput | DescribeListenerCommandInput | ListAcceleratorsCommandInput | ListByoipCidrsCommandInput + | ListCustomRoutingAcceleratorsCommandInput + | ListCustomRoutingEndpointGroupsCommandInput + | ListCustomRoutingListenersCommandInput + | ListCustomRoutingPortMappingsByDestinationCommandInput + | ListCustomRoutingPortMappingsCommandInput | ListEndpointGroupsCommandInput | ListListenersCommandInput | ListTagsForResourceCommandInput | ProvisionByoipCidrCommandInput + | RemoveCustomRoutingEndpointsCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateAcceleratorAttributesCommandInput | UpdateAcceleratorCommandInput + | UpdateCustomRoutingAcceleratorAttributesCommandInput + | UpdateCustomRoutingAcceleratorCommandInput + | UpdateCustomRoutingListenerCommandInput | UpdateEndpointGroupCommandInput | UpdateListenerCommandInput | WithdrawByoipCidrCommandInput; export type ServiceOutputTypes = + | AddCustomRoutingEndpointsCommandOutput | AdvertiseByoipCidrCommandOutput + | AllowCustomRoutingTrafficCommandOutput | CreateAcceleratorCommandOutput + | CreateCustomRoutingAcceleratorCommandOutput + | CreateCustomRoutingEndpointGroupCommandOutput + | CreateCustomRoutingListenerCommandOutput | CreateEndpointGroupCommandOutput | CreateListenerCommandOutput | DeleteAcceleratorCommandOutput + | DeleteCustomRoutingAcceleratorCommandOutput + | DeleteCustomRoutingEndpointGroupCommandOutput + | DeleteCustomRoutingListenerCommandOutput | DeleteEndpointGroupCommandOutput | DeleteListenerCommandOutput + | DenyCustomRoutingTrafficCommandOutput | DeprovisionByoipCidrCommandOutput | DescribeAcceleratorAttributesCommandOutput | DescribeAcceleratorCommandOutput + | DescribeCustomRoutingAcceleratorAttributesCommandOutput + | DescribeCustomRoutingAcceleratorCommandOutput + | DescribeCustomRoutingEndpointGroupCommandOutput + | DescribeCustomRoutingListenerCommandOutput | DescribeEndpointGroupCommandOutput | DescribeListenerCommandOutput | ListAcceleratorsCommandOutput | ListByoipCidrsCommandOutput + | ListCustomRoutingAcceleratorsCommandOutput + | ListCustomRoutingEndpointGroupsCommandOutput + | ListCustomRoutingListenersCommandOutput + | ListCustomRoutingPortMappingsByDestinationCommandOutput + | ListCustomRoutingPortMappingsCommandOutput | ListEndpointGroupsCommandOutput | ListListenersCommandOutput | ListTagsForResourceCommandOutput | ProvisionByoipCidrCommandOutput + | RemoveCustomRoutingEndpointsCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateAcceleratorAttributesCommandOutput | UpdateAcceleratorCommandOutput + | UpdateCustomRoutingAcceleratorAttributesCommandOutput + | UpdateCustomRoutingAcceleratorCommandOutput + | UpdateCustomRoutingListenerCommandOutput | UpdateEndpointGroupCommandOutput | UpdateListenerCommandOutput | WithdrawByoipCidrCommandOutput; @@ -270,99 +402,148 @@ export type GlobalAcceleratorClientResolvedConfig = __SmithyResolvedConfiguratio *

      This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about * AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the * AWS Global Accelerator Developer Guide.

      - *

      AWS Global Accelerator is a service in which you create accelerators to improve availability and performance - * of your applications for local and global users. Global Accelerator directs traffic to optimal endpoints over the AWS - * global network. This improves the availability and performance of your internet applications that are used by - * a global audience. Global Accelerator is a global service that supports endpoints in multiple AWS Regions, which are listed - * in the AWS - * Region Table.

      * + *

      AWS Global Accelerator is a service in which you create accelerators to improve the performance + * of your applications for local and global users. Depending on the type of accelerator you choose, you can + * gain additional benefits.

      + *
        + *
      • + *

        By using a standard accelerator, you can improve availability of your internet applications + * that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the AWS + * global network.

        + *
      • + *
      • + *

        For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you + * can use application logic to directly map one or more users to a specific endpoint among many endpoints.

        + *
      • + *
      * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators.

      *
      - * - *

      By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. (Instead of using the + *

      By default, Global Accelerator provides you with two static IP addresses that you associate with your accelerator. With + * a standard accelerator, instead of using the * IP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges - * that you bring to Global Accelerator.) The static IP addresses are anycast - * from the AWS edge network and distribute incoming application traffic across multiple endpoint resources in multiple - * AWS Regions, which increases the availability of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, EC2 instances, - * or Elastic IP addresses that are located in one AWS Region or multiple Regions.

      + * that you bring to Global Accelerator. The static IP addresses are anycast from the AWS edge network. For a standard accelerator, + * they distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases + * the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, + * Amazon EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions. For custom routing + * accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that + * are virtual private cloud (VPC) subnets.

      + * + * + *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even if you + * disable the accelerator and it no longer accepts or routes traffic. However, when you + * delete an accelerator, you lose the static IP addresses that + * are assigned to it, so you can no longer route traffic by using them. You can use + * IAM policies like tag-based permissions with Global Accelerator to limit the users who have + * permissions to delete an accelerator. For more information, see Tag-based policies.

      + *
      + *

      For standard accelerators, Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based + * on health, client location, and policies that you configure. The service reacts instantly to + * changes in health or configuration to ensure that internet traffic from clients is always + * directed to healthy endpoints.

      * - *

      Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client - * location, and policies that you configure. The service reacts instantly to changes in health or configuration to - * ensure that internet traffic from clients is directed to only healthy endpoints.

      + *

      For a list of the AWS Regions where Global Accelerator and other services are currently supported, see the + * AWS + * Region Table.

      * - *

      Global Accelerator includes components that work together to help you improve performance and availability for your - * applications:

      + *

      AWS Global Accelerator includes the following components:

      *
      - *
      Static IP address
      + *
      Static IP addresses
      *
      - *

      By default, AWS Global Accelerator provides you with a set of static IP addresses that are anycast from the AWS edge network - * and serve as the single fixed entry points for your clients. Or you can configure these entry points to be IPv4 addresses - * from your own IP address ranges that you bring to Global Accelerator (BYOIP). For more information, - * see Bring Your Own IP Addresses (BYOIP) in - * the AWS Global Accelerator Developer Guide. If you already have load balancers, EC2 instances, or - * Elastic IP addresses set up for your applications, you can easily add those to Global Accelerator to allow the - * resources to be accessed by the static IP addresses.

      - * - *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even - * if you disable the accelerator and - * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the - * static IP addresses that are assigned to it, so you can no longer route traffic by using them. - * You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, - * see Authentication and Access Control in - * the AWS Global Accelerator Developer Guide. - *

      - *
      + *

      Global Accelerator provides you with a set of two static IP addresses that are anycast from the AWS edge + * network. If you bring your own IP address range to AWS (BYOIP) to use with a standard accelerator, you + * can instead assign IP addresses from your own pool to use with your accelerator. For more information, + * see + * Bring your own IP addresses (BYOIP) in AWS Global Accelerator.

      + *

      The IP addresses serve as single fixed entry points for your clients. If you already have Elastic + * Load Balancing load balancers, Amazon EC2 instances, or Elastic IP address resources set up for your applications, + * you can easily add those to a standard accelerator in Global Accelerator. This allows Global Accelerator to use static IP addresses + * to access the resources.

      + *

      The static IP addresses remain assigned to your accelerator for as long as it exists, even + * if you disable the accelerator and it no longer accepts or routes traffic. + * However, when you delete an accelerator, you lose the + * static IP addresses that are assigned to it, so you can no longer route + * traffic by using them. You can use IAM policies like tag-based permissions + * with Global Accelerator to delete an accelerator. For more information, see Tag-based policies.

      *
      *
      Accelerator
      *
      - *

      An accelerator directs traffic to optimal endpoints over the AWS global network to improve availability - * and performance for your internet applications that have a global audience. Each accelerator includes one or - * more listeners.

      + *

      An accelerator directs traffic to endpoints over the AWS global network to improve the + * performance of your internet applications. Each accelerator includes one or more listeners.

      + *

      There are two types of accelerators:

      + *
        + *
      • + *

        A standard accelerator directs traffic to the optimal AWS endpoint based + * on several factors, including the user’s location, the health of the endpoint, and the endpoint weights + * that you configure. This improves the availability and performance of your applications. + * Endpoints can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses.

        + *
      • + *
      • + *

        A custom routing accelerator directs traffic to one of possibly thousands of + * Amazon EC2 instances running in a single or multiple virtual private + * clouds (VPCs). With custom routing, listener ports are mapped to + * statically associate port ranges with VPC subnets, which + * allows Global Accelerator to determine an EC2 instance IP address at the time of + * connection. By default, all port mapping destinations in a VPC + * subnet can't receive traffic. You can choose to configure all + * destinations in the subnet to receive traffic, or to specify + * individual port mappings that can receive traffic.

        + *
      • + *
      + *

      For more information, see Types of accelerators.

      *
      *
      DNS name
      *
      - *

      Global Accelerator assigns each accelerator a default Domain Name System (DNS) - * name, similar to a1234567890abcdef.awsglobalaccelerator.com, - * that points to your Global Accelerator static IP addresses. Depending - * on the use case, you can use your accelerator's static IP addresses or DNS name to route traffic - * to your accelerator, or set up DNS records to route traffic using your own custom domain name.

      + *

      Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to + * a1234567890abcdef.awsglobalaccelerator.com, that points to + * the static IP addresses that Global Accelerator assigns to you or that you choose from your + * own IP address range. Depending on the use + * case, you can use your accelerator's static IP addresses or DNS name to + * route traffic to your accelerator, or set up DNS records to route traffic using + * your own custom domain name.

      *
      *
      Network zone
      *
      - *

      A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an - * AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. - * - * When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a - * network zone becomes unavailable due to IP address blocking by certain client networks, or network - * disruptions, then client applications can retry on the healthy static IP address from the other isolated - * network zone.

      + *

      A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an + * AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. + * When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a + * network zone becomes unavailable due to IP address blocking by certain client networks, or network + * disruptions, then client applications can retry on the healthy static IP address from the other isolated + * network zone.

      *
      *
      Listener
      *
      - *

      A listener processes inbound connections from clients to Global Accelerator, based on the protocol and port that you - * configure. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to - * endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions - * that you want to distribute traffic to. Traffic is distributed to optimal endpoints within the endpoint - * groups associated with a listener.

      - *
      + *

      A listener processes inbound connections from clients to Global Accelerator, based on the port (or port range) + * and protocol (or protocols) that you configure. A listener can be configured for TCP, UDP, or both TCP and UDP protocols. Each + * listener has one or more endpoint groups associated with it, and traffic is forwarded + * to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you + * want to distribute traffic to. With a standard accelerator, traffic is distributed to optimal endpoints within the endpoint + * groups associated with a listener.

      + * *
      Endpoint group
      *
      - *

      Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more - * endpoints in the Region. You can increase or reduce the percentage of traffic that would be otherwise - * directed to an endpoint group by adjusting a setting called a traffic dial. The - * traffic dial lets you easily do performance testing or blue/green deployment testing for new releases - * across different AWS Regions, for example.

      + *

      Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or + * more endpoints in the Region. With a standard accelerator, you can increase or reduce the percentage of + * traffic that would be otherwise directed to an endpoint group by adjusting a + * setting called a traffic dial. The traffic dial lets + * you easily do performance testing or blue/green deployment testing, for example, for new + * releases across different AWS Regions.

      *
      *
      Endpoint
      *
      - *

      An endpoint is a Network Load Balancer, Application Load Balancer, EC2 instance, or Elastic IP address. Traffic is routed to endpoints based on several - * factors, including the geo-proximity to the user, the health of the endpoint, and the configuration - * options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are - * numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, - * for example, to do performance testing within a Region.

      + *

      An endpoint is a resource that Global Accelerator directs traffic to.

      + *

      Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP + * addresses. An Application Load Balancer endpoint can be internet-facing or internal. Traffic for + * standard accelerators is routed to endpoints based on the health of the + * endpoint along with configuration options that you choose, such as endpoint + * weights. For each endpoint, you can configure weights, which are numbers + * that you can use to specify the proportion of traffic to route to each one. + * This can be useful, for example, to do performance testing within a + * Region.

      + *

      Endpoints for custom routing accelerators are virtual private cloud (VPC) subnets with one + * or many EC2 instances.

      *
      *
      */ diff --git a/clients/client-global-accelerator/commands/AddCustomRoutingEndpointsCommand.ts b/clients/client-global-accelerator/commands/AddCustomRoutingEndpointsCommand.ts new file mode 100644 index 0000000000000..d1ceb14a09096 --- /dev/null +++ b/clients/client-global-accelerator/commands/AddCustomRoutingEndpointsCommand.ts @@ -0,0 +1,105 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { AddCustomRoutingEndpointsRequest, AddCustomRoutingEndpointsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1AddCustomRoutingEndpointsCommand, + serializeAws_json1_1AddCustomRoutingEndpointsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type AddCustomRoutingEndpointsCommandInput = AddCustomRoutingEndpointsRequest; +export type AddCustomRoutingEndpointsCommandOutput = AddCustomRoutingEndpointsResponse & __MetadataBearer; + +/** + *

      Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.

      + *

      The listener port range must be large enough to support the number of IP addresses that can be + * specified in your subnet. The number of ports required is: subnet size times the number + * of ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener + * port range of at least 255 ports.

      + *

      Note: You must have enough remaining listener ports available to + * map to the subnet ports, or the call will fail with a LimitExceededException.

      + *

      By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all + * destinations to receive traffic, or to specify individual port mappings that can receive + * traffic, see the + * AllowCustomRoutingTraffic operation.

      + */ +export class AddCustomRoutingEndpointsCommand extends $Command< + AddCustomRoutingEndpointsCommandInput, + AddCustomRoutingEndpointsCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AddCustomRoutingEndpointsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "AddCustomRoutingEndpointsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AddCustomRoutingEndpointsRequest.filterSensitiveLog, + outputFilterSensitiveLog: AddCustomRoutingEndpointsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AddCustomRoutingEndpointsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1AddCustomRoutingEndpointsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1AddCustomRoutingEndpointsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/AdvertiseByoipCidrCommand.ts b/clients/client-global-accelerator/commands/AdvertiseByoipCidrCommand.ts index 7a069acd51fae..81c413bd705f1 100644 --- a/clients/client-global-accelerator/commands/AdvertiseByoipCidrCommand.ts +++ b/clients/client-global-accelerator/commands/AdvertiseByoipCidrCommand.ts @@ -27,9 +27,7 @@ export type AdvertiseByoipCidrCommandOutput = AdvertiseByoipCidrResponse & __Met /** *

      Advertises an IPv4 address range that is provisioned for use with your AWS resources * through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to - * the specified addresses starts routing to AWS because of propagation delays. To - * see an AWS CLI example of advertising an address range, scroll down to - * Example.

      + * the specified addresses starts routing to AWS because of propagation delays.

      *

      To stop advertising the BYOIP address range, use * WithdrawByoipCidr.

      *

      For more information, see Bring Your Own diff --git a/clients/client-global-accelerator/commands/AllowCustomRoutingTrafficCommand.ts b/clients/client-global-accelerator/commands/AllowCustomRoutingTrafficCommand.ts new file mode 100644 index 0000000000000..b7bd9cb871dcb --- /dev/null +++ b/clients/client-global-accelerator/commands/AllowCustomRoutingTrafficCommand.ts @@ -0,0 +1,100 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { AllowCustomRoutingTrafficRequest } from "../models/models_0"; +import { + deserializeAws_json1_1AllowCustomRoutingTrafficCommand, + serializeAws_json1_1AllowCustomRoutingTrafficCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type AllowCustomRoutingTrafficCommandInput = AllowCustomRoutingTrafficRequest; +export type AllowCustomRoutingTrafficCommandOutput = __MetadataBearer; + +/** + *

      Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic + * for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a + * specified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports + * outside of the range that you configured for the endpoint group.

      + *

      After you make changes, you can verify that the updates are complete by checking the status of your + * accelerator: the status changes from IN_PROGRESS to DEPLOYED.

      + */ +export class AllowCustomRoutingTrafficCommand extends $Command< + AllowCustomRoutingTrafficCommandInput, + AllowCustomRoutingTrafficCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AllowCustomRoutingTrafficCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "AllowCustomRoutingTrafficCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AllowCustomRoutingTrafficRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AllowCustomRoutingTrafficCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1AllowCustomRoutingTrafficCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1AllowCustomRoutingTrafficCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/CreateAcceleratorCommand.ts b/clients/client-global-accelerator/commands/CreateAcceleratorCommand.ts index fa31871a8429f..7f2d4a0b7b185 100644 --- a/clients/client-global-accelerator/commands/CreateAcceleratorCommand.ts +++ b/clients/client-global-accelerator/commands/CreateAcceleratorCommand.ts @@ -26,8 +26,7 @@ export type CreateAcceleratorCommandOutput = CreateAcceleratorResponse & __Metad /** *

      Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic - * to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers. To see an AWS CLI - * example of creating an accelerator, scroll down to Example.

      + * to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.

      * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the * US West (Oregon) Region to create or update accelerators.

      diff --git a/clients/client-global-accelerator/commands/CreateCustomRoutingAcceleratorCommand.ts b/clients/client-global-accelerator/commands/CreateCustomRoutingAcceleratorCommand.ts new file mode 100644 index 0000000000000..e53efeb46cecb --- /dev/null +++ b/clients/client-global-accelerator/commands/CreateCustomRoutingAcceleratorCommand.ts @@ -0,0 +1,103 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { CreateCustomRoutingAcceleratorRequest, CreateCustomRoutingAcceleratorResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateCustomRoutingAcceleratorCommand, + serializeAws_json1_1CreateCustomRoutingAcceleratorCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateCustomRoutingAcceleratorCommandInput = CreateCustomRoutingAcceleratorRequest; +export type CreateCustomRoutingAcceleratorCommandOutput = CreateCustomRoutingAcceleratorResponse & __MetadataBearer; + +/** + *

      Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands + * of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

      + *

      Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive + * traffic. To enable all destinations to receive traffic, or to specify individual port + * mappings that can receive traffic, see the + * AllowCustomRoutingTraffic operation.

      + */ +export class CreateCustomRoutingAcceleratorCommand extends $Command< + CreateCustomRoutingAcceleratorCommandInput, + CreateCustomRoutingAcceleratorCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateCustomRoutingAcceleratorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "CreateCustomRoutingAcceleratorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateCustomRoutingAcceleratorRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateCustomRoutingAcceleratorResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CreateCustomRoutingAcceleratorCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1CreateCustomRoutingAcceleratorCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateCustomRoutingAcceleratorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/CreateCustomRoutingEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/CreateCustomRoutingEndpointGroupCommand.ts new file mode 100644 index 0000000000000..667f443c60aa2 --- /dev/null +++ b/clients/client-global-accelerator/commands/CreateCustomRoutingEndpointGroupCommand.ts @@ -0,0 +1,100 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { CreateCustomRoutingEndpointGroupRequest, CreateCustomRoutingEndpointGroupResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateCustomRoutingEndpointGroupCommand, + serializeAws_json1_1CreateCustomRoutingEndpointGroupCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateCustomRoutingEndpointGroupCommandInput = CreateCustomRoutingEndpointGroupRequest; +export type CreateCustomRoutingEndpointGroupCommandOutput = CreateCustomRoutingEndpointGroupResponse & __MetadataBearer; + +/** + *

      Create an endpoint group for the specified listener for a custom routing accelerator. + * An endpoint group is a collection of endpoints in one AWS + * Region.

      + */ +export class CreateCustomRoutingEndpointGroupCommand extends $Command< + CreateCustomRoutingEndpointGroupCommandInput, + CreateCustomRoutingEndpointGroupCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateCustomRoutingEndpointGroupCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "CreateCustomRoutingEndpointGroupCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateCustomRoutingEndpointGroupRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateCustomRoutingEndpointGroupResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CreateCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1CreateCustomRoutingEndpointGroupCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateCustomRoutingEndpointGroupCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/CreateCustomRoutingListenerCommand.ts b/clients/client-global-accelerator/commands/CreateCustomRoutingListenerCommand.ts new file mode 100644 index 0000000000000..3ad638825adec --- /dev/null +++ b/clients/client-global-accelerator/commands/CreateCustomRoutingListenerCommand.ts @@ -0,0 +1,96 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { CreateCustomRoutingListenerRequest, CreateCustomRoutingListenerResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateCustomRoutingListenerCommand, + serializeAws_json1_1CreateCustomRoutingListenerCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateCustomRoutingListenerCommandInput = CreateCustomRoutingListenerRequest; +export type CreateCustomRoutingListenerCommandOutput = CreateCustomRoutingListenerResponse & __MetadataBearer; + +/** + *

      Create a listener to process inbound connections from clients to a custom routing accelerator. + * Connections arrive to assigned static IP addresses on the port range that you specify.

      + */ +export class CreateCustomRoutingListenerCommand extends $Command< + CreateCustomRoutingListenerCommandInput, + CreateCustomRoutingListenerCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateCustomRoutingListenerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "CreateCustomRoutingListenerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateCustomRoutingListenerRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateCustomRoutingListenerResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateCustomRoutingListenerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateCustomRoutingListenerCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateCustomRoutingListenerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/CreateEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/CreateEndpointGroupCommand.ts index 43ae86c81f130..7fb423c2fa0fe 100644 --- a/clients/client-global-accelerator/commands/CreateEndpointGroupCommand.ts +++ b/clients/client-global-accelerator/commands/CreateEndpointGroupCommand.ts @@ -27,7 +27,6 @@ export type CreateEndpointGroupCommandOutput = CreateEndpointGroupResponse & __M /** *

      Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS * Region. A resource must be valid and active when you add it as an endpoint.

      - *

      To see an AWS CLI example of creating an endpoint group, scroll down to Example.

      */ export class CreateEndpointGroupCommand extends $Command< CreateEndpointGroupCommandInput, diff --git a/clients/client-global-accelerator/commands/CreateListenerCommand.ts b/clients/client-global-accelerator/commands/CreateListenerCommand.ts index 22f2a2dee6043..483461d5b70da 100644 --- a/clients/client-global-accelerator/commands/CreateListenerCommand.ts +++ b/clients/client-global-accelerator/commands/CreateListenerCommand.ts @@ -26,8 +26,7 @@ export type CreateListenerCommandOutput = CreateListenerResponse & __MetadataBea /** *

      Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned static - * IP addresses on a port, port range, or list of port ranges that you specify. To see an AWS CLI example of creating a - * listener, scroll down to Example.

      + * IP addresses on a port, port range, or list of port ranges that you specify.

      */ export class CreateListenerCommand extends $Command< CreateListenerCommandInput, diff --git a/clients/client-global-accelerator/commands/DeleteAcceleratorCommand.ts b/clients/client-global-accelerator/commands/DeleteAcceleratorCommand.ts index 96f755410690c..7e7a9ce4367cf 100644 --- a/clients/client-global-accelerator/commands/DeleteAcceleratorCommand.ts +++ b/clients/client-global-accelerator/commands/DeleteAcceleratorCommand.ts @@ -31,8 +31,7 @@ export type DeleteAcceleratorCommandOutput = __MetadataBearer; *

      When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. * Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges. *

      - *

      The IP - * addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and + *

      The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the * static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. * As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You diff --git a/clients/client-global-accelerator/commands/DeleteCustomRoutingAcceleratorCommand.ts b/clients/client-global-accelerator/commands/DeleteCustomRoutingAcceleratorCommand.ts new file mode 100644 index 0000000000000..8611c2eb5be40 --- /dev/null +++ b/clients/client-global-accelerator/commands/DeleteCustomRoutingAcceleratorCommand.ts @@ -0,0 +1,111 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DeleteCustomRoutingAcceleratorRequest } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteCustomRoutingAcceleratorCommand, + serializeAws_json1_1DeleteCustomRoutingAcceleratorCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteCustomRoutingAcceleratorCommandInput = DeleteCustomRoutingAcceleratorRequest; +export type DeleteCustomRoutingAcceleratorCommandOutput = __MetadataBearer; + +/** + *

      Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources + * (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

      + * + *

      When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. + *

      + *

      The IP + * addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and + * it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the + * static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. + * As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You + * can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, + * see Authentication and Access Control in + * the AWS Global Accelerator Developer Guide.

      + *
      + */ +export class DeleteCustomRoutingAcceleratorCommand extends $Command< + DeleteCustomRoutingAcceleratorCommandInput, + DeleteCustomRoutingAcceleratorCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCustomRoutingAcceleratorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DeleteCustomRoutingAcceleratorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCustomRoutingAcceleratorRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteCustomRoutingAcceleratorCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteCustomRoutingAcceleratorCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteCustomRoutingAcceleratorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DeleteCustomRoutingEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/DeleteCustomRoutingEndpointGroupCommand.ts new file mode 100644 index 0000000000000..a6dcd84fc42f2 --- /dev/null +++ b/clients/client-global-accelerator/commands/DeleteCustomRoutingEndpointGroupCommand.ts @@ -0,0 +1,98 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DeleteCustomRoutingEndpointGroupRequest } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand, + serializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteCustomRoutingEndpointGroupCommandInput = DeleteCustomRoutingEndpointGroupRequest; +export type DeleteCustomRoutingEndpointGroupCommandOutput = __MetadataBearer; + +/** + *

      Delete an endpoint group from a listener for a custom routing accelerator.

      + */ +export class DeleteCustomRoutingEndpointGroupCommand extends $Command< + DeleteCustomRoutingEndpointGroupCommandInput, + DeleteCustomRoutingEndpointGroupCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCustomRoutingEndpointGroupCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DeleteCustomRoutingEndpointGroupCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCustomRoutingEndpointGroupRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DeleteCustomRoutingListenerCommand.ts b/clients/client-global-accelerator/commands/DeleteCustomRoutingListenerCommand.ts new file mode 100644 index 0000000000000..5b622b4cd2210 --- /dev/null +++ b/clients/client-global-accelerator/commands/DeleteCustomRoutingListenerCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DeleteCustomRoutingListenerRequest } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteCustomRoutingListenerCommand, + serializeAws_json1_1DeleteCustomRoutingListenerCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteCustomRoutingListenerCommandInput = DeleteCustomRoutingListenerRequest; +export type DeleteCustomRoutingListenerCommandOutput = __MetadataBearer; + +/** + *

      Delete a listener for a custom routing accelerator.

      + */ +export class DeleteCustomRoutingListenerCommand extends $Command< + DeleteCustomRoutingListenerCommandInput, + DeleteCustomRoutingListenerCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCustomRoutingListenerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DeleteCustomRoutingListenerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCustomRoutingListenerRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteCustomRoutingListenerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteCustomRoutingListenerCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteCustomRoutingListenerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DenyCustomRoutingTrafficCommand.ts b/clients/client-global-accelerator/commands/DenyCustomRoutingTrafficCommand.ts new file mode 100644 index 0000000000000..80fab1a78765d --- /dev/null +++ b/clients/client-global-accelerator/commands/DenyCustomRoutingTrafficCommand.ts @@ -0,0 +1,97 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DenyCustomRoutingTrafficRequest } from "../models/models_0"; +import { + deserializeAws_json1_1DenyCustomRoutingTrafficCommand, + serializeAws_json1_1DenyCustomRoutingTrafficCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DenyCustomRoutingTrafficCommandInput = DenyCustomRoutingTrafficRequest; +export type DenyCustomRoutingTrafficCommandOutput = __MetadataBearer; + +/** + *

      Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that cannot receive traffic + * for a custom routing accelerator. You can deny traffic to all destinations in the VPC endpoint, or deny traffic to a + * specified list of destination IP addresses and ports. Note that you cannot specify IP addresses + * or ports outside of the range that you configured for the endpoint group.

      + *

      After you make changes, you can verify that the updates are complete by checking the status of your + * accelerator: the status changes from IN_PROGRESS to DEPLOYED.

      + */ +export class DenyCustomRoutingTrafficCommand extends $Command< + DenyCustomRoutingTrafficCommandInput, + DenyCustomRoutingTrafficCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DenyCustomRoutingTrafficCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DenyCustomRoutingTrafficCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DenyCustomRoutingTrafficRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DenyCustomRoutingTrafficCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DenyCustomRoutingTrafficCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DenyCustomRoutingTrafficCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DeprovisionByoipCidrCommand.ts b/clients/client-global-accelerator/commands/DeprovisionByoipCidrCommand.ts index 714df0218920a..909ffebf67f2b 100644 --- a/clients/client-global-accelerator/commands/DeprovisionByoipCidrCommand.ts +++ b/clients/client-global-accelerator/commands/DeprovisionByoipCidrCommand.ts @@ -26,9 +26,7 @@ export type DeprovisionByoipCidrCommandOutput = DeprovisionByoipCidrResponse & _ /** *

      Releases the specified address range that you provisioned to use with your AWS resources - * through bring your own IP addresses (BYOIP) and deletes the corresponding address pool. To - * see an AWS CLI example of deprovisioning an address range, scroll down to - * Example.

      + * through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

      *

      Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have * any accelerators that are using static IP addresses allocated from its address range. *

      diff --git a/clients/client-global-accelerator/commands/DescribeAcceleratorAttributesCommand.ts b/clients/client-global-accelerator/commands/DescribeAcceleratorAttributesCommand.ts index 27c888199aa35..3a20e8c2b8367 100644 --- a/clients/client-global-accelerator/commands/DescribeAcceleratorAttributesCommand.ts +++ b/clients/client-global-accelerator/commands/DescribeAcceleratorAttributesCommand.ts @@ -25,8 +25,8 @@ export type DescribeAcceleratorAttributesCommandInput = DescribeAcceleratorAttri export type DescribeAcceleratorAttributesCommandOutput = DescribeAcceleratorAttributesResponse & __MetadataBearer; /** - *

      Describe the attributes of an accelerator. To see an AWS CLI example of describing the attributes of an accelerator, - * scroll down to Example.

      + *

      Describe the attributes of an accelerator. + *

      */ export class DescribeAcceleratorAttributesCommand extends $Command< DescribeAcceleratorAttributesCommandInput, diff --git a/clients/client-global-accelerator/commands/DescribeAcceleratorCommand.ts b/clients/client-global-accelerator/commands/DescribeAcceleratorCommand.ts index 1658de5f26d9c..d230f8340f501 100644 --- a/clients/client-global-accelerator/commands/DescribeAcceleratorCommand.ts +++ b/clients/client-global-accelerator/commands/DescribeAcceleratorCommand.ts @@ -25,7 +25,7 @@ export type DescribeAcceleratorCommandInput = DescribeAcceleratorRequest; export type DescribeAcceleratorCommandOutput = DescribeAcceleratorResponse & __MetadataBearer; /** - *

      Describe an accelerator. To see an AWS CLI example of describing an accelerator, scroll down to Example.

      + *

      Describe an accelerator.

      */ export class DescribeAcceleratorCommand extends $Command< DescribeAcceleratorCommandInput, diff --git a/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorAttributesCommand.ts b/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorAttributesCommand.ts new file mode 100644 index 0000000000000..d22691002e114 --- /dev/null +++ b/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorAttributesCommand.ts @@ -0,0 +1,105 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { + DescribeCustomRoutingAcceleratorAttributesRequest, + DescribeCustomRoutingAcceleratorAttributesResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand, + serializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeCustomRoutingAcceleratorAttributesCommandInput = DescribeCustomRoutingAcceleratorAttributesRequest; +export type DescribeCustomRoutingAcceleratorAttributesCommandOutput = DescribeCustomRoutingAcceleratorAttributesResponse & + __MetadataBearer; + +/** + *

      Describe the attributes of a custom routing accelerator.

      + */ +export class DescribeCustomRoutingAcceleratorAttributesCommand extends $Command< + DescribeCustomRoutingAcceleratorAttributesCommandInput, + DescribeCustomRoutingAcceleratorAttributesCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeCustomRoutingAcceleratorAttributesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DescribeCustomRoutingAcceleratorAttributesCommandInput, + DescribeCustomRoutingAcceleratorAttributesCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DescribeCustomRoutingAcceleratorAttributesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeCustomRoutingAcceleratorAttributesRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeCustomRoutingAcceleratorAttributesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeCustomRoutingAcceleratorAttributesCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorCommand.ts b/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorCommand.ts new file mode 100644 index 0000000000000..284e8a6f3e48a --- /dev/null +++ b/clients/client-global-accelerator/commands/DescribeCustomRoutingAcceleratorCommand.ts @@ -0,0 +1,98 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DescribeCustomRoutingAcceleratorRequest, DescribeCustomRoutingAcceleratorResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DescribeCustomRoutingAcceleratorCommand, + serializeAws_json1_1DescribeCustomRoutingAcceleratorCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeCustomRoutingAcceleratorCommandInput = DescribeCustomRoutingAcceleratorRequest; +export type DescribeCustomRoutingAcceleratorCommandOutput = DescribeCustomRoutingAcceleratorResponse & __MetadataBearer; + +/** + *

      Describe a custom routing accelerator.

      + */ +export class DescribeCustomRoutingAcceleratorCommand extends $Command< + DescribeCustomRoutingAcceleratorCommandInput, + DescribeCustomRoutingAcceleratorCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeCustomRoutingAcceleratorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DescribeCustomRoutingAcceleratorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeCustomRoutingAcceleratorRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeCustomRoutingAcceleratorResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeCustomRoutingAcceleratorCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeCustomRoutingAcceleratorCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeCustomRoutingAcceleratorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DescribeCustomRoutingEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/DescribeCustomRoutingEndpointGroupCommand.ts new file mode 100644 index 0000000000000..57514e1120121 --- /dev/null +++ b/clients/client-global-accelerator/commands/DescribeCustomRoutingEndpointGroupCommand.ts @@ -0,0 +1,102 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { + DescribeCustomRoutingEndpointGroupRequest, + DescribeCustomRoutingEndpointGroupResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand, + serializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeCustomRoutingEndpointGroupCommandInput = DescribeCustomRoutingEndpointGroupRequest; +export type DescribeCustomRoutingEndpointGroupCommandOutput = DescribeCustomRoutingEndpointGroupResponse & + __MetadataBearer; + +/** + *

      Describe an endpoint group for a custom routing accelerator.

      + */ +export class DescribeCustomRoutingEndpointGroupCommand extends $Command< + DescribeCustomRoutingEndpointGroupCommandInput, + DescribeCustomRoutingEndpointGroupCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeCustomRoutingEndpointGroupCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DescribeCustomRoutingEndpointGroupCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeCustomRoutingEndpointGroupRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeCustomRoutingEndpointGroupResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DescribeCustomRoutingListenerCommand.ts b/clients/client-global-accelerator/commands/DescribeCustomRoutingListenerCommand.ts new file mode 100644 index 0000000000000..e8fb910b6d405 --- /dev/null +++ b/clients/client-global-accelerator/commands/DescribeCustomRoutingListenerCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { DescribeCustomRoutingListenerRequest, DescribeCustomRoutingListenerResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DescribeCustomRoutingListenerCommand, + serializeAws_json1_1DescribeCustomRoutingListenerCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeCustomRoutingListenerCommandInput = DescribeCustomRoutingListenerRequest; +export type DescribeCustomRoutingListenerCommandOutput = DescribeCustomRoutingListenerResponse & __MetadataBearer; + +/** + *

      The description of a listener for a custom routing accelerator.

      + */ +export class DescribeCustomRoutingListenerCommand extends $Command< + DescribeCustomRoutingListenerCommandInput, + DescribeCustomRoutingListenerCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeCustomRoutingListenerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "DescribeCustomRoutingListenerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeCustomRoutingListenerRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeCustomRoutingListenerResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeCustomRoutingListenerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeCustomRoutingListenerCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeCustomRoutingListenerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/DescribeEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/DescribeEndpointGroupCommand.ts index 30735f6bc1988..b6da23bd49d6b 100644 --- a/clients/client-global-accelerator/commands/DescribeEndpointGroupCommand.ts +++ b/clients/client-global-accelerator/commands/DescribeEndpointGroupCommand.ts @@ -25,8 +25,7 @@ export type DescribeEndpointGroupCommandInput = DescribeEndpointGroupRequest; export type DescribeEndpointGroupCommandOutput = DescribeEndpointGroupResponse & __MetadataBearer; /** - *

      Describe an endpoint group. To see an AWS CLI example of describing - * an endpoint group, scroll down to Example.

      + *

      Describe an endpoint group.

      */ export class DescribeEndpointGroupCommand extends $Command< DescribeEndpointGroupCommandInput, diff --git a/clients/client-global-accelerator/commands/DescribeListenerCommand.ts b/clients/client-global-accelerator/commands/DescribeListenerCommand.ts index 707f5da8121e9..10b2cde4522ee 100644 --- a/clients/client-global-accelerator/commands/DescribeListenerCommand.ts +++ b/clients/client-global-accelerator/commands/DescribeListenerCommand.ts @@ -25,7 +25,7 @@ export type DescribeListenerCommandInput = DescribeListenerRequest; export type DescribeListenerCommandOutput = DescribeListenerResponse & __MetadataBearer; /** - *

      Describe a listener. To see an AWS CLI example of describing a listener, scroll down to Example.

      + *

      Describe a listener.

      */ export class DescribeListenerCommand extends $Command< DescribeListenerCommandInput, diff --git a/clients/client-global-accelerator/commands/ListAcceleratorsCommand.ts b/clients/client-global-accelerator/commands/ListAcceleratorsCommand.ts index 79fbea7325741..e9ef5b3064429 100644 --- a/clients/client-global-accelerator/commands/ListAcceleratorsCommand.ts +++ b/clients/client-global-accelerator/commands/ListAcceleratorsCommand.ts @@ -25,8 +25,7 @@ export type ListAcceleratorsCommandInput = ListAcceleratorsRequest; export type ListAcceleratorsCommandOutput = ListAcceleratorsResponse & __MetadataBearer; /** - *

      List the accelerators for an AWS account. To see an AWS CLI example of listing the accelerators for an AWS account, - * scroll down to Example.

      + *

      List the accelerators for an AWS account.

      */ export class ListAcceleratorsCommand extends $Command< ListAcceleratorsCommandInput, diff --git a/clients/client-global-accelerator/commands/ListByoipCidrsCommand.ts b/clients/client-global-accelerator/commands/ListByoipCidrsCommand.ts index 8819d4d4c2440..638294d6cd056 100644 --- a/clients/client-global-accelerator/commands/ListByoipCidrsCommand.ts +++ b/clients/client-global-accelerator/commands/ListByoipCidrsCommand.ts @@ -27,8 +27,6 @@ export type ListByoipCidrsCommandOutput = ListByoipCidrsResponse & __MetadataBea /** *

      Lists the IP address ranges that were specified in calls to ProvisionByoipCidr, including * the current state and a history of state changes.

      - *

      To see an AWS CLI example of listing BYOIP CIDR addresses, scroll down to - * Example.

      */ export class ListByoipCidrsCommand extends $Command< ListByoipCidrsCommandInput, diff --git a/clients/client-global-accelerator/commands/ListCustomRoutingAcceleratorsCommand.ts b/clients/client-global-accelerator/commands/ListCustomRoutingAcceleratorsCommand.ts new file mode 100644 index 0000000000000..9352a048aacdf --- /dev/null +++ b/clients/client-global-accelerator/commands/ListCustomRoutingAcceleratorsCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { ListCustomRoutingAcceleratorsRequest, ListCustomRoutingAcceleratorsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListCustomRoutingAcceleratorsCommand, + serializeAws_json1_1ListCustomRoutingAcceleratorsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListCustomRoutingAcceleratorsCommandInput = ListCustomRoutingAcceleratorsRequest; +export type ListCustomRoutingAcceleratorsCommandOutput = ListCustomRoutingAcceleratorsResponse & __MetadataBearer; + +/** + *

      List the custom routing accelerators for an AWS account.

      + */ +export class ListCustomRoutingAcceleratorsCommand extends $Command< + ListCustomRoutingAcceleratorsCommandInput, + ListCustomRoutingAcceleratorsCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCustomRoutingAcceleratorsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "ListCustomRoutingAcceleratorsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCustomRoutingAcceleratorsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCustomRoutingAcceleratorsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCustomRoutingAcceleratorsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListCustomRoutingAcceleratorsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListCustomRoutingAcceleratorsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/ListCustomRoutingEndpointGroupsCommand.ts b/clients/client-global-accelerator/commands/ListCustomRoutingEndpointGroupsCommand.ts new file mode 100644 index 0000000000000..bfe8806672115 --- /dev/null +++ b/clients/client-global-accelerator/commands/ListCustomRoutingEndpointGroupsCommand.ts @@ -0,0 +1,98 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { ListCustomRoutingEndpointGroupsRequest, ListCustomRoutingEndpointGroupsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListCustomRoutingEndpointGroupsCommand, + serializeAws_json1_1ListCustomRoutingEndpointGroupsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListCustomRoutingEndpointGroupsCommandInput = ListCustomRoutingEndpointGroupsRequest; +export type ListCustomRoutingEndpointGroupsCommandOutput = ListCustomRoutingEndpointGroupsResponse & __MetadataBearer; + +/** + *

      List the endpoint groups that are associated with a listener for a custom routing accelerator.

      + */ +export class ListCustomRoutingEndpointGroupsCommand extends $Command< + ListCustomRoutingEndpointGroupsCommandInput, + ListCustomRoutingEndpointGroupsCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCustomRoutingEndpointGroupsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "ListCustomRoutingEndpointGroupsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCustomRoutingEndpointGroupsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCustomRoutingEndpointGroupsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListCustomRoutingEndpointGroupsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1ListCustomRoutingEndpointGroupsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListCustomRoutingEndpointGroupsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/ListCustomRoutingListenersCommand.ts b/clients/client-global-accelerator/commands/ListCustomRoutingListenersCommand.ts new file mode 100644 index 0000000000000..e0de3297951b1 --- /dev/null +++ b/clients/client-global-accelerator/commands/ListCustomRoutingListenersCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { ListCustomRoutingListenersRequest, ListCustomRoutingListenersResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListCustomRoutingListenersCommand, + serializeAws_json1_1ListCustomRoutingListenersCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListCustomRoutingListenersCommandInput = ListCustomRoutingListenersRequest; +export type ListCustomRoutingListenersCommandOutput = ListCustomRoutingListenersResponse & __MetadataBearer; + +/** + *

      List the listeners for a custom routing accelerator.

      + */ +export class ListCustomRoutingListenersCommand extends $Command< + ListCustomRoutingListenersCommandInput, + ListCustomRoutingListenersCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCustomRoutingListenersCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "ListCustomRoutingListenersCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCustomRoutingListenersRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCustomRoutingListenersResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCustomRoutingListenersCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListCustomRoutingListenersCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListCustomRoutingListenersCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsByDestinationCommand.ts b/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsByDestinationCommand.ts new file mode 100644 index 0000000000000..4ee7150305aff --- /dev/null +++ b/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsByDestinationCommand.ts @@ -0,0 +1,108 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingPortMappingsByDestinationRequest, + ListCustomRoutingPortMappingsByDestinationResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand, + serializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListCustomRoutingPortMappingsByDestinationCommandInput = ListCustomRoutingPortMappingsByDestinationRequest; +export type ListCustomRoutingPortMappingsByDestinationCommandOutput = ListCustomRoutingPortMappingsByDestinationResponse & + __MetadataBearer; + +/** + *

      List the port mappings for a specific EC2 instance (destination) in a VPC subnet endpoint. The + * response is the mappings for one destination IP address. This is useful when your subnet endpoint has mappings that + * span multiple custom routing accelerators in your account, or for scenarios where you only want to + * list the port mappings for a specific destination instance.

      + */ +export class ListCustomRoutingPortMappingsByDestinationCommand extends $Command< + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCustomRoutingPortMappingsByDestinationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "ListCustomRoutingPortMappingsByDestinationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCustomRoutingPortMappingsByDestinationRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCustomRoutingPortMappingsByDestinationResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListCustomRoutingPortMappingsByDestinationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsCommand.ts b/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsCommand.ts new file mode 100644 index 0000000000000..3455c1d824f9d --- /dev/null +++ b/clients/client-global-accelerator/commands/ListCustomRoutingPortMappingsCommand.ts @@ -0,0 +1,103 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { ListCustomRoutingPortMappingsRequest, ListCustomRoutingPortMappingsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListCustomRoutingPortMappingsCommand, + serializeAws_json1_1ListCustomRoutingPortMappingsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListCustomRoutingPortMappingsCommandInput = ListCustomRoutingPortMappingsRequest; +export type ListCustomRoutingPortMappingsCommandOutput = ListCustomRoutingPortMappingsResponse & __MetadataBearer; + +/** + *

      Provides a complete mapping from the public accelerator IP address and port to destination EC2 instance + * IP addresses and ports in the virtual public cloud (VPC) subnet endpoint for a custom routing accelerator. + * For each subnet endpoint that you add, Global Accelerator creates a new static port mapping for the accelerator. The port + * mappings don't change after Global Accelerator generates them, so you can retrieve and cache the full mapping on your servers.

      + *

      If you remove a subnet from your accelerator, Global Accelerator removes (reclaims) the port mappings. If you add a subnet to + * your accelerator, Global Accelerator creates new port mappings (the existing ones don't change). If you add or remove EC2 instances + * in your subnet, the port mappings don't change, because the mappings are created when you add the subnet to Global Accelerator.

      + *

      The mappings also include a flag for each destination denoting which destination IP addresses and + * ports are allowed or denied traffic.

      + */ +export class ListCustomRoutingPortMappingsCommand extends $Command< + ListCustomRoutingPortMappingsCommandInput, + ListCustomRoutingPortMappingsCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCustomRoutingPortMappingsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "ListCustomRoutingPortMappingsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCustomRoutingPortMappingsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCustomRoutingPortMappingsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCustomRoutingPortMappingsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListCustomRoutingPortMappingsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListCustomRoutingPortMappingsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/ListEndpointGroupsCommand.ts b/clients/client-global-accelerator/commands/ListEndpointGroupsCommand.ts index a8a3c3e98347a..2e878fe2d4cfb 100644 --- a/clients/client-global-accelerator/commands/ListEndpointGroupsCommand.ts +++ b/clients/client-global-accelerator/commands/ListEndpointGroupsCommand.ts @@ -25,8 +25,7 @@ export type ListEndpointGroupsCommandInput = ListEndpointGroupsRequest; export type ListEndpointGroupsCommandOutput = ListEndpointGroupsResponse & __MetadataBearer; /** - *

      List the endpoint groups that are associated with a listener. To see an AWS CLI example of listing - * the endpoint groups for listener, scroll down to Example.

      + *

      List the endpoint groups that are associated with a listener.

      */ export class ListEndpointGroupsCommand extends $Command< ListEndpointGroupsCommandInput, diff --git a/clients/client-global-accelerator/commands/ListListenersCommand.ts b/clients/client-global-accelerator/commands/ListListenersCommand.ts index af241aef4d7d4..143eabbcb02fa 100644 --- a/clients/client-global-accelerator/commands/ListListenersCommand.ts +++ b/clients/client-global-accelerator/commands/ListListenersCommand.ts @@ -25,8 +25,7 @@ export type ListListenersCommandInput = ListListenersRequest; export type ListListenersCommandOutput = ListListenersResponse & __MetadataBearer; /** - *

      List the listeners for an accelerator. To see an AWS CLI example of listing the listeners for an accelerator, - * scroll down to Example.

      + *

      List the listeners for an accelerator.

      */ export class ListListenersCommand extends $Command< ListListenersCommandInput, diff --git a/clients/client-global-accelerator/commands/ListTagsForResourceCommand.ts b/clients/client-global-accelerator/commands/ListTagsForResourceCommand.ts index 20b5ef7dde64d..92ce2b18a2bbd 100644 --- a/clients/client-global-accelerator/commands/ListTagsForResourceCommand.ts +++ b/clients/client-global-accelerator/commands/ListTagsForResourceCommand.ts @@ -25,8 +25,7 @@ export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; /** - *

      List all tags for an accelerator. To see an AWS CLI example of listing tags for an accelerator, - * scroll down to Example.

      + *

      List all tags for an accelerator.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      */ diff --git a/clients/client-global-accelerator/commands/ProvisionByoipCidrCommand.ts b/clients/client-global-accelerator/commands/ProvisionByoipCidrCommand.ts index caf47c6ec2b23..6f2288c33c112 100644 --- a/clients/client-global-accelerator/commands/ProvisionByoipCidrCommand.ts +++ b/clients/client-global-accelerator/commands/ProvisionByoipCidrCommand.ts @@ -29,8 +29,6 @@ export type ProvisionByoipCidrCommandOutput = ProvisionByoipCidrResponse & __Met * addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, * it is ready to be advertised using * AdvertiseByoipCidr.

      - *

      To see an AWS CLI example of provisioning an address range for BYOIP, scroll down to - * Example.

      *

      For more information, see Bring Your Own * IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

      */ diff --git a/clients/client-global-accelerator/commands/RemoveCustomRoutingEndpointsCommand.ts b/clients/client-global-accelerator/commands/RemoveCustomRoutingEndpointsCommand.ts new file mode 100644 index 0000000000000..e19430de10bf9 --- /dev/null +++ b/clients/client-global-accelerator/commands/RemoveCustomRoutingEndpointsCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { RemoveCustomRoutingEndpointsRequest } from "../models/models_0"; +import { + deserializeAws_json1_1RemoveCustomRoutingEndpointsCommand, + serializeAws_json1_1RemoveCustomRoutingEndpointsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type RemoveCustomRoutingEndpointsCommandInput = RemoveCustomRoutingEndpointsRequest; +export type RemoveCustomRoutingEndpointsCommandOutput = __MetadataBearer; + +/** + *

      Remove endpoints from a custom routing accelerator.

      + */ +export class RemoveCustomRoutingEndpointsCommand extends $Command< + RemoveCustomRoutingEndpointsCommandInput, + RemoveCustomRoutingEndpointsCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RemoveCustomRoutingEndpointsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "RemoveCustomRoutingEndpointsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RemoveCustomRoutingEndpointsRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RemoveCustomRoutingEndpointsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1RemoveCustomRoutingEndpointsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1RemoveCustomRoutingEndpointsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/TagResourceCommand.ts b/clients/client-global-accelerator/commands/TagResourceCommand.ts index 5f8ac3744883a..c8e46622ffdb9 100644 --- a/clients/client-global-accelerator/commands/TagResourceCommand.ts +++ b/clients/client-global-accelerator/commands/TagResourceCommand.ts @@ -25,8 +25,7 @@ export type TagResourceCommandInput = TagResourceRequest; export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; /** - *

      Add tags to an accelerator resource. To see an AWS CLI example of adding tags to an accelerator, scroll down to - * Example.

      + *

      Add tags to an accelerator resource.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      */ diff --git a/clients/client-global-accelerator/commands/UntagResourceCommand.ts b/clients/client-global-accelerator/commands/UntagResourceCommand.ts index 976b28d06223a..66b1d408cd73b 100644 --- a/clients/client-global-accelerator/commands/UntagResourceCommand.ts +++ b/clients/client-global-accelerator/commands/UntagResourceCommand.ts @@ -25,8 +25,7 @@ export type UntagResourceCommandInput = UntagResourceRequest; export type UntagResourceCommandOutput = UntagResourceResponse & __MetadataBearer; /** - *

      Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. To - * see an AWS CLI example of removing tags from an accelerator, scroll down to Example. + *

      Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. * The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

      *

      For more information, see Tagging * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

      diff --git a/clients/client-global-accelerator/commands/UpdateAcceleratorAttributesCommand.ts b/clients/client-global-accelerator/commands/UpdateAcceleratorAttributesCommand.ts index 2a802f7c00927..89e251f3e8375 100644 --- a/clients/client-global-accelerator/commands/UpdateAcceleratorAttributesCommand.ts +++ b/clients/client-global-accelerator/commands/UpdateAcceleratorAttributesCommand.ts @@ -25,8 +25,7 @@ export type UpdateAcceleratorAttributesCommandInput = UpdateAcceleratorAttribute export type UpdateAcceleratorAttributesCommandOutput = UpdateAcceleratorAttributesResponse & __MetadataBearer; /** - *

      Update the attributes for an accelerator. To see an AWS CLI example of updating an accelerator to enable flow logs, - * scroll down to Example.

      + *

      Update the attributes for an accelerator.

      */ export class UpdateAcceleratorAttributesCommand extends $Command< UpdateAcceleratorAttributesCommandInput, diff --git a/clients/client-global-accelerator/commands/UpdateAcceleratorCommand.ts b/clients/client-global-accelerator/commands/UpdateAcceleratorCommand.ts index 4b36a0c6b9c57..9db2a51c8cc32 100644 --- a/clients/client-global-accelerator/commands/UpdateAcceleratorCommand.ts +++ b/clients/client-global-accelerator/commands/UpdateAcceleratorCommand.ts @@ -25,8 +25,7 @@ export type UpdateAcceleratorCommandInput = UpdateAcceleratorRequest; export type UpdateAcceleratorCommandOutput = UpdateAcceleratorResponse & __MetadataBearer; /** - *

      Update an accelerator. To see an AWS CLI example of updating an accelerator, - * scroll down to Example.

      + *

      Update an accelerator.

      * * *

      Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the diff --git a/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorAttributesCommand.ts b/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorAttributesCommand.ts new file mode 100644 index 0000000000000..59c6d1fcc0f3b --- /dev/null +++ b/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorAttributesCommand.ts @@ -0,0 +1,105 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { + UpdateCustomRoutingAcceleratorAttributesRequest, + UpdateCustomRoutingAcceleratorAttributesResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand, + serializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateCustomRoutingAcceleratorAttributesCommandInput = UpdateCustomRoutingAcceleratorAttributesRequest; +export type UpdateCustomRoutingAcceleratorAttributesCommandOutput = UpdateCustomRoutingAcceleratorAttributesResponse & + __MetadataBearer; + +/** + *

      Update the attributes for a custom routing accelerator.

      + */ +export class UpdateCustomRoutingAcceleratorAttributesCommand extends $Command< + UpdateCustomRoutingAcceleratorAttributesCommandInput, + UpdateCustomRoutingAcceleratorAttributesCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateCustomRoutingAcceleratorAttributesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + UpdateCustomRoutingAcceleratorAttributesCommandInput, + UpdateCustomRoutingAcceleratorAttributesCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "UpdateCustomRoutingAcceleratorAttributesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateCustomRoutingAcceleratorAttributesRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateCustomRoutingAcceleratorAttributesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: UpdateCustomRoutingAcceleratorAttributesCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorCommand.ts b/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorCommand.ts new file mode 100644 index 0000000000000..5862a50f95306 --- /dev/null +++ b/clients/client-global-accelerator/commands/UpdateCustomRoutingAcceleratorCommand.ts @@ -0,0 +1,98 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { UpdateCustomRoutingAcceleratorRequest, UpdateCustomRoutingAcceleratorResponse } from "../models/models_0"; +import { + deserializeAws_json1_1UpdateCustomRoutingAcceleratorCommand, + serializeAws_json1_1UpdateCustomRoutingAcceleratorCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateCustomRoutingAcceleratorCommandInput = UpdateCustomRoutingAcceleratorRequest; +export type UpdateCustomRoutingAcceleratorCommandOutput = UpdateCustomRoutingAcceleratorResponse & __MetadataBearer; + +/** + *

      Update a custom routing accelerator.

      + */ +export class UpdateCustomRoutingAcceleratorCommand extends $Command< + UpdateCustomRoutingAcceleratorCommandInput, + UpdateCustomRoutingAcceleratorCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateCustomRoutingAcceleratorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "UpdateCustomRoutingAcceleratorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateCustomRoutingAcceleratorRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateCustomRoutingAcceleratorResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: UpdateCustomRoutingAcceleratorCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateCustomRoutingAcceleratorCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1UpdateCustomRoutingAcceleratorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/UpdateCustomRoutingListenerCommand.ts b/clients/client-global-accelerator/commands/UpdateCustomRoutingListenerCommand.ts new file mode 100644 index 0000000000000..545da21d8b67b --- /dev/null +++ b/clients/client-global-accelerator/commands/UpdateCustomRoutingListenerCommand.ts @@ -0,0 +1,95 @@ +import { + GlobalAcceleratorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../GlobalAcceleratorClient"; +import { UpdateCustomRoutingListenerRequest, UpdateCustomRoutingListenerResponse } from "../models/models_0"; +import { + deserializeAws_json1_1UpdateCustomRoutingListenerCommand, + serializeAws_json1_1UpdateCustomRoutingListenerCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateCustomRoutingListenerCommandInput = UpdateCustomRoutingListenerRequest; +export type UpdateCustomRoutingListenerCommandOutput = UpdateCustomRoutingListenerResponse & __MetadataBearer; + +/** + *

      Update a listener for a custom routing accelerator.

      + */ +export class UpdateCustomRoutingListenerCommand extends $Command< + UpdateCustomRoutingListenerCommandInput, + UpdateCustomRoutingListenerCommandOutput, + GlobalAcceleratorClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateCustomRoutingListenerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: GlobalAcceleratorClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "GlobalAcceleratorClient"; + const commandName = "UpdateCustomRoutingListenerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateCustomRoutingListenerRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateCustomRoutingListenerResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateCustomRoutingListenerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateCustomRoutingListenerCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1UpdateCustomRoutingListenerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-global-accelerator/commands/UpdateEndpointGroupCommand.ts b/clients/client-global-accelerator/commands/UpdateEndpointGroupCommand.ts index 0ab9c4306a4ad..88c0b72b0e15f 100644 --- a/clients/client-global-accelerator/commands/UpdateEndpointGroupCommand.ts +++ b/clients/client-global-accelerator/commands/UpdateEndpointGroupCommand.ts @@ -26,7 +26,6 @@ export type UpdateEndpointGroupCommandOutput = UpdateEndpointGroupResponse & __M /** *

      Update an endpoint group. A resource must be valid and active when you add it as an endpoint.

      - *

      To see an AWS CLI example of updating an endpoint group, scroll down to Example.

      */ export class UpdateEndpointGroupCommand extends $Command< UpdateEndpointGroupCommandInput, diff --git a/clients/client-global-accelerator/commands/UpdateListenerCommand.ts b/clients/client-global-accelerator/commands/UpdateListenerCommand.ts index bdc8805c7365e..d900df7b65567 100644 --- a/clients/client-global-accelerator/commands/UpdateListenerCommand.ts +++ b/clients/client-global-accelerator/commands/UpdateListenerCommand.ts @@ -25,7 +25,7 @@ export type UpdateListenerCommandInput = UpdateListenerRequest; export type UpdateListenerCommandOutput = UpdateListenerResponse & __MetadataBearer; /** - *

      Update a listener. To see an AWS CLI example of updating listener, scroll down to Example.

      + *

      Update a listener.

      */ export class UpdateListenerCommand extends $Command< UpdateListenerCommandInput, diff --git a/clients/client-global-accelerator/commands/WithdrawByoipCidrCommand.ts b/clients/client-global-accelerator/commands/WithdrawByoipCidrCommand.ts index 6af1345933bbb..b705c2083410f 100644 --- a/clients/client-global-accelerator/commands/WithdrawByoipCidrCommand.ts +++ b/clients/client-global-accelerator/commands/WithdrawByoipCidrCommand.ts @@ -27,8 +27,7 @@ export type WithdrawByoipCidrCommandOutput = WithdrawByoipCidrResponse & __Metad /** *

      Stops advertising an address range that is provisioned as an address pool. * You can perform this operation at most once every 10 seconds, even if you specify different address - * ranges each time. To see an AWS CLI example of withdrawing an address range for BYOIP so - * it will no longer be advertised by AWS, scroll down to Example.

      + * ranges each time.

      *

      It can take a few minutes before traffic to the specified addresses stops routing to AWS because of * propagation delays.

      *

      For more information, see Bring Your Own diff --git a/clients/client-global-accelerator/index.ts b/clients/client-global-accelerator/index.ts index 3281c120ad430..f0efb63bacb42 100644 --- a/clients/client-global-accelerator/index.ts +++ b/clients/client-global-accelerator/index.ts @@ -1,28 +1,59 @@ export * from "./GlobalAcceleratorClient"; export * from "./GlobalAccelerator"; +export * from "./commands/AddCustomRoutingEndpointsCommand"; export * from "./commands/AdvertiseByoipCidrCommand"; +export * from "./commands/AllowCustomRoutingTrafficCommand"; export * from "./commands/CreateAcceleratorCommand"; +export * from "./commands/CreateCustomRoutingAcceleratorCommand"; +export * from "./commands/CreateCustomRoutingEndpointGroupCommand"; +export * from "./commands/CreateCustomRoutingListenerCommand"; export * from "./commands/CreateEndpointGroupCommand"; export * from "./commands/CreateListenerCommand"; export * from "./commands/DeleteAcceleratorCommand"; +export * from "./commands/DeleteCustomRoutingAcceleratorCommand"; +export * from "./commands/DeleteCustomRoutingEndpointGroupCommand"; +export * from "./commands/DeleteCustomRoutingListenerCommand"; export * from "./commands/DeleteEndpointGroupCommand"; export * from "./commands/DeleteListenerCommand"; +export * from "./commands/DenyCustomRoutingTrafficCommand"; export * from "./commands/DeprovisionByoipCidrCommand"; export * from "./commands/DescribeAcceleratorCommand"; export * from "./commands/DescribeAcceleratorAttributesCommand"; +export * from "./commands/DescribeCustomRoutingAcceleratorCommand"; +export * from "./commands/DescribeCustomRoutingAcceleratorAttributesCommand"; +export * from "./commands/DescribeCustomRoutingEndpointGroupCommand"; +export * from "./commands/DescribeCustomRoutingListenerCommand"; export * from "./commands/DescribeEndpointGroupCommand"; export * from "./commands/DescribeListenerCommand"; export * from "./commands/ListAcceleratorsCommand"; +export * from "./pagination/ListAcceleratorsPaginator"; export * from "./commands/ListByoipCidrsCommand"; +export * from "./commands/ListCustomRoutingAcceleratorsCommand"; +export * from "./pagination/ListCustomRoutingAcceleratorsPaginator"; +export * from "./commands/ListCustomRoutingEndpointGroupsCommand"; +export * from "./pagination/ListCustomRoutingEndpointGroupsPaginator"; +export * from "./commands/ListCustomRoutingListenersCommand"; +export * from "./pagination/ListCustomRoutingListenersPaginator"; +export * from "./commands/ListCustomRoutingPortMappingsCommand"; +export * from "./pagination/ListCustomRoutingPortMappingsPaginator"; +export * from "./commands/ListCustomRoutingPortMappingsByDestinationCommand"; +export * from "./pagination/ListCustomRoutingPortMappingsByDestinationPaginator"; export * from "./commands/ListEndpointGroupsCommand"; +export * from "./pagination/ListEndpointGroupsPaginator"; export * from "./commands/ListListenersCommand"; +export * from "./pagination/ListListenersPaginator"; export * from "./commands/ListTagsForResourceCommand"; export * from "./commands/ProvisionByoipCidrCommand"; +export * from "./commands/RemoveCustomRoutingEndpointsCommand"; export * from "./commands/TagResourceCommand"; export * from "./commands/UntagResourceCommand"; export * from "./commands/UpdateAcceleratorCommand"; export * from "./commands/UpdateAcceleratorAttributesCommand"; +export * from "./commands/UpdateCustomRoutingAcceleratorCommand"; +export * from "./commands/UpdateCustomRoutingAcceleratorAttributesCommand"; +export * from "./commands/UpdateCustomRoutingListenerCommand"; export * from "./commands/UpdateEndpointGroupCommand"; export * from "./commands/UpdateListenerCommand"; export * from "./commands/WithdrawByoipCidrCommand"; +export * from "./pagination/Interfaces"; export * from "./models/index"; diff --git a/clients/client-global-accelerator/models/models_0.ts b/clients/client-global-accelerator/models/models_0.ts index f5b8bc19f1cc0..dd0e8a8b57260 100644 --- a/clients/client-global-accelerator/models/models_0.ts +++ b/clients/client-global-accelerator/models/models_0.ts @@ -10,14 +10,14 @@ export enum IpAddressType { */ export interface IpSet { /** - *

      The array of IP addresses in the IP address set. An IP address set can have a maximum of two IP addresses.

      + *

      The types of IP addresses included in this IP set.

      */ - IpAddresses?: string[]; + IpFamily?: string; /** - *

      The types of IP addresses included in this IP set.

      + *

      The array of IP addresses in the IP address set. An IP address set can have a maximum of two IP addresses.

      */ - IpFamily?: string; + IpAddresses?: string[]; } export namespace IpSet { @@ -34,29 +34,15 @@ export type AcceleratorStatus = "DEPLOYED" | "IN_PROGRESS"; */ export interface Accelerator { /** - *

      The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

      - *

      The naming convention for the DNS name is the following: A lowercase letter a, - * followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: - * a1234567890abcdef.awsglobalaccelerator.com.

      - *

      For more information about the default DNS name, see - * Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

      - */ - DnsName?: string; - - /** - *

      The date and time that the accelerator was created.

      - */ - CreatedTime?: Date; - - /** - *

      The date and time that the accelerator was last modified.

      + *

      The Amazon Resource Name (ARN) of the accelerator.

      */ - LastModifiedTime?: Date; + AcceleratorArn?: string; /** - *

      The Amazon Resource Name (ARN) of the accelerator.

      + *

      The name of the accelerator. The name must contain only alphanumeric characters or + * hyphens (-), and must not begin or end with a hyphen.

      */ - AcceleratorArn?: string; + Name?: string; /** *

      The value for the address type must be IPv4. @@ -65,26 +51,40 @@ export interface Accelerator { IpAddressType?: IpAddressType | string; /** - *

      The name of the accelerator. The name must contain only alphanumeric characters or - * hyphens (-), and must not begin or end with a hyphen.

      + *

      Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

      + *

      If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

      */ - Name?: string; + Enabled?: boolean; /** *

      The static IP addresses that Global Accelerator associates with the accelerator.

      */ IpSets?: IpSet[]; + /** + *

      The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

      + *

      The naming convention for the DNS name is the following: A lowercase letter a, + * followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: + * a1234567890abcdef.awsglobalaccelerator.com.

      + *

      For more information about the default DNS name, see + * Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

      + */ + DnsName?: string; + /** *

      Describes the deployment status of the accelerator.

      */ Status?: AcceleratorStatus | string; /** - *

      Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

      - *

      If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

      + *

      The date and time that the accelerator was created.

      */ - Enabled?: boolean; + CreatedTime?: Date; + + /** + *

      The date and time that the accelerator was last modified.

      + */ + LastModifiedTime?: Date; } export namespace Accelerator { @@ -173,6 +173,167 @@ export namespace AccessDeniedException { }); } +/** + *

      The list of endpoint objects. For custom routing, this is a list of virtual private cloud (VPC) subnet IDs.

      + */ +export interface CustomRoutingEndpointConfiguration { + /** + *

      An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) + * subnet ID.

      + */ + EndpointId?: string; +} + +export namespace CustomRoutingEndpointConfiguration { + export const filterSensitiveLog = (obj: CustomRoutingEndpointConfiguration): any => ({ + ...obj, + }); +} + +export interface AddCustomRoutingEndpointsRequest { + /** + *

      The list of endpoint objects to add to a custom routing accelerator.

      + */ + EndpointConfigurations: CustomRoutingEndpointConfiguration[] | undefined; + + /** + *

      The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.

      + */ + EndpointGroupArn: string | undefined; +} + +export namespace AddCustomRoutingEndpointsRequest { + export const filterSensitiveLog = (obj: AddCustomRoutingEndpointsRequest): any => ({ + ...obj, + }); +} + +/** + *

      A complex type for an endpoint for a custom routing accelerator. Each endpoint group can include one or more endpoints, + * which are virtual private cloud (VPC) subnets.

      + */ +export interface CustomRoutingEndpointDescription { + /** + *

      An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) + * subnet ID.

      + */ + EndpointId?: string; +} + +export namespace CustomRoutingEndpointDescription { + export const filterSensitiveLog = (obj: CustomRoutingEndpointDescription): any => ({ + ...obj, + }); +} + +export interface AddCustomRoutingEndpointsResponse { + /** + *

      The endpoint objects added to the custom routing accelerator.

      + */ + EndpointDescriptions?: CustomRoutingEndpointDescription[]; + + /** + *

      The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.

      + */ + EndpointGroupArn?: string; +} + +export namespace AddCustomRoutingEndpointsResponse { + export const filterSensitiveLog = (obj: AddCustomRoutingEndpointsResponse): any => ({ + ...obj, + }); +} + +/** + *

      You can't use both of those options.

      + */ +export interface ConflictException extends __SmithyException, $MetadataBearer { + name: "ConflictException"; + $fault: "client"; + Message?: string; +} + +export namespace ConflictException { + export const filterSensitiveLog = (obj: ConflictException): any => ({ + ...obj, + }); +} + +/** + *

      The endpoint that you specified doesn't exist.

      + */ +export interface EndpointAlreadyExistsException extends __SmithyException, $MetadataBearer { + name: "EndpointAlreadyExistsException"; + $fault: "client"; + Message?: string; +} + +export namespace EndpointAlreadyExistsException { + export const filterSensitiveLog = (obj: EndpointAlreadyExistsException): any => ({ + ...obj, + }); +} + +/** + *

      The endpoint group that you specified doesn't exist.

      + */ +export interface EndpointGroupNotFoundException extends __SmithyException, $MetadataBearer { + name: "EndpointGroupNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace EndpointGroupNotFoundException { + export const filterSensitiveLog = (obj: EndpointGroupNotFoundException): any => ({ + ...obj, + }); +} + +/** + *

      There was an internal error for AWS Global Accelerator.

      + */ +export interface InternalServiceErrorException extends __SmithyException, $MetadataBearer { + name: "InternalServiceErrorException"; + $fault: "server"; + Message?: string; +} + +export namespace InternalServiceErrorException { + export const filterSensitiveLog = (obj: InternalServiceErrorException): any => ({ + ...obj, + }); +} + +/** + *

      An argument that you specified is invalid.

      + */ +export interface InvalidArgumentException extends __SmithyException, $MetadataBearer { + name: "InvalidArgumentException"; + $fault: "client"; + Message?: string; +} + +export namespace InvalidArgumentException { + export const filterSensitiveLog = (obj: InvalidArgumentException): any => ({ + ...obj, + }); +} + +/** + *

      Processing your request would cause you to exceed an AWS Global Accelerator limit.

      + */ +export interface LimitExceededException extends __SmithyException, $MetadataBearer { + name: "LimitExceededException"; + $fault: "client"; + Message?: string; +} + +export namespace LimitExceededException { + export const filterSensitiveLog = (obj: LimitExceededException): any => ({ + ...obj, + }); +} + export interface AdvertiseByoipCidrRequest { /** *

      The address range, in CIDR notation. This must be the exact range that you provisioned. @@ -299,6 +460,11 @@ export enum ByoipCidrState { *

    */ export interface ByoipCidr { + /** + *

    The address range, in CIDR notation.

    + */ + Cidr?: string; + /** *

    The state of the address pool.

    */ @@ -309,11 +475,6 @@ export interface ByoipCidr { * through bring your own IP address (BYOIP).

    */ Events?: ByoipCidrEvent[]; - - /** - *

    The address range, in CIDR notation.

    - */ - Cidr?: string; } export namespace ByoipCidr { @@ -366,32 +527,46 @@ export namespace IncorrectCidrStateException { }); } -/** - *

    There was an internal error for AWS Global Accelerator.

    - */ -export interface InternalServiceErrorException extends __SmithyException, $MetadataBearer { - name: "InternalServiceErrorException"; - $fault: "server"; - Message?: string; -} +export interface AllowCustomRoutingTrafficRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group.

    + */ + EndpointGroupArn: string | undefined; -export namespace InternalServiceErrorException { - export const filterSensitiveLog = (obj: InternalServiceErrorException): any => ({ - ...obj, - }); -} + /** + *

    An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.

    + */ + EndpointId: string | undefined; -/** - *

    An argument that you specified is invalid.

    - */ -export interface InvalidArgumentException extends __SmithyException, $MetadataBearer { - name: "InvalidArgumentException"; - $fault: "client"; - Message?: string; + /** + *

    A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive + * traffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.

    + *

    + * DestinationAddresses is required if AllowAllTrafficToEndpoint is FALSE or is + * not specified.

    + */ + DestinationAddresses?: string[]; + + /** + *

    A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.

    + */ + DestinationPorts?: number[]; + + /** + *

    Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic + * from a custom routing accelerator. The value is TRUE or FALSE.

    + *

    When set to TRUE, all destinations in the custom routing VPC subnet can receive traffic. Note + * that you cannot specify destination IP addresses and ports when the value is set to TRUE.

    + *

    When set to FALSE (or not specified), you must specify a list of destination IP addresses that are allowed + * to receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is + * the same as the ports configured for the endpoint group.

    + *

    The default value is FALSE.

    + */ + AllowAllTrafficToEndpoint?: boolean; } -export namespace InvalidArgumentException { - export const filterSensitiveLog = (obj: InvalidArgumentException): any => ({ +export namespace AllowCustomRoutingTrafficRequest { + export const filterSensitiveLog = (obj: AllowCustomRoutingTrafficRequest): any => ({ ...obj, }); } @@ -459,14 +634,14 @@ export type ClientAffinity = "NONE" | "SOURCE_IP"; */ export interface Tag { /** - *

    A string that contains a Tag value.

    + *

    A string that contains a Tag key.

    */ - Value: string | undefined; + Key: string | undefined; /** - *

    A string that contains a Tag key.

    + *

    A string that contains a Tag value.

    */ - Key: string | undefined; + Value: string | undefined; } export namespace Tag { @@ -477,10 +652,15 @@ export namespace Tag { export interface CreateAcceleratorRequest { /** - *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    - *

    If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    + *

    The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or + * hyphens (-), and must not begin or end with a hyphen.

    */ - Enabled?: boolean; + Name: string | undefined; + + /** + *

    The value for the address type must be IPv4.

    + */ + IpAddressType?: IpAddressType | string; /** *

    Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses @@ -497,29 +677,23 @@ export interface CreateAcceleratorRequest { IpAddresses?: string[]; /** - *

    The value for the address type must be IPv4. - *

    + *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    + *

    If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    */ - IpAddressType?: IpAddressType | string; - - /** - *

    Create tags for an accelerator.

    - *

    For more information, see Tagging - * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    - */ - Tags?: Tag[]; - - /** - *

    The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or - * hyphens (-), and must not begin or end with a hyphen.

    - */ - Name: string | undefined; + Enabled?: boolean; /** *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the * uniqueness—of an accelerator.

    */ IdempotencyToken?: string; + + /** + *

    Create tags for an accelerator.

    + *

    For more information, see Tagging + * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    + */ + Tags?: Tag[]; } export namespace CreateAcceleratorRequest { @@ -541,337 +715,260 @@ export namespace CreateAcceleratorResponse { }); } -/** - *

    Processing your request would cause you to exceed an AWS Global Accelerator limit.

    - */ -export interface LimitExceededException extends __SmithyException, $MetadataBearer { - name: "LimitExceededException"; - $fault: "client"; - Message?: string; -} +export interface CreateCustomRoutingAcceleratorRequest { + /** + *

    The name of a custom routing accelerator. The name can have a maximum of 64 characters, must contain + * only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

    + */ + Name: string | undefined; -export namespace LimitExceededException { - export const filterSensitiveLog = (obj: LimitExceededException): any => ({ - ...obj, - }); -} + /** + *

    The value for the address type must be IPv4.

    + */ + IpAddressType?: IpAddressType | string; -/** - *

    A complex type for endpoints. A resource must be valid and active when you add it as an endpoint.

    - */ -export interface EndpointConfiguration { /** - *

    An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon - * Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address - * allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must be valid and active - * when you add it as an endpoint.

    - *

    An Application Load Balancer can be either internal or internet-facing.

    + *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    + *

    If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    */ - EndpointId?: string; + Enabled?: boolean; /** - *

    Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. - * The value is true or false. The default value is true for new accelerators.

    - *

    If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as - * traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

    - *

    For more information, see - * Preserve Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    + *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that + * is, the uniqueness—of the request.

    */ - ClientIPPreservationEnabled?: boolean; + IdempotencyToken?: string; /** - *

    The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic - * based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The - * result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second - * and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the - * AWS Global Accelerator Developer Guide.

    + *

    Create tags for an accelerator.

    + *

    For more information, see Tagging + * in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    */ - Weight?: number; + Tags?: Tag[]; } -export namespace EndpointConfiguration { - export const filterSensitiveLog = (obj: EndpointConfiguration): any => ({ +export namespace CreateCustomRoutingAcceleratorRequest { + export const filterSensitiveLog = (obj: CreateCustomRoutingAcceleratorRequest): any => ({ ...obj, }); } -export enum HealthCheckProtocol { - HTTP = "HTTP", - HTTPS = "HTTPS", - TCP = "TCP", -} +export type CustomRoutingAcceleratorStatus = "DEPLOYED" | "IN_PROGRESS"; /** - *

    Override specific listener ports used to route traffic to endpoints that are part of an endpoint group. - * For example, you can create a port override in which the listener - * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 - * and 1443, respectively, on the endpoints.

    - *

    For more information, see - * Port overrides in the AWS Global Accelerator Developer Guide.

    + *

    Attributes of a custom routing accelerator.

    */ -export interface PortOverride { +export interface CustomRoutingAccelerator { /** - *

    The listener port that you want to map to a specific endpoint port. This is the port that user traffic - * arrives to the Global Accelerator on.

    + *

    The Amazon Resource Name (ARN) of the custom routing accelerator.

    */ - ListenerPort?: number; + AcceleratorArn?: string; /** - *

    The endpoint port that you want a listener port to be mapped to. This is the port on the endpoint, - * such as the Application Load Balancer or Amazon EC2 instance.

    + *

    The name of the accelerator. The name must contain only alphanumeric characters or + * hyphens (-), and must not begin or end with a hyphen.

    */ - EndpointPort?: number; -} - -export namespace PortOverride { - export const filterSensitiveLog = (obj: PortOverride): any => ({ - ...obj, - }); -} + Name?: string; -export interface CreateEndpointGroupRequest { /** - *

    The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port - * is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the - * first port in the list.

    + *

    The value for the address type must be IPv4.

    */ - HealthCheckPort?: number; + IpAddressType?: IpAddressType | string; /** - *

    The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an - * unhealthy endpoint to healthy. The default value is 3.

    + *

    Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

    + *

    If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

    */ - ThresholdCount?: number; + Enabled?: boolean; /** - *

    The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for - * this listener.

    - *

    Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is - * applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

    - *

    The default value is 100.

    + *

    The static IP addresses that Global Accelerator associates with the accelerator.

    */ - TrafficDialPercentage?: number; + IpSets?: IpSet[]; /** - *

    If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The - * default value is slash (/).

    + *

    The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

    + *

    The naming convention for the DNS name is the following: A lowercase letter a, + * followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: + * a1234567890abcdef.awsglobalaccelerator.com.

    + *

    For more information about the default DNS name, see + * Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

    */ - HealthCheckPath?: string; + DnsName?: string; /** - *

    The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a - * specific Region.

    + *

    Describes the deployment status of the accelerator.

    */ - EndpointGroupRegion: string | undefined; + Status?: CustomRoutingAcceleratorStatus | string; /** - *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the - * uniqueness—of the request.

    + *

    The date and time that the accelerator was created.

    */ - IdempotencyToken?: string; + CreatedTime?: Date; /** - *

    Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. - * For example, you can create a port override in which the listener - * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 - * and 1443, respectively, on the endpoints.

    - *

    For more information, see - * Port overrides in the AWS Global Accelerator Developer Guide.

    + *

    The date and time that the accelerator was last modified.

    */ - PortOverrides?: PortOverride[]; + LastModifiedTime?: Date; +} + +export namespace CustomRoutingAccelerator { + export const filterSensitiveLog = (obj: CustomRoutingAccelerator): any => ({ + ...obj, + }); +} +export interface CreateCustomRoutingAcceleratorResponse { /** - *

    The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

    + *

    The accelerator that is created.

    */ - HealthCheckIntervalSeconds?: number; + Accelerator?: CustomRoutingAccelerator; +} + +export namespace CreateCustomRoutingAcceleratorResponse { + export const filterSensitiveLog = (obj: CreateCustomRoutingAcceleratorResponse): any => ({ + ...obj, + }); +} + +export enum CustomRoutingProtocol { + TCP = "TCP", + UDP = "UDP", +} +/** + *

    For a custom routing accelerator, sets the port range and protocol for all endpoints (virtual + * private cloud subnets) in an endpoint group to accept client traffic on.

    + */ +export interface CustomRoutingDestinationConfiguration { /** - *

    The list of endpoint objects.

    + *

    The first port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

    */ - EndpointConfigurations?: EndpointConfiguration[]; + FromPort: number | undefined; /** - *

    The Amazon Resource Name (ARN) of the listener.

    + *

    The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

    */ - ListenerArn: string | undefined; + ToPort: number | undefined; /** - *

    The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default - * value is TCP.

    + *

    The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either TCP or UDP.

    */ - HealthCheckProtocol?: HealthCheckProtocol | string; + Protocols: (CustomRoutingProtocol | string)[] | undefined; } -export namespace CreateEndpointGroupRequest { - export const filterSensitiveLog = (obj: CreateEndpointGroupRequest): any => ({ +export namespace CustomRoutingDestinationConfiguration { + export const filterSensitiveLog = (obj: CustomRoutingDestinationConfiguration): any => ({ ...obj, }); } -export type HealthState = "HEALTHY" | "INITIAL" | "UNHEALTHY"; - -/** - *

    A complex type for an endpoint. Each endpoint group can include one or more endpoints, such as load - * balancers.

    - */ -export interface EndpointDescription { - /** - *

    The reason code associated with why the endpoint is not healthy. If the endpoint state is healthy, a reason code is - * not provided.

    - *

    If the endpoint state is unhealthy, the reason code can be one of the following - * values:

    - *
      - *
    • - *

      - * Timeout: The health check requests to the endpoint are timing out before - * returning a status.

      - *
    • - *
    • - *

      - * Failed: The health check failed, for example because the endpoint response - * was invalid (malformed).

      - *
    • - *
    - *

    If the endpoint state is initial, the reason code can be one of the following - * values:

    - *
      - *
    • - *

      - * ProvisioningInProgress: The endpoint is in the process of being - * provisioned.

      - *
    • - *
    • - *

      - * InitialHealthChecking: Global Accelerator is still setting up the minimum number of - * health checks for the endpoint that are required to determine its health status.

      - *
    • - *
    - */ - HealthReason?: string; - +export interface CreateCustomRoutingEndpointGroupRequest { /** - *

    The health status of the endpoint.

    + *

    The Amazon Resource Name (ARN) of the listener for a custom routing endpoint.

    */ - HealthState?: HealthState | string; + ListenerArn: string | undefined; /** - *

    An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon - * Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address - * allocation ID. For EC2 instances, this is the EC2 instance ID.

    - *

    An Application Load Balancer can be either internal or internet-facing.

    + *

    The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a + * specific Region.

    */ - EndpointId?: string; + EndpointGroupRegion: string | undefined; /** - *

    Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. - * The value is true or false. The default value is true for new accelerators.

    - *

    If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as - * traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

    - *

    For more information, see - * Viewing Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    + *

    Sets the port range and protocol for all endpoints (virtual private cloud subnets) in a custom routing endpoint group to accept + * client traffic on.

    */ - ClientIPPreservationEnabled?: boolean; + DestinationConfigurations: CustomRoutingDestinationConfiguration[] | undefined; /** - *

    The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic - * based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The - * result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second - * and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the - * AWS Global Accelerator Developer Guide.

    + *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the + * uniqueness—of the request.

    */ - Weight?: number; + IdempotencyToken?: string; } -export namespace EndpointDescription { - export const filterSensitiveLog = (obj: EndpointDescription): any => ({ +export namespace CreateCustomRoutingEndpointGroupRequest { + export const filterSensitiveLog = (obj: CreateCustomRoutingEndpointGroupRequest): any => ({ ...obj, }); } +export enum Protocol { + TCP = "TCP", + UDP = "UDP", +} + /** - *

    A complex type for the endpoint group. An AWS Region can have only one endpoint group for a specific listener. - *

    + *

    For a custom routing accelerator, describes the port range and protocol for all endpoints + * (virtual private cloud subnets) in an endpoint group to accept client traffic on.

    */ -export interface EndpointGroup { +export interface CustomRoutingDestinationDescription { /** - *

    The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for - * this listener.

    - *

    Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is - * applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

    - *

    The default value is 100.

    + *

    The first port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

    */ - TrafficDialPercentage?: number; + FromPort?: number; /** - *

    The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default - * value is TCP.

    + *

    The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

    */ - HealthCheckProtocol?: HealthCheckProtocol | string; + ToPort?: number; /** - *

    The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.

    - * - *

    The default port is the port for the listener that this endpoint group is associated with. If the listener port is a - * list, Global Accelerator uses the first specified port in the list of ports.

    + *

    The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either TCP or UDP.

    */ - HealthCheckPort?: number; + Protocols?: (Protocol | string)[]; +} + +export namespace CustomRoutingDestinationDescription { + export const filterSensitiveLog = (obj: CustomRoutingDestinationDescription): any => ({ + ...obj, + }); +} +/** + *

    A complex type for the endpoint group for a custom routing accelerator. An AWS Region can have only one endpoint group for a specific listener. + *

    + */ +export interface CustomRoutingEndpointGroup { /** - *

    The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an - * unhealthy endpoint to healthy. The default value is 3.

    + *

    The Amazon Resource Name (ARN) of the endpoint group.

    */ - ThresholdCount?: number; + EndpointGroupArn?: string; /** - *

    If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the - * endpoints for health checks. The default is slash (/).

    + *

    The AWS Region where the endpoint group is located.

    */ - HealthCheckPath?: string; + EndpointGroupRegion?: string; /** - *

    The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.

    + *

    For a custom routing accelerator, describes the port range and protocol for all endpoints + * (virtual private cloud subnets) in an endpoint group to accept client traffic on.

    */ - HealthCheckIntervalSeconds?: number; + DestinationDescriptions?: CustomRoutingDestinationDescription[]; /** - *

    Allows you to override the destination ports used to route traffic to an endpoint. - * Using a port override lets you to map a list of external destination ports (that your - * users send traffic to) to a list of internal destination ports that you want an application - * endpoint to receive traffic on.

    + *

    For a custom routing accelerator, describes the endpoints (virtual private cloud subnets) in an + * endpoint group to accept client traffic on.

    */ - PortOverrides?: PortOverride[]; - - /** - *

    The AWS Region where the endpoint group is located.

    - */ - EndpointGroupRegion?: string; - - /** - *

    The list of endpoint objects.

    - */ - EndpointDescriptions?: EndpointDescription[]; - - /** - *

    The Amazon Resource Name (ARN) of the endpoint group.

    - */ - EndpointGroupArn?: string; + EndpointDescriptions?: CustomRoutingEndpointDescription[]; } -export namespace EndpointGroup { - export const filterSensitiveLog = (obj: EndpointGroup): any => ({ +export namespace CustomRoutingEndpointGroup { + export const filterSensitiveLog = (obj: CustomRoutingEndpointGroup): any => ({ ...obj, }); } -export interface CreateEndpointGroupResponse { +export interface CreateCustomRoutingEndpointGroupResponse { /** - *

    The information about the endpoint group that was created.

    + *

    The information about the endpoint group created for a custom routing accelerator.

    */ - EndpointGroup?: EndpointGroup; + EndpointGroup?: CustomRoutingEndpointGroup; } -export namespace CreateEndpointGroupResponse { - export const filterSensitiveLog = (obj: CreateEndpointGroupResponse): any => ({ +export namespace CreateCustomRoutingEndpointGroupResponse { + export const filterSensitiveLog = (obj: CreateCustomRoutingEndpointGroupResponse): any => ({ ...obj, }); } @@ -891,6 +988,21 @@ export namespace EndpointGroupAlreadyExistsException { }); } +/** + *

    The port numbers that you specified are not valid numbers or are not unique for this accelerator.

    + */ +export interface InvalidPortRangeException extends __SmithyException, $MetadataBearer { + name: "InvalidPortRangeException"; + $fault: "client"; + Message?: string; +} + +export namespace InvalidPortRangeException { + export const filterSensitiveLog = (obj: InvalidPortRangeException): any => ({ + ...obj, + }); +} + /** *

    The listener that you specified doesn't exist.

    */ @@ -927,331 +1039,1229 @@ export namespace PortRange { }); } -export enum Protocol { - TCP = "TCP", - UDP = "UDP", -} +export interface CreateCustomRoutingListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the accelerator for a custom routing listener.

    + */ + AcceleratorArn: string | undefined; + + /** + *

    The port range to support for connections from clients to your accelerator.

    + *

    Separately, you set port ranges for endpoints. For more information, see About + * endpoints for custom routing accelerators.

    + */ + PortRanges: PortRange[] | undefined; -export interface CreateListenerRequest { /** *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the - * uniqueness—of the request.

    + * uniqueness—of the request.

    */ IdempotencyToken?: string; +} + +export namespace CreateCustomRoutingListenerRequest { + export const filterSensitiveLog = (obj: CreateCustomRoutingListenerRequest): any => ({ + ...obj, + }); +} +/** + *

    A complex type for a listener for a custom routing accelerator.

    + */ +export interface CustomRoutingListener { /** - *

    The Amazon Resource Name (ARN) of your accelerator.

    + *

    The Amazon Resource Name (ARN) of the listener.

    */ - AcceleratorArn: string | undefined; + ListenerArn?: string; /** - *

    The list of port ranges to support for connections from clients to your accelerator.

    + *

    The port range to support for connections from clients to your accelerator.

    + *

    Separately, you set port ranges for endpoints. For more information, see About + * endpoints for custom routing accelerators.

    */ - PortRanges: PortRange[] | undefined; + PortRanges?: PortRange[]; +} + +export namespace CustomRoutingListener { + export const filterSensitiveLog = (obj: CustomRoutingListener): any => ({ + ...obj, + }); +} +export interface CreateCustomRoutingListenerResponse { /** - *

    Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, - * regardless of the port and protocol of the client request. Client affinity gives you control over whether to always - * route each client to the same specific endpoint.

    - *

    AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client - * affinity is NONE, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, - * destination IP address, destination port, and protocol—to select the hash value, and then chooses the best - * endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not - * be always routed to the same endpoint because the hash value changes.

    - *

    If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP - * instead. When you use the SOURCE_IP setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— - * source (client) IP address and destination IP address—to select the hash value.

    - *

    The default value is NONE.

    + *

    The listener that you've created for a custom routing accelerator.

    */ - ClientAffinity?: ClientAffinity | string; + Listener?: CustomRoutingListener; +} + +export namespace CreateCustomRoutingListenerResponse { + export const filterSensitiveLog = (obj: CreateCustomRoutingListenerResponse): any => ({ + ...obj, + }); +} +/** + *

    A complex type for endpoints. A resource must be valid and active when you add it as an endpoint.

    + */ +export interface EndpointConfiguration { /** - *

    The protocol for connections from clients to your accelerator.

    + *

    An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon + * Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address + * allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must be valid and active + * when you add it as an endpoint.

    + *

    An Application Load Balancer can be either internal or internet-facing.

    */ - Protocol: Protocol | string | undefined; + EndpointId?: string; + + /** + *

    The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic + * based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The + * result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second + * and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the + * AWS Global Accelerator Developer Guide.

    + */ + Weight?: number; + + /** + *

    Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. + * The value is true or false. The default value is true for new accelerators.

    + *

    If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as + * traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

    + *

    For more information, see + * Preserve Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    + */ + ClientIPPreservationEnabled?: boolean; } -export namespace CreateListenerRequest { - export const filterSensitiveLog = (obj: CreateListenerRequest): any => ({ +export namespace EndpointConfiguration { + export const filterSensitiveLog = (obj: EndpointConfiguration): any => ({ ...obj, }); } +export enum HealthCheckProtocol { + HTTP = "HTTP", + HTTPS = "HTTPS", + TCP = "TCP", +} + /** - *

    A complex type for a listener.

    + *

    Override specific listener ports used to route traffic to endpoints that are part of an endpoint group. + * For example, you can create a port override in which the listener + * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 + * and 1443, respectively, on the endpoints.

    + *

    For more information, see + * Port overrides in the AWS Global Accelerator Developer Guide.

    */ -export interface Listener { +export interface PortOverride { + /** + *

    The listener port that you want to map to a specific endpoint port. This is the port that user traffic + * arrives to the Global Accelerator on.

    + */ + ListenerPort?: number; + + /** + *

    The endpoint port that you want a listener port to be mapped to. This is the port on the endpoint, + * such as the Application Load Balancer or Amazon EC2 instance.

    + */ + EndpointPort?: number; +} + +export namespace PortOverride { + export const filterSensitiveLog = (obj: PortOverride): any => ({ + ...obj, + }); +} + +export interface CreateEndpointGroupRequest { /** *

    The Amazon Resource Name (ARN) of the listener.

    */ - ListenerArn?: string; + ListenerArn: string | undefined; /** - *

    The protocol for the connections from clients to the accelerator.

    + *

    The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a + * specific Region.

    */ - Protocol?: Protocol | string; + EndpointGroupRegion: string | undefined; /** - *

    The list of port ranges for the connections from clients to the accelerator.

    + *

    The list of endpoint objects.

    */ - PortRanges?: PortRange[]; + EndpointConfigurations?: EndpointConfiguration[]; /** - *

    Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, - * regardless of the port and protocol of the client request. Client affinity gives you control over whether to always - * route each client to the same specific endpoint.

    - *

    AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client - * affinity is NONE, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, - * destination IP address, destination port, and protocol—to select the hash value, and then chooses the best - * endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not - * be always routed to the same endpoint because the hash value changes.

    - *

    If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP - * instead. When you use the SOURCE_IP setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— - * source (client) IP address and destination IP address—to select the hash value.

    - *

    The default value is NONE.

    + *

    The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for + * this listener.

    + *

    Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is + * applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

    + *

    The default value is 100.

    */ - ClientAffinity?: ClientAffinity | string; + TrafficDialPercentage?: number; + + /** + *

    The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port + * is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the + * first port in the list.

    + */ + HealthCheckPort?: number; + + /** + *

    The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default + * value is TCP.

    + */ + HealthCheckProtocol?: HealthCheckProtocol | string; + + /** + *

    If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The + * default value is slash (/).

    + */ + HealthCheckPath?: string; + + /** + *

    The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

    + */ + HealthCheckIntervalSeconds?: number; + + /** + *

    The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an + * unhealthy endpoint to healthy. The default value is 3.

    + */ + ThresholdCount?: number; + + /** + *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the + * uniqueness—of the request.

    + */ + IdempotencyToken?: string; + + /** + *

    Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. + * For example, you can create a port override in which the listener + * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 + * and 1443, respectively, on the endpoints.

    + *

    For more information, see + * Port overrides in the AWS Global Accelerator Developer Guide.

    + */ + PortOverrides?: PortOverride[]; +} + +export namespace CreateEndpointGroupRequest { + export const filterSensitiveLog = (obj: CreateEndpointGroupRequest): any => ({ + ...obj, + }); +} + +export type HealthState = "HEALTHY" | "INITIAL" | "UNHEALTHY"; + +/** + *

    A complex type for an endpoint. Each endpoint group can include one or more endpoints, such as load + * balancers.

    + */ +export interface EndpointDescription { + /** + *

    An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon + * Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address + * allocation ID. For Amazon EC2 instances, this is the EC2 instance ID.

    + *

    An Application Load Balancer can be either internal or internet-facing.

    + */ + EndpointId?: string; + + /** + *

    The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic + * based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The + * result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second + * and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the + * AWS Global Accelerator Developer Guide.

    + */ + Weight?: number; + + /** + *

    The health status of the endpoint.

    + */ + HealthState?: HealthState | string; + + /** + *

    Returns a null result.

    + */ + HealthReason?: string; + + /** + *

    Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. + * The value is true or false. The default value is true for new accelerators.

    + *

    If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as + * traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

    + *

    For more information, see + * Viewing Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

    + */ + ClientIPPreservationEnabled?: boolean; +} + +export namespace EndpointDescription { + export const filterSensitiveLog = (obj: EndpointDescription): any => ({ + ...obj, + }); +} + +/** + *

    A complex type for the endpoint group. An AWS Region can have only one endpoint group for a specific listener. + *

    + */ +export interface EndpointGroup { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group.

    + */ + EndpointGroupArn?: string; + + /** + *

    The AWS Region where the endpoint group is located.

    + */ + EndpointGroupRegion?: string; + + /** + *

    The list of endpoint objects.

    + */ + EndpointDescriptions?: EndpointDescription[]; + + /** + *

    The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for + * this listener.

    + *

    Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is + * applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

    + *

    The default value is 100.

    + */ + TrafficDialPercentage?: number; + + /** + *

    The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.

    + * + *

    The default port is the port for the listener that this endpoint group is associated with. If the listener port is a + * list, Global Accelerator uses the first specified port in the list of ports.

    + */ + HealthCheckPort?: number; + + /** + *

    The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default + * value is TCP.

    + */ + HealthCheckProtocol?: HealthCheckProtocol | string; + + /** + *

    If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the + * endpoints for health checks. The default is slash (/).

    + */ + HealthCheckPath?: string; + + /** + *

    The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.

    + */ + HealthCheckIntervalSeconds?: number; + + /** + *

    The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an + * unhealthy endpoint to healthy. The default value is 3.

    + */ + ThresholdCount?: number; + + /** + *

    Allows you to override the destination ports used to route traffic to an endpoint. + * Using a port override lets you to map a list of external destination ports (that your + * users send traffic to) to a list of internal destination ports that you want an application + * endpoint to receive traffic on.

    + */ + PortOverrides?: PortOverride[]; +} + +export namespace EndpointGroup { + export const filterSensitiveLog = (obj: EndpointGroup): any => ({ + ...obj, + }); +} + +export interface CreateEndpointGroupResponse { + /** + *

    The information about the endpoint group that was created.

    + */ + EndpointGroup?: EndpointGroup; +} + +export namespace CreateEndpointGroupResponse { + export const filterSensitiveLog = (obj: CreateEndpointGroupResponse): any => ({ + ...obj, + }); +} + +export interface CreateListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of your accelerator.

    + */ + AcceleratorArn: string | undefined; + + /** + *

    The list of port ranges to support for connections from clients to your accelerator.

    + */ + PortRanges: PortRange[] | undefined; + + /** + *

    The protocol for connections from clients to your accelerator.

    + */ + Protocol: Protocol | string | undefined; + + /** + *

    Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, + * regardless of the port and protocol of the client request. Client affinity gives you control over whether to always + * route each client to the same specific endpoint.

    + *

    AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client + * affinity is NONE, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, + * destination IP address, destination port, and protocol—to select the hash value, and then chooses the best + * endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not + * be always routed to the same endpoint because the hash value changes.

    + *

    If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP + * instead. When you use the SOURCE_IP setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— + * source (client) IP address and destination IP address—to select the hash value.

    + *

    The default value is NONE.

    + */ + ClientAffinity?: ClientAffinity | string; + + /** + *

    A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the + * uniqueness—of the request.

    + */ + IdempotencyToken?: string; +} + +export namespace CreateListenerRequest { + export const filterSensitiveLog = (obj: CreateListenerRequest): any => ({ + ...obj, + }); +} + +/** + *

    A complex type for a listener.

    + */ +export interface Listener { + /** + *

    The Amazon Resource Name (ARN) of the listener.

    + */ + ListenerArn?: string; + + /** + *

    The list of port ranges for the connections from clients to the accelerator.

    + */ + PortRanges?: PortRange[]; + + /** + *

    The protocol for the connections from clients to the accelerator.

    + */ + Protocol?: Protocol | string; + + /** + *

    Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, + * regardless of the port and protocol of the client request. Client affinity gives you control over whether to always + * route each client to the same specific endpoint.

    + *

    AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client + * affinity is NONE, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, + * destination IP address, destination port, and protocol—to select the hash value, and then chooses the best + * endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not + * be always routed to the same endpoint because the hash value changes.

    + *

    If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP + * instead. When you use the SOURCE_IP setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— + * source (client) IP address and destination IP address—to select the hash value.

    + *

    The default value is NONE.

    + */ + ClientAffinity?: ClientAffinity | string; +} + +export namespace Listener { + export const filterSensitiveLog = (obj: Listener): any => ({ + ...obj, + }); +} + +export interface CreateListenerResponse { + /** + *

    The listener that you've created.

    + */ + Listener?: Listener; +} + +export namespace CreateListenerResponse { + export const filterSensitiveLog = (obj: CreateListenerResponse): any => ({ + ...obj, + }); +} + +/** + *

    Attributes of a custom routing accelerator.

    + */ +export interface CustomRoutingAcceleratorAttributes { + /** + *

    Indicates whether flow logs are enabled. The default value is false. If the value is true, + * FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

    + *

    For more information, see Flow Logs in + * the AWS Global Accelerator Developer Guide.

    + */ + FlowLogsEnabled?: boolean; + + /** + *

    The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is + * true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the + * bucket.

    + */ + FlowLogsS3Bucket?: string; + + /** + *

    The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if + * FlowLogsEnabled is true.

    + *

    If you don’t specify a prefix, the flow logs are stored in the + * root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

    + *

    DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id

    + */ + FlowLogsS3Prefix?: string; +} + +export namespace CustomRoutingAcceleratorAttributes { + export const filterSensitiveLog = (obj: CustomRoutingAcceleratorAttributes): any => ({ + ...obj, + }); +} + +export enum CustomRoutingDestinationTrafficState { + ALLOW = "ALLOW", + DENY = "DENY", +} + +export interface DeleteAcceleratorRequest { + /** + *

    The Amazon Resource Name (ARN) of an accelerator.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DeleteAcceleratorRequest { + export const filterSensitiveLog = (obj: DeleteAcceleratorRequest): any => ({ + ...obj, + }); +} + +export interface DeleteCustomRoutingAcceleratorRequest { + /** + *

    The Amazon Resource Name (ARN) of the custom routing accelerator to delete.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DeleteCustomRoutingAcceleratorRequest { + export const filterSensitiveLog = (obj: DeleteCustomRoutingAcceleratorRequest): any => ({ + ...obj, + }); +} + +export interface DeleteCustomRoutingEndpointGroupRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to delete.

    + */ + EndpointGroupArn: string | undefined; +} + +export namespace DeleteCustomRoutingEndpointGroupRequest { + export const filterSensitiveLog = (obj: DeleteCustomRoutingEndpointGroupRequest): any => ({ + ...obj, + }); +} + +export interface DeleteCustomRoutingListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the listener to delete.

    + */ + ListenerArn: string | undefined; +} + +export namespace DeleteCustomRoutingListenerRequest { + export const filterSensitiveLog = (obj: DeleteCustomRoutingListenerRequest): any => ({ + ...obj, + }); +} + +export interface DeleteEndpointGroupRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to delete.

    + */ + EndpointGroupArn: string | undefined; +} + +export namespace DeleteEndpointGroupRequest { + export const filterSensitiveLog = (obj: DeleteEndpointGroupRequest): any => ({ + ...obj, + }); +} + +export interface DeleteListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the listener.

    + */ + ListenerArn: string | undefined; +} + +export namespace DeleteListenerRequest { + export const filterSensitiveLog = (obj: DeleteListenerRequest): any => ({ + ...obj, + }); +} + +export interface DenyCustomRoutingTrafficRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group.

    + */ + EndpointGroupArn: string | undefined; + + /** + *

    An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.

    + */ + EndpointId: string | undefined; + + /** + *

    A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to prevent from receiving + * traffic. The IP addresses must be a subset of the IP addresses allowed for the VPC subnet associated with the + * endpoint group.

    + */ + DestinationAddresses?: string[]; + + /** + *

    A list of specific Amazon EC2 instance ports (destination ports) in a subnet endpoint that you want to prevent from + * receiving traffic.

    + */ + DestinationPorts?: number[]; + + /** + *

    Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint cannot + * receive traffic from a custom routing accelerator. The value is TRUE or FALSE.

    + *

    When set to TRUE, no destinations in the custom routing VPC subnet can receive traffic. Note + * that you cannot specify destination IP addresses and ports when the value is set to TRUE.

    + *

    When set to FALSE (or not specified), you must specify a list of destination IP addresses that cannot receive + * traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is + * the same as the ports configured for the endpoint group.

    + *

    The default value is FALSE.

    + */ + DenyAllTrafficToEndpoint?: boolean; +} + +export namespace DenyCustomRoutingTrafficRequest { + export const filterSensitiveLog = (obj: DenyCustomRoutingTrafficRequest): any => ({ + ...obj, + }); +} + +export interface DeprovisionByoipCidrRequest { + /** + *

    The address range, in CIDR notation. The prefix must be the same prefix that you specified + * when you provisioned the address range.

    + */ + Cidr: string | undefined; +} + +export namespace DeprovisionByoipCidrRequest { + export const filterSensitiveLog = (obj: DeprovisionByoipCidrRequest): any => ({ + ...obj, + }); +} + +export interface DeprovisionByoipCidrResponse { + /** + *

    Information about the address range.

    + */ + ByoipCidr?: ByoipCidr; +} + +export namespace DeprovisionByoipCidrResponse { + export const filterSensitiveLog = (obj: DeprovisionByoipCidrResponse): any => ({ + ...obj, + }); +} + +export interface DescribeAcceleratorRequest { + /** + *

    The Amazon Resource Name (ARN) of the accelerator to describe.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DescribeAcceleratorRequest { + export const filterSensitiveLog = (obj: DescribeAcceleratorRequest): any => ({ + ...obj, + }); +} + +export interface DescribeAcceleratorResponse { + /** + *

    The description of the accelerator.

    + */ + Accelerator?: Accelerator; +} + +export namespace DescribeAcceleratorResponse { + export const filterSensitiveLog = (obj: DescribeAcceleratorResponse): any => ({ + ...obj, + }); +} + +export interface DescribeAcceleratorAttributesRequest { + /** + *

    The Amazon Resource Name (ARN) of the accelerator with the attributes that you want to describe.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DescribeAcceleratorAttributesRequest { + export const filterSensitiveLog = (obj: DescribeAcceleratorAttributesRequest): any => ({ + ...obj, + }); +} + +export interface DescribeAcceleratorAttributesResponse { + /** + *

    The attributes of the accelerator.

    + */ + AcceleratorAttributes?: AcceleratorAttributes; +} + +export namespace DescribeAcceleratorAttributesResponse { + export const filterSensitiveLog = (obj: DescribeAcceleratorAttributesResponse): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingAcceleratorRequest { + /** + *

    The Amazon Resource Name (ARN) of the accelerator to describe.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DescribeCustomRoutingAcceleratorRequest { + export const filterSensitiveLog = (obj: DescribeCustomRoutingAcceleratorRequest): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingAcceleratorResponse { + /** + *

    The description of the custom routing accelerator.

    + */ + Accelerator?: CustomRoutingAccelerator; +} + +export namespace DescribeCustomRoutingAcceleratorResponse { + export const filterSensitiveLog = (obj: DescribeCustomRoutingAcceleratorResponse): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingAcceleratorAttributesRequest { + /** + *

    The Amazon Resource Name (ARN) of the custom routing accelerator to describe the attributes for.

    + */ + AcceleratorArn: string | undefined; +} + +export namespace DescribeCustomRoutingAcceleratorAttributesRequest { + export const filterSensitiveLog = (obj: DescribeCustomRoutingAcceleratorAttributesRequest): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingAcceleratorAttributesResponse { + /** + *

    The attributes of the custom routing accelerator.

    + */ + AcceleratorAttributes?: CustomRoutingAcceleratorAttributes; +} + +export namespace DescribeCustomRoutingAcceleratorAttributesResponse { + export const filterSensitiveLog = (obj: DescribeCustomRoutingAcceleratorAttributesResponse): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingEndpointGroupRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to describe.

    + */ + EndpointGroupArn: string | undefined; +} + +export namespace DescribeCustomRoutingEndpointGroupRequest { + export const filterSensitiveLog = (obj: DescribeCustomRoutingEndpointGroupRequest): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingEndpointGroupResponse { + /** + *

    The description of an endpoint group for a custom routing accelerator.

    + */ + EndpointGroup?: CustomRoutingEndpointGroup; +} + +export namespace DescribeCustomRoutingEndpointGroupResponse { + export const filterSensitiveLog = (obj: DescribeCustomRoutingEndpointGroupResponse): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the listener to describe.

    + */ + ListenerArn: string | undefined; +} + +export namespace DescribeCustomRoutingListenerRequest { + export const filterSensitiveLog = (obj: DescribeCustomRoutingListenerRequest): any => ({ + ...obj, + }); +} + +export interface DescribeCustomRoutingListenerResponse { + /** + *

    The description of a listener for a custom routing accelerator.

    + */ + Listener?: CustomRoutingListener; +} + +export namespace DescribeCustomRoutingListenerResponse { + export const filterSensitiveLog = (obj: DescribeCustomRoutingListenerResponse): any => ({ + ...obj, + }); +} + +export interface DescribeEndpointGroupRequest { + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to describe.

    + */ + EndpointGroupArn: string | undefined; +} + +export namespace DescribeEndpointGroupRequest { + export const filterSensitiveLog = (obj: DescribeEndpointGroupRequest): any => ({ + ...obj, + }); +} + +export interface DescribeEndpointGroupResponse { + /** + *

    The description of an endpoint group.

    + */ + EndpointGroup?: EndpointGroup; +} + +export namespace DescribeEndpointGroupResponse { + export const filterSensitiveLog = (obj: DescribeEndpointGroupResponse): any => ({ + ...obj, + }); +} + +export interface DescribeListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the listener to describe.

    + */ + ListenerArn: string | undefined; } -export namespace Listener { - export const filterSensitiveLog = (obj: Listener): any => ({ +export namespace DescribeListenerRequest { + export const filterSensitiveLog = (obj: DescribeListenerRequest): any => ({ ...obj, }); } -export interface CreateListenerResponse { +export interface DescribeListenerResponse { /** - *

    The listener that you've created.

    + *

    The description of a listener.

    */ Listener?: Listener; } -export namespace CreateListenerResponse { - export const filterSensitiveLog = (obj: CreateListenerResponse): any => ({ +export namespace DescribeListenerResponse { + export const filterSensitiveLog = (obj: DescribeListenerResponse): any => ({ ...obj, }); } /** - *

    The port numbers that you specified are not valid numbers or are not unique for this accelerator.

    + *

    An IP address/port combination.

    */ -export interface InvalidPortRangeException extends __SmithyException, $MetadataBearer { - name: "InvalidPortRangeException"; - $fault: "client"; - Message?: string; +export interface SocketAddress { + /** + *

    The IP address for the socket address.

    + */ + IpAddress?: string; + + /** + *

    The port for the socket address.

    + */ + Port?: number; } -export namespace InvalidPortRangeException { - export const filterSensitiveLog = (obj: InvalidPortRangeException): any => ({ +export namespace SocketAddress { + export const filterSensitiveLog = (obj: SocketAddress): any => ({ ...obj, }); } -export interface DeleteAcceleratorRequest { +/** + *

    The port mappings for a specified endpoint IP address (destination).

    + */ +export interface DestinationPortMapping { /** - *

    The Amazon Resource Name (ARN) of an accelerator.

    + *

    The Amazon Resource Name (ARN) of the custom routing accelerator + * that you have port mappings for.

    */ - AcceleratorArn: string | undefined; + AcceleratorArn?: string; + + /** + *

    The IP address/port combinations (sockets) that map to a given destination socket + * address.

    + */ + AcceleratorSocketAddresses?: SocketAddress[]; + + /** + *

    The Amazon Resource Name (ARN) of the endpoint group.

    + */ + EndpointGroupArn?: string; + + /** + *

    The ID for the virtual private cloud (VPC) subnet.

    + */ + EndpointId?: string; + + /** + *

    The AWS Region for the endpoint group.

    + */ + EndpointGroupRegion?: string; + + /** + *

    The endpoint IP address/port combination for traffic received on the accelerator socket address.

    + */ + DestinationSocketAddress?: SocketAddress; + + /** + *

    The IP address type, which must be IPv4.

    + */ + IpAddressType?: IpAddressType | string; + + /** + *

    Indicates whether or not a port mapping destination can receive traffic. The value is either ALLOW, if + * traffic is allowed to the destination, or DENY, if traffic is not allowed to the destination.

    + */ + DestinationTrafficState?: CustomRoutingDestinationTrafficState | string; } -export namespace DeleteAcceleratorRequest { - export const filterSensitiveLog = (obj: DeleteAcceleratorRequest): any => ({ +export namespace DestinationPortMapping { + export const filterSensitiveLog = (obj: DestinationPortMapping): any => ({ ...obj, }); } -export interface DeleteEndpointGroupRequest { - /** - *

    The Amazon Resource Name (ARN) of the endpoint group to delete.

    - */ - EndpointGroupArn: string | undefined; +/** + *

    The endpoint that you specified doesn't exist.

    + */ +export interface EndpointNotFoundException extends __SmithyException, $MetadataBearer { + name: "EndpointNotFoundException"; + $fault: "client"; + Message?: string; } -export namespace DeleteEndpointGroupRequest { - export const filterSensitiveLog = (obj: DeleteEndpointGroupRequest): any => ({ +export namespace EndpointNotFoundException { + export const filterSensitiveLog = (obj: EndpointNotFoundException): any => ({ ...obj, }); } /** - *

    The endpoint group that you specified doesn't exist.

    + *

    There isn't another item to return.

    */ -export interface EndpointGroupNotFoundException extends __SmithyException, $MetadataBearer { - name: "EndpointGroupNotFoundException"; +export interface InvalidNextTokenException extends __SmithyException, $MetadataBearer { + name: "InvalidNextTokenException"; $fault: "client"; Message?: string; } -export namespace EndpointGroupNotFoundException { - export const filterSensitiveLog = (obj: EndpointGroupNotFoundException): any => ({ +export namespace InvalidNextTokenException { + export const filterSensitiveLog = (obj: InvalidNextTokenException): any => ({ ...obj, }); } -export interface DeleteListenerRequest { +export interface ListAcceleratorsRequest { /** - *

    The Amazon Resource Name (ARN) of the listener.

    + *

    The number of Global Accelerator objects that you want to return with this call. The default value is 10.

    */ - ListenerArn: string | undefined; + MaxResults?: number; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DeleteListenerRequest { - export const filterSensitiveLog = (obj: DeleteListenerRequest): any => ({ +export namespace ListAcceleratorsRequest { + export const filterSensitiveLog = (obj: ListAcceleratorsRequest): any => ({ ...obj, }); } -export interface DeprovisionByoipCidrRequest { +export interface ListAcceleratorsResponse { /** - *

    The address range, in CIDR notation. The prefix must be the same prefix that you specified - * when you provisioned the address range.

    + *

    The list of accelerators for a customer account.

    */ - Cidr: string | undefined; + Accelerators?: Accelerator[]; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DeprovisionByoipCidrRequest { - export const filterSensitiveLog = (obj: DeprovisionByoipCidrRequest): any => ({ +export namespace ListAcceleratorsResponse { + export const filterSensitiveLog = (obj: ListAcceleratorsResponse): any => ({ ...obj, }); } -export interface DeprovisionByoipCidrResponse { +export interface ListByoipCidrsRequest { /** - *

    Information about the address range.

    + *

    The maximum number of results to return with a single call. To retrieve the remaining results, make + * another call with the returned nextToken value.

    */ - ByoipCidr?: ByoipCidr; + MaxResults?: number; + + /** + *

    The token for the next page of results.

    + */ + NextToken?: string; } -export namespace DeprovisionByoipCidrResponse { - export const filterSensitiveLog = (obj: DeprovisionByoipCidrResponse): any => ({ +export namespace ListByoipCidrsRequest { + export const filterSensitiveLog = (obj: ListByoipCidrsRequest): any => ({ ...obj, }); } -export interface DescribeAcceleratorRequest { +export interface ListByoipCidrsResponse { /** - *

    The Amazon Resource Name (ARN) of the accelerator to describe.

    + *

    Information about your address ranges.

    */ - AcceleratorArn: string | undefined; + ByoipCidrs?: ByoipCidr[]; + + /** + *

    The token for the next page of results.

    + */ + NextToken?: string; } -export namespace DescribeAcceleratorRequest { - export const filterSensitiveLog = (obj: DescribeAcceleratorRequest): any => ({ +export namespace ListByoipCidrsResponse { + export const filterSensitiveLog = (obj: ListByoipCidrsResponse): any => ({ ...obj, }); } -export interface DescribeAcceleratorResponse { +export interface ListCustomRoutingAcceleratorsRequest { /** - *

    The description of the accelerator.

    + *

    The number of custom routing Global Accelerator objects that you want to return with this call. The default value is 10.

    */ - Accelerator?: Accelerator; + MaxResults?: number; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeAcceleratorResponse { - export const filterSensitiveLog = (obj: DescribeAcceleratorResponse): any => ({ +export namespace ListCustomRoutingAcceleratorsRequest { + export const filterSensitiveLog = (obj: ListCustomRoutingAcceleratorsRequest): any => ({ ...obj, }); } -export interface DescribeAcceleratorAttributesRequest { +export interface ListCustomRoutingAcceleratorsResponse { /** - *

    The Amazon Resource Name (ARN) of the accelerator with the attributes that you want to describe.

    + *

    The list of custom routing accelerators for a customer account.

    */ - AcceleratorArn: string | undefined; + Accelerators?: CustomRoutingAccelerator[]; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeAcceleratorAttributesRequest { - export const filterSensitiveLog = (obj: DescribeAcceleratorAttributesRequest): any => ({ +export namespace ListCustomRoutingAcceleratorsResponse { + export const filterSensitiveLog = (obj: ListCustomRoutingAcceleratorsResponse): any => ({ ...obj, }); } -export interface DescribeAcceleratorAttributesResponse { +export interface ListCustomRoutingEndpointGroupsRequest { /** - *

    The attributes of the accelerator.

    + *

    The Amazon Resource Name (ARN) of the listener to list endpoint groups for.

    */ - AcceleratorAttributes?: AcceleratorAttributes; + ListenerArn: string | undefined; + + /** + *

    The number of endpoint group objects that you want to return with this call. The default value is 10.

    + */ + MaxResults?: number; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeAcceleratorAttributesResponse { - export const filterSensitiveLog = (obj: DescribeAcceleratorAttributesResponse): any => ({ +export namespace ListCustomRoutingEndpointGroupsRequest { + export const filterSensitiveLog = (obj: ListCustomRoutingEndpointGroupsRequest): any => ({ ...obj, }); } -export interface DescribeEndpointGroupRequest { +export interface ListCustomRoutingEndpointGroupsResponse { /** - *

    The Amazon Resource Name (ARN) of the endpoint group to describe.

    + *

    The list of the endpoint groups associated with a listener for a custom routing accelerator.

    */ - EndpointGroupArn: string | undefined; + EndpointGroups?: CustomRoutingEndpointGroup[]; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeEndpointGroupRequest { - export const filterSensitiveLog = (obj: DescribeEndpointGroupRequest): any => ({ +export namespace ListCustomRoutingEndpointGroupsResponse { + export const filterSensitiveLog = (obj: ListCustomRoutingEndpointGroupsResponse): any => ({ ...obj, }); } -export interface DescribeEndpointGroupResponse { +export interface ListCustomRoutingListenersRequest { /** - *

    The description of an endpoint group.

    + *

    The Amazon Resource Name (ARN) of the accelerator to list listeners for.

    */ - EndpointGroup?: EndpointGroup; + AcceleratorArn: string | undefined; + + /** + *

    The number of listener objects that you want to return with this call. The default value is 10.

    + */ + MaxResults?: number; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeEndpointGroupResponse { - export const filterSensitiveLog = (obj: DescribeEndpointGroupResponse): any => ({ +export namespace ListCustomRoutingListenersRequest { + export const filterSensitiveLog = (obj: ListCustomRoutingListenersRequest): any => ({ ...obj, }); } -export interface DescribeListenerRequest { +export interface ListCustomRoutingListenersResponse { /** - *

    The Amazon Resource Name (ARN) of the listener to describe.

    + *

    The list of listeners for a custom routing accelerator.

    */ - ListenerArn: string | undefined; + Listeners?: CustomRoutingListener[]; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeListenerRequest { - export const filterSensitiveLog = (obj: DescribeListenerRequest): any => ({ +export namespace ListCustomRoutingListenersResponse { + export const filterSensitiveLog = (obj: ListCustomRoutingListenersResponse): any => ({ ...obj, }); } -export interface DescribeListenerResponse { +export interface ListCustomRoutingPortMappingsRequest { /** - *

    The description of a listener.

    + *

    The Amazon Resource Name (ARN) of the accelerator to list the custom routing port mappings for.

    */ - Listener?: Listener; + AcceleratorArn: string | undefined; + + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to list the custom routing port mappings for.

    + */ + EndpointGroupArn?: string; + + /** + *

    The number of destination port mappings that you want to return with this call. The default value is 10.

    + */ + MaxResults?: number; + + /** + *

    The token for the next set of results. You receive this token from a previous call.

    + */ + NextToken?: string; } -export namespace DescribeListenerResponse { - export const filterSensitiveLog = (obj: DescribeListenerResponse): any => ({ +export namespace ListCustomRoutingPortMappingsRequest { + export const filterSensitiveLog = (obj: ListCustomRoutingPortMappingsRequest): any => ({ ...obj, }); } /** - *

    There isn't another item to return.

    + *

    Returns the ports and associated IP addresses and ports of Amazon EC2 instances in your virtual + * private cloud (VPC) subnets. Custom routing is a port mapping protocol in AWS Global Accelerator that + * statically associates port ranges with VPC subnets, which allows Global Accelerator to route to + * specific instances and ports within one or more subnets.

    */ -export interface InvalidNextTokenException extends __SmithyException, $MetadataBearer { - name: "InvalidNextTokenException"; - $fault: "client"; - Message?: string; +export interface PortMapping { + /** + *

    The accelerator port.

    + */ + AcceleratorPort?: number; + + /** + *

    The Amazon Resource Name (ARN) of the endpoint group.

    + */ + EndpointGroupArn?: string; + + /** + *

    The IP address of the VPC subnet (the subnet ID).

    + */ + EndpointId?: string; + + /** + *

    The EC2 instance IP address and port number in the virtual private cloud (VPC) subnet.

    + */ + DestinationSocketAddress?: SocketAddress; + + /** + *

    The protocols supported by the endpoint group.

    + */ + Protocols?: (CustomRoutingProtocol | string)[]; + + /** + *

    Indicates whether or not a port mapping destination can receive traffic. The value is either ALLOW, if + * traffic is allowed to the destination, or DENY, if traffic is not allowed to the destination.

    + */ + DestinationTrafficState?: CustomRoutingDestinationTrafficState | string; } -export namespace InvalidNextTokenException { - export const filterSensitiveLog = (obj: InvalidNextTokenException): any => ({ +export namespace PortMapping { + export const filterSensitiveLog = (obj: PortMapping): any => ({ ...obj, }); } -export interface ListAcceleratorsRequest { +export interface ListCustomRoutingPortMappingsResponse { /** - *

    The number of Global Accelerator objects that you want to return with this call. The default value is 10.

    + *

    The port mappings for a custom routing accelerator.

    */ - MaxResults?: number; + PortMappings?: PortMapping[]; /** *

    The token for the next set of results. You receive this token from a previous call.

    @@ -1259,72 +2269,64 @@ export interface ListAcceleratorsRequest { NextToken?: string; } -export namespace ListAcceleratorsRequest { - export const filterSensitiveLog = (obj: ListAcceleratorsRequest): any => ({ +export namespace ListCustomRoutingPortMappingsResponse { + export const filterSensitiveLog = (obj: ListCustomRoutingPortMappingsResponse): any => ({ ...obj, }); } -export interface ListAcceleratorsResponse { +export interface ListCustomRoutingPortMappingsByDestinationRequest { /** - *

    The token for the next set of results. You receive this token from a previous call.

    + *

    The ID for the virtual private cloud (VPC) subnet.

    */ - NextToken?: string; + EndpointId: string | undefined; /** - *

    The list of accelerators for a customer account.

    + *

    The endpoint IP address in a virtual private cloud (VPC) subnet for which you want to receive back port + * mappings.

    */ - Accelerators?: Accelerator[]; -} + DestinationAddress: string | undefined; -export namespace ListAcceleratorsResponse { - export const filterSensitiveLog = (obj: ListAcceleratorsResponse): any => ({ - ...obj, - }); -} - -export interface ListByoipCidrsRequest { /** - *

    The token for the next page of results.

    + *

    The number of destination port mappings that you want to return with this call. The default value is 10.

    */ - NextToken?: string; + MaxResults?: number; /** - *

    The maximum number of results to return with a single call. To retrieve the remaining results, make - * another call with the returned nextToken value.

    + *

    The token for the next set of results. You receive this token from a previous call.

    */ - MaxResults?: number; + NextToken?: string; } -export namespace ListByoipCidrsRequest { - export const filterSensitiveLog = (obj: ListByoipCidrsRequest): any => ({ +export namespace ListCustomRoutingPortMappingsByDestinationRequest { + export const filterSensitiveLog = (obj: ListCustomRoutingPortMappingsByDestinationRequest): any => ({ ...obj, }); } -export interface ListByoipCidrsResponse { +export interface ListCustomRoutingPortMappingsByDestinationResponse { /** - *

    Information about your address ranges.

    + *

    The port mappings for the endpoint IP address that you specified in the request.

    */ - ByoipCidrs?: ByoipCidr[]; + DestinationPortMappings?: DestinationPortMapping[]; /** - *

    The token for the next page of results.

    + *

    The token for the next set of results. You receive this token from a previous call.

    */ NextToken?: string; } -export namespace ListByoipCidrsResponse { - export const filterSensitiveLog = (obj: ListByoipCidrsResponse): any => ({ +export namespace ListCustomRoutingPortMappingsByDestinationResponse { + export const filterSensitiveLog = (obj: ListCustomRoutingPortMappingsByDestinationResponse): any => ({ ...obj, }); } export interface ListEndpointGroupsRequest { /** - *

    The token for the next set of results. You receive this token from a previous call.

    + *

    The Amazon Resource Name (ARN) of the listener.

    */ - NextToken?: string; + ListenerArn: string | undefined; /** *

    The number of endpoint group objects that you want to return with this call. The default value is 10.

    @@ -1332,9 +2334,9 @@ export interface ListEndpointGroupsRequest { MaxResults?: number; /** - *

    The Amazon Resource Name (ARN) of the listener.

    + *

    The token for the next set of results. You receive this token from a previous call.

    */ - ListenerArn: string | undefined; + NextToken?: string; } export namespace ListEndpointGroupsRequest { @@ -1345,14 +2347,14 @@ export namespace ListEndpointGroupsRequest { export interface ListEndpointGroupsResponse { /** - *

    The token for the next set of results. You receive this token from a previous call.

    + *

    The list of the endpoint groups associated with a listener.

    */ - NextToken?: string; + EndpointGroups?: EndpointGroup[]; /** - *

    The list of the endpoint groups associated with a listener.

    + *

    The token for the next set of results. You receive this token from a previous call.

    */ - EndpointGroups?: EndpointGroup[]; + NextToken?: string; } export namespace ListEndpointGroupsResponse { @@ -1363,9 +2365,9 @@ export namespace ListEndpointGroupsResponse { export interface ListListenersRequest { /** - *

    The token for the next set of results. You receive this token from a previous call.

    + *

    The Amazon Resource Name (ARN) of the accelerator for which you want to list listener objects.

    */ - NextToken?: string; + AcceleratorArn: string | undefined; /** *

    The number of listener objects that you want to return with this call. The default value is 10.

    @@ -1373,9 +2375,9 @@ export interface ListListenersRequest { MaxResults?: number; /** - *

    The Amazon Resource Name (ARN) of the accelerator for which you want to list listener objects.

    + *

    The token for the next set of results. You receive this token from a previous call.

    */ - AcceleratorArn: string | undefined; + NextToken?: string; } export namespace ListListenersRequest { @@ -1463,16 +2465,35 @@ export namespace ProvisionByoipCidrResponse { }); } -export interface TagResourceRequest { +export interface RemoveCustomRoutingEndpointsRequest { /** - *

    The tags to add to a resource. A tag consists of a key and a value that you define.

    + *

    The IDs for the endpoints. For custom routing accelerators, endpoint IDs are the virtual private cloud (VPC) + * subnet IDs.

    */ - Tags: Tag[] | undefined; + EndpointIds: string[] | undefined; + + /** + *

    The Amazon Resource Name (ARN) of the endpoint group to remove endpoints from.

    + */ + EndpointGroupArn: string | undefined; +} +export namespace RemoveCustomRoutingEndpointsRequest { + export const filterSensitiveLog = (obj: RemoveCustomRoutingEndpointsRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceRequest { /** *

    The Amazon Resource Name (ARN) of the Global Accelerator resource to add tags to. An ARN uniquely identifies a resource.

    */ ResourceArn: string | undefined; + + /** + *

    The tags to add to a resource. A tag consists of a key and a value that you define.

    + */ + Tags: Tag[] | undefined; } export namespace TagResourceRequest { @@ -1517,27 +2538,26 @@ export namespace UntagResourceResponse { export interface UpdateAcceleratorRequest { /** - *

    The value for the address type must be IPv4. - *

    + *

    The Amazon Resource Name (ARN) of the accelerator to update.

    */ - IpAddressType?: IpAddressType | string; + AcceleratorArn: string | undefined; /** - *

    The Amazon Resource Name (ARN) of the accelerator to update.

    + *

    The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or + * hyphens (-), and must not begin or end with a hyphen.

    */ - AcceleratorArn: string | undefined; + Name?: string; /** - *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    - *

    If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    + *

    The IP address type, which must be IPv4.

    */ - Enabled?: boolean; + IpAddressType?: IpAddressType | string; /** - *

    The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or - * hyphens (-), and must not begin or end with a hyphen.

    + *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    + *

    If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    */ - Name?: string; + Enabled?: boolean; } export namespace UpdateAcceleratorRequest { @@ -1560,6 +2580,11 @@ export namespace UpdateAcceleratorResponse { } export interface UpdateAcceleratorAttributesRequest { + /** + *

    The Amazon Resource Name (ARN) of the accelerator that you want to update.

    + */ + AcceleratorArn: string | undefined; + /** *

    Update whether flow logs are enabled. The default value is false. If the value is true, * FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

    @@ -1568,11 +2593,6 @@ export interface UpdateAcceleratorAttributesRequest { */ FlowLogsEnabled?: boolean; - /** - *

    The Amazon Resource Name (ARN) of the accelerator that you want to update.

    - */ - AcceleratorArn: string | undefined; - /** *

    The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is * true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the @@ -1609,18 +2629,144 @@ export namespace UpdateAcceleratorAttributesResponse { }); } -export interface UpdateEndpointGroupRequest { +export interface UpdateCustomRoutingAcceleratorRequest { /** - *

    If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The - * default value is slash (/).

    + *

    The Amazon Resource Name (ARN) of the accelerator to update.

    */ - HealthCheckPath?: string; + AcceleratorArn: string | undefined; + + /** + *

    The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or + * hyphens (-), and must not begin or end with a hyphen.

    + */ + Name?: string; + + /** + *

    The value for the address type must be IPv4.

    + */ + IpAddressType?: IpAddressType | string; + + /** + *

    Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

    + *

    If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

    + */ + Enabled?: boolean; +} + +export namespace UpdateCustomRoutingAcceleratorRequest { + export const filterSensitiveLog = (obj: UpdateCustomRoutingAcceleratorRequest): any => ({ + ...obj, + }); +} + +export interface UpdateCustomRoutingAcceleratorResponse { + /** + *

    Information about the updated custom routing accelerator.

    + */ + Accelerator?: CustomRoutingAccelerator; +} + +export namespace UpdateCustomRoutingAcceleratorResponse { + export const filterSensitiveLog = (obj: UpdateCustomRoutingAcceleratorResponse): any => ({ + ...obj, + }); +} + +export interface UpdateCustomRoutingAcceleratorAttributesRequest { + /** + *

    The Amazon Resource Name (ARN) of the custom routing accelerator to update attributes for.

    + */ + AcceleratorArn: string | undefined; + + /** + *

    Update whether flow logs are enabled. The default value is false. If the value is true, + * FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

    + *

    For more information, see Flow Logs in + * the AWS Global Accelerator Developer Guide.

    + */ + FlowLogsEnabled?: boolean; + + /** + *

    The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is + * true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the + * bucket.

    + */ + FlowLogsS3Bucket?: string; + + /** + *

    Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if + * FlowLogsEnabled is true.

    + *

    If you don’t specify a prefix, the flow logs are stored in the + * root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

    + *

    DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id

    + */ + FlowLogsS3Prefix?: string; +} + +export namespace UpdateCustomRoutingAcceleratorAttributesRequest { + export const filterSensitiveLog = (obj: UpdateCustomRoutingAcceleratorAttributesRequest): any => ({ + ...obj, + }); +} + +export interface UpdateCustomRoutingAcceleratorAttributesResponse { + /** + *

    Updated custom routing accelerator.

    + */ + AcceleratorAttributes?: CustomRoutingAcceleratorAttributes; +} + +export namespace UpdateCustomRoutingAcceleratorAttributesResponse { + export const filterSensitiveLog = (obj: UpdateCustomRoutingAcceleratorAttributesResponse): any => ({ + ...obj, + }); +} + +export interface UpdateCustomRoutingListenerRequest { + /** + *

    The Amazon Resource Name (ARN) of the listener to update.

    + */ + ListenerArn: string | undefined; + + /** + *

    The updated port range to support for connections from clients to your accelerator. If you remove ports that are + * currently being used by a subnet endpoint, the call fails.

    + *

    Separately, you set port ranges for endpoints. For more information, see About + * endpoints for custom routing accelerators.

    + */ + PortRanges: PortRange[] | undefined; +} + +export namespace UpdateCustomRoutingListenerRequest { + export const filterSensitiveLog = (obj: UpdateCustomRoutingListenerRequest): any => ({ + ...obj, + }); +} + +export interface UpdateCustomRoutingListenerResponse { + /** + *

    Information for the updated listener for a custom routing accelerator.

    + */ + Listener?: CustomRoutingListener; +} + +export namespace UpdateCustomRoutingListenerResponse { + export const filterSensitiveLog = (obj: UpdateCustomRoutingListenerResponse): any => ({ + ...obj, + }); +} +export interface UpdateEndpointGroupRequest { /** *

    The Amazon Resource Name (ARN) of the endpoint group.

    */ EndpointGroupArn: string | undefined; + /** + *

    The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.

    + */ + EndpointConfigurations?: EndpointConfiguration[]; + /** *

    The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for * this listener.

    @@ -1631,31 +2777,28 @@ export interface UpdateEndpointGroupRequest { TrafficDialPercentage?: number; /** - *

    The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

    + *

    The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port + * is the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses + * the first port in the list.

    */ - HealthCheckIntervalSeconds?: number; + HealthCheckPort?: number; /** - *

    Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. - * For example, you can create a port override in which the listener - * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 - * and 1443, respectively, on the endpoints.

    - *

    For more information, see - * Port overrides in the AWS Global Accelerator Developer Guide.

    + *

    The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default + * value is TCP.

    */ - PortOverrides?: PortOverride[]; + HealthCheckProtocol?: HealthCheckProtocol | string; /** - *

    The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.

    + *

    If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The + * default value is slash (/).

    */ - EndpointConfigurations?: EndpointConfiguration[]; + HealthCheckPath?: string; /** - *

    The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port - * is the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses - * the first port in the list.

    + *

    The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

    */ - HealthCheckPort?: number; + HealthCheckIntervalSeconds?: number; /** *

    The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an @@ -1664,10 +2807,14 @@ export interface UpdateEndpointGroupRequest { ThresholdCount?: number; /** - *

    The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default - * value is TCP.

    + *

    Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. + * For example, you can create a port override in which the listener + * receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 + * and 1443, respectively, on the endpoints.

    + *

    For more information, see + * Port overrides in the AWS Global Accelerator Developer Guide.

    */ - HealthCheckProtocol?: HealthCheckProtocol | string; + PortOverrides?: PortOverride[]; } export namespace UpdateEndpointGroupRequest { @@ -1691,15 +2838,20 @@ export namespace UpdateEndpointGroupResponse { export interface UpdateListenerRequest { /** - *

    The updated protocol for the connections from clients to the accelerator.

    + *

    The Amazon Resource Name (ARN) of the listener to update.

    */ - Protocol?: Protocol | string; + ListenerArn: string | undefined; /** *

    The updated list of port ranges for the connections from clients to the accelerator.

    */ PortRanges?: PortRange[]; + /** + *

    The updated protocol for the connections from clients to the accelerator.

    + */ + Protocol?: Protocol | string; + /** *

    Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, * regardless of the port and protocol of the client request. Client affinity gives you control over whether to always @@ -1715,11 +2867,6 @@ export interface UpdateListenerRequest { *

    The default value is NONE.

    */ ClientAffinity?: ClientAffinity | string; - - /** - *

    The Amazon Resource Name (ARN) of the listener to update.

    - */ - ListenerArn: string | undefined; } export namespace UpdateListenerRequest { diff --git a/clients/client-global-accelerator/pagination/Interfaces.ts b/clients/client-global-accelerator/pagination/Interfaces.ts new file mode 100644 index 0000000000000..17bf2fc875ed4 --- /dev/null +++ b/clients/client-global-accelerator/pagination/Interfaces.ts @@ -0,0 +1,7 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { PaginationConfiguration } from "@aws-sdk/types"; + +export interface GlobalAcceleratorPaginationConfiguration extends PaginationConfiguration { + client: GlobalAccelerator | GlobalAcceleratorClient; +} diff --git a/clients/client-global-accelerator/pagination/ListAcceleratorsPaginator.ts b/clients/client-global-accelerator/pagination/ListAcceleratorsPaginator.ts new file mode 100644 index 0000000000000..b7efdf820e326 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListAcceleratorsPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListAcceleratorsCommand, + ListAcceleratorsCommandInput, + ListAcceleratorsCommandOutput, +} from "../commands/ListAcceleratorsCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListAcceleratorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAcceleratorsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListAcceleratorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAccelerators(input, ...args); +}; +export async function* paginateListAccelerators( + config: GlobalAcceleratorPaginationConfiguration, + input: ListAcceleratorsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAcceleratorsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListCustomRoutingAcceleratorsPaginator.ts b/clients/client-global-accelerator/pagination/ListCustomRoutingAcceleratorsPaginator.ts new file mode 100644 index 0000000000000..1b5b72b7a4735 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListCustomRoutingAcceleratorsPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingAcceleratorsCommand, + ListCustomRoutingAcceleratorsCommandInput, + ListCustomRoutingAcceleratorsCommandOutput, +} from "../commands/ListCustomRoutingAcceleratorsCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListCustomRoutingAcceleratorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCustomRoutingAcceleratorsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListCustomRoutingAcceleratorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCustomRoutingAccelerators(input, ...args); +}; +export async function* paginateListCustomRoutingAccelerators( + config: GlobalAcceleratorPaginationConfiguration, + input: ListCustomRoutingAcceleratorsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCustomRoutingAcceleratorsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListCustomRoutingEndpointGroupsPaginator.ts b/clients/client-global-accelerator/pagination/ListCustomRoutingEndpointGroupsPaginator.ts new file mode 100644 index 0000000000000..dbd830fff03a4 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListCustomRoutingEndpointGroupsPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingEndpointGroupsCommand, + ListCustomRoutingEndpointGroupsCommandInput, + ListCustomRoutingEndpointGroupsCommandOutput, +} from "../commands/ListCustomRoutingEndpointGroupsCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListCustomRoutingEndpointGroupsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCustomRoutingEndpointGroupsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListCustomRoutingEndpointGroupsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCustomRoutingEndpointGroups(input, ...args); +}; +export async function* paginateListCustomRoutingEndpointGroups( + config: GlobalAcceleratorPaginationConfiguration, + input: ListCustomRoutingEndpointGroupsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCustomRoutingEndpointGroupsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListCustomRoutingListenersPaginator.ts b/clients/client-global-accelerator/pagination/ListCustomRoutingListenersPaginator.ts new file mode 100644 index 0000000000000..3255bab558ce7 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListCustomRoutingListenersPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingListenersCommand, + ListCustomRoutingListenersCommandInput, + ListCustomRoutingListenersCommandOutput, +} from "../commands/ListCustomRoutingListenersCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListCustomRoutingListenersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCustomRoutingListenersCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListCustomRoutingListenersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCustomRoutingListeners(input, ...args); +}; +export async function* paginateListCustomRoutingListeners( + config: GlobalAcceleratorPaginationConfiguration, + input: ListCustomRoutingListenersCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCustomRoutingListenersCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsByDestinationPaginator.ts b/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsByDestinationPaginator.ts new file mode 100644 index 0000000000000..46e449fc17fe0 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsByDestinationPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingPortMappingsByDestinationCommand, + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput, +} from "../commands/ListCustomRoutingPortMappingsByDestinationCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListCustomRoutingPortMappingsByDestinationCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCustomRoutingPortMappingsByDestinationCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListCustomRoutingPortMappingsByDestinationCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCustomRoutingPortMappingsByDestination(input, ...args); +}; +export async function* paginateListCustomRoutingPortMappingsByDestination( + config: GlobalAcceleratorPaginationConfiguration, + input: ListCustomRoutingPortMappingsByDestinationCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCustomRoutingPortMappingsByDestinationCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsPaginator.ts b/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsPaginator.ts new file mode 100644 index 0000000000000..05652cca3a2f6 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListCustomRoutingPortMappingsPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListCustomRoutingPortMappingsCommand, + ListCustomRoutingPortMappingsCommandInput, + ListCustomRoutingPortMappingsCommandOutput, +} from "../commands/ListCustomRoutingPortMappingsCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListCustomRoutingPortMappingsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCustomRoutingPortMappingsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListCustomRoutingPortMappingsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCustomRoutingPortMappings(input, ...args); +}; +export async function* paginateListCustomRoutingPortMappings( + config: GlobalAcceleratorPaginationConfiguration, + input: ListCustomRoutingPortMappingsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCustomRoutingPortMappingsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListEndpointGroupsPaginator.ts b/clients/client-global-accelerator/pagination/ListEndpointGroupsPaginator.ts new file mode 100644 index 0000000000000..19a86ec34bdce --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListEndpointGroupsPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListEndpointGroupsCommand, + ListEndpointGroupsCommandInput, + ListEndpointGroupsCommandOutput, +} from "../commands/ListEndpointGroupsCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListEndpointGroupsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListEndpointGroupsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListEndpointGroupsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listEndpointGroups(input, ...args); +}; +export async function* paginateListEndpointGroups( + config: GlobalAcceleratorPaginationConfiguration, + input: ListEndpointGroupsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListEndpointGroupsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/pagination/ListListenersPaginator.ts b/clients/client-global-accelerator/pagination/ListListenersPaginator.ts new file mode 100644 index 0000000000000..195f3b4aa9fd1 --- /dev/null +++ b/clients/client-global-accelerator/pagination/ListListenersPaginator.ts @@ -0,0 +1,57 @@ +import { GlobalAccelerator } from "../GlobalAccelerator"; +import { GlobalAcceleratorClient } from "../GlobalAcceleratorClient"; +import { + ListListenersCommand, + ListListenersCommandInput, + ListListenersCommandOutput, +} from "../commands/ListListenersCommand"; +import { GlobalAcceleratorPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: GlobalAcceleratorClient, + input: ListListenersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListListenersCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: GlobalAccelerator, + input: ListListenersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listListeners(input, ...args); +}; +export async function* paginateListListeners( + config: GlobalAcceleratorPaginationConfiguration, + input: ListListenersCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListListenersCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof GlobalAccelerator) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof GlobalAcceleratorClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected GlobalAccelerator | GlobalAcceleratorClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-global-accelerator/protocols/Aws_json1_1.ts b/clients/client-global-accelerator/protocols/Aws_json1_1.ts index 9a35f68b97b6c..e5fee7664afae 100644 --- a/clients/client-global-accelerator/protocols/Aws_json1_1.ts +++ b/clients/client-global-accelerator/protocols/Aws_json1_1.ts @@ -1,16 +1,52 @@ +import { + AddCustomRoutingEndpointsCommandInput, + AddCustomRoutingEndpointsCommandOutput, +} from "../commands/AddCustomRoutingEndpointsCommand"; import { AdvertiseByoipCidrCommandInput, AdvertiseByoipCidrCommandOutput } from "../commands/AdvertiseByoipCidrCommand"; +import { + AllowCustomRoutingTrafficCommandInput, + AllowCustomRoutingTrafficCommandOutput, +} from "../commands/AllowCustomRoutingTrafficCommand"; import { CreateAcceleratorCommandInput, CreateAcceleratorCommandOutput } from "../commands/CreateAcceleratorCommand"; +import { + CreateCustomRoutingAcceleratorCommandInput, + CreateCustomRoutingAcceleratorCommandOutput, +} from "../commands/CreateCustomRoutingAcceleratorCommand"; +import { + CreateCustomRoutingEndpointGroupCommandInput, + CreateCustomRoutingEndpointGroupCommandOutput, +} from "../commands/CreateCustomRoutingEndpointGroupCommand"; +import { + CreateCustomRoutingListenerCommandInput, + CreateCustomRoutingListenerCommandOutput, +} from "../commands/CreateCustomRoutingListenerCommand"; import { CreateEndpointGroupCommandInput, CreateEndpointGroupCommandOutput, } from "../commands/CreateEndpointGroupCommand"; import { CreateListenerCommandInput, CreateListenerCommandOutput } from "../commands/CreateListenerCommand"; import { DeleteAcceleratorCommandInput, DeleteAcceleratorCommandOutput } from "../commands/DeleteAcceleratorCommand"; +import { + DeleteCustomRoutingAcceleratorCommandInput, + DeleteCustomRoutingAcceleratorCommandOutput, +} from "../commands/DeleteCustomRoutingAcceleratorCommand"; +import { + DeleteCustomRoutingEndpointGroupCommandInput, + DeleteCustomRoutingEndpointGroupCommandOutput, +} from "../commands/DeleteCustomRoutingEndpointGroupCommand"; +import { + DeleteCustomRoutingListenerCommandInput, + DeleteCustomRoutingListenerCommandOutput, +} from "../commands/DeleteCustomRoutingListenerCommand"; import { DeleteEndpointGroupCommandInput, DeleteEndpointGroupCommandOutput, } from "../commands/DeleteEndpointGroupCommand"; import { DeleteListenerCommandInput, DeleteListenerCommandOutput } from "../commands/DeleteListenerCommand"; +import { + DenyCustomRoutingTrafficCommandInput, + DenyCustomRoutingTrafficCommandOutput, +} from "../commands/DenyCustomRoutingTrafficCommand"; import { DeprovisionByoipCidrCommandInput, DeprovisionByoipCidrCommandOutput, @@ -23,6 +59,22 @@ import { DescribeAcceleratorCommandInput, DescribeAcceleratorCommandOutput, } from "../commands/DescribeAcceleratorCommand"; +import { + DescribeCustomRoutingAcceleratorAttributesCommandInput, + DescribeCustomRoutingAcceleratorAttributesCommandOutput, +} from "../commands/DescribeCustomRoutingAcceleratorAttributesCommand"; +import { + DescribeCustomRoutingAcceleratorCommandInput, + DescribeCustomRoutingAcceleratorCommandOutput, +} from "../commands/DescribeCustomRoutingAcceleratorCommand"; +import { + DescribeCustomRoutingEndpointGroupCommandInput, + DescribeCustomRoutingEndpointGroupCommandOutput, +} from "../commands/DescribeCustomRoutingEndpointGroupCommand"; +import { + DescribeCustomRoutingListenerCommandInput, + DescribeCustomRoutingListenerCommandOutput, +} from "../commands/DescribeCustomRoutingListenerCommand"; import { DescribeEndpointGroupCommandInput, DescribeEndpointGroupCommandOutput, @@ -30,6 +82,26 @@ import { import { DescribeListenerCommandInput, DescribeListenerCommandOutput } from "../commands/DescribeListenerCommand"; import { ListAcceleratorsCommandInput, ListAcceleratorsCommandOutput } from "../commands/ListAcceleratorsCommand"; import { ListByoipCidrsCommandInput, ListByoipCidrsCommandOutput } from "../commands/ListByoipCidrsCommand"; +import { + ListCustomRoutingAcceleratorsCommandInput, + ListCustomRoutingAcceleratorsCommandOutput, +} from "../commands/ListCustomRoutingAcceleratorsCommand"; +import { + ListCustomRoutingEndpointGroupsCommandInput, + ListCustomRoutingEndpointGroupsCommandOutput, +} from "../commands/ListCustomRoutingEndpointGroupsCommand"; +import { + ListCustomRoutingListenersCommandInput, + ListCustomRoutingListenersCommandOutput, +} from "../commands/ListCustomRoutingListenersCommand"; +import { + ListCustomRoutingPortMappingsByDestinationCommandInput, + ListCustomRoutingPortMappingsByDestinationCommandOutput, +} from "../commands/ListCustomRoutingPortMappingsByDestinationCommand"; +import { + ListCustomRoutingPortMappingsCommandInput, + ListCustomRoutingPortMappingsCommandOutput, +} from "../commands/ListCustomRoutingPortMappingsCommand"; import { ListEndpointGroupsCommandInput, ListEndpointGroupsCommandOutput } from "../commands/ListEndpointGroupsCommand"; import { ListListenersCommandInput, ListListenersCommandOutput } from "../commands/ListListenersCommand"; import { @@ -37,6 +109,10 @@ import { ListTagsForResourceCommandOutput, } from "../commands/ListTagsForResourceCommand"; import { ProvisionByoipCidrCommandInput, ProvisionByoipCidrCommandOutput } from "../commands/ProvisionByoipCidrCommand"; +import { + RemoveCustomRoutingEndpointsCommandInput, + RemoveCustomRoutingEndpointsCommandOutput, +} from "../commands/RemoveCustomRoutingEndpointsCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { @@ -44,6 +120,18 @@ import { UpdateAcceleratorAttributesCommandOutput, } from "../commands/UpdateAcceleratorAttributesCommand"; import { UpdateAcceleratorCommandInput, UpdateAcceleratorCommandOutput } from "../commands/UpdateAcceleratorCommand"; +import { + UpdateCustomRoutingAcceleratorAttributesCommandInput, + UpdateCustomRoutingAcceleratorAttributesCommandOutput, +} from "../commands/UpdateCustomRoutingAcceleratorAttributesCommand"; +import { + UpdateCustomRoutingAcceleratorCommandInput, + UpdateCustomRoutingAcceleratorCommandOutput, +} from "../commands/UpdateCustomRoutingAcceleratorCommand"; +import { + UpdateCustomRoutingListenerCommandInput, + UpdateCustomRoutingListenerCommandOutput, +} from "../commands/UpdateCustomRoutingListenerCommand"; import { UpdateEndpointGroupCommandInput, UpdateEndpointGroupCommandOutput, @@ -56,38 +144,72 @@ import { AcceleratorNotDisabledException, AcceleratorNotFoundException, AccessDeniedException, + AddCustomRoutingEndpointsRequest, + AddCustomRoutingEndpointsResponse, AdvertiseByoipCidrRequest, AdvertiseByoipCidrResponse, + AllowCustomRoutingTrafficRequest, AssociatedEndpointGroupFoundException, AssociatedListenerFoundException, ByoipCidr, ByoipCidrEvent, ByoipCidrNotFoundException, CidrAuthorizationContext, + ConflictException, CreateAcceleratorRequest, CreateAcceleratorResponse, + CreateCustomRoutingAcceleratorRequest, + CreateCustomRoutingAcceleratorResponse, + CreateCustomRoutingEndpointGroupRequest, + CreateCustomRoutingEndpointGroupResponse, + CreateCustomRoutingListenerRequest, + CreateCustomRoutingListenerResponse, CreateEndpointGroupRequest, CreateEndpointGroupResponse, CreateListenerRequest, CreateListenerResponse, + CustomRoutingAccelerator, + CustomRoutingAcceleratorAttributes, + CustomRoutingDestinationConfiguration, + CustomRoutingDestinationDescription, + CustomRoutingEndpointConfiguration, + CustomRoutingEndpointDescription, + CustomRoutingEndpointGroup, + CustomRoutingListener, + CustomRoutingProtocol, DeleteAcceleratorRequest, + DeleteCustomRoutingAcceleratorRequest, + DeleteCustomRoutingEndpointGroupRequest, + DeleteCustomRoutingListenerRequest, DeleteEndpointGroupRequest, DeleteListenerRequest, + DenyCustomRoutingTrafficRequest, DeprovisionByoipCidrRequest, DeprovisionByoipCidrResponse, DescribeAcceleratorAttributesRequest, DescribeAcceleratorAttributesResponse, DescribeAcceleratorRequest, DescribeAcceleratorResponse, + DescribeCustomRoutingAcceleratorAttributesRequest, + DescribeCustomRoutingAcceleratorAttributesResponse, + DescribeCustomRoutingAcceleratorRequest, + DescribeCustomRoutingAcceleratorResponse, + DescribeCustomRoutingEndpointGroupRequest, + DescribeCustomRoutingEndpointGroupResponse, + DescribeCustomRoutingListenerRequest, + DescribeCustomRoutingListenerResponse, DescribeEndpointGroupRequest, DescribeEndpointGroupResponse, DescribeListenerRequest, DescribeListenerResponse, + DestinationPortMapping, + EndpointAlreadyExistsException, EndpointConfiguration, EndpointDescription, EndpointGroup, EndpointGroupAlreadyExistsException, EndpointGroupNotFoundException, + EndpointNotFoundException, IncorrectCidrStateException, InternalServiceErrorException, InvalidArgumentException, @@ -99,6 +221,16 @@ import { ListAcceleratorsResponse, ListByoipCidrsRequest, ListByoipCidrsResponse, + ListCustomRoutingAcceleratorsRequest, + ListCustomRoutingAcceleratorsResponse, + ListCustomRoutingEndpointGroupsRequest, + ListCustomRoutingEndpointGroupsResponse, + ListCustomRoutingListenersRequest, + ListCustomRoutingListenersResponse, + ListCustomRoutingPortMappingsByDestinationRequest, + ListCustomRoutingPortMappingsByDestinationResponse, + ListCustomRoutingPortMappingsRequest, + ListCustomRoutingPortMappingsResponse, ListEndpointGroupsRequest, ListEndpointGroupsResponse, ListListenersRequest, @@ -107,10 +239,14 @@ import { ListTagsForResourceResponse, Listener, ListenerNotFoundException, + PortMapping, PortOverride, PortRange, + Protocol, ProvisionByoipCidrRequest, ProvisionByoipCidrResponse, + RemoveCustomRoutingEndpointsRequest, + SocketAddress, Tag, TagResourceRequest, TagResourceResponse, @@ -120,6 +256,12 @@ import { UpdateAcceleratorAttributesResponse, UpdateAcceleratorRequest, UpdateAcceleratorResponse, + UpdateCustomRoutingAcceleratorAttributesRequest, + UpdateCustomRoutingAcceleratorAttributesResponse, + UpdateCustomRoutingAcceleratorRequest, + UpdateCustomRoutingAcceleratorResponse, + UpdateCustomRoutingListenerRequest, + UpdateCustomRoutingListenerResponse, UpdateEndpointGroupRequest, UpdateEndpointGroupResponse, UpdateListenerRequest, @@ -138,6 +280,19 @@ import { } from "@aws-sdk/types"; import { v4 as generateIdempotencyToken } from "uuid"; +export const serializeAws_json1_1AddCustomRoutingEndpointsCommand = async ( + input: AddCustomRoutingEndpointsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.AddCustomRoutingEndpoints", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1AddCustomRoutingEndpointsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1AdvertiseByoipCidrCommand = async ( input: AdvertiseByoipCidrCommandInput, context: __SerdeContext @@ -151,6 +306,19 @@ export const serializeAws_json1_1AdvertiseByoipCidrCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1AllowCustomRoutingTrafficCommand = async ( + input: AllowCustomRoutingTrafficCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.AllowCustomRoutingTraffic", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1AllowCustomRoutingTrafficRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateAcceleratorCommand = async ( input: CreateAcceleratorCommandInput, context: __SerdeContext @@ -164,6 +332,45 @@ export const serializeAws_json1_1CreateAcceleratorCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateCustomRoutingAcceleratorCommand = async ( + input: CreateCustomRoutingAcceleratorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.CreateCustomRoutingAccelerator", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateCustomRoutingAcceleratorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateCustomRoutingEndpointGroupCommand = async ( + input: CreateCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.CreateCustomRoutingEndpointGroup", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateCustomRoutingEndpointGroupRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateCustomRoutingListenerCommand = async ( + input: CreateCustomRoutingListenerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.CreateCustomRoutingListener", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateCustomRoutingListenerRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateEndpointGroupCommand = async ( input: CreateEndpointGroupCommandInput, context: __SerdeContext @@ -203,6 +410,45 @@ export const serializeAws_json1_1DeleteAcceleratorCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteCustomRoutingAcceleratorCommand = async ( + input: DeleteCustomRoutingAcceleratorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DeleteCustomRoutingAccelerator", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteCustomRoutingAcceleratorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand = async ( + input: DeleteCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DeleteCustomRoutingEndpointGroup", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteCustomRoutingEndpointGroupRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteCustomRoutingListenerCommand = async ( + input: DeleteCustomRoutingListenerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DeleteCustomRoutingListener", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteCustomRoutingListenerRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteEndpointGroupCommand = async ( input: DeleteEndpointGroupCommandInput, context: __SerdeContext @@ -229,6 +475,19 @@ export const serializeAws_json1_1DeleteListenerCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DenyCustomRoutingTrafficCommand = async ( + input: DenyCustomRoutingTrafficCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DenyCustomRoutingTraffic", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DenyCustomRoutingTrafficRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeprovisionByoipCidrCommand = async ( input: DeprovisionByoipCidrCommandInput, context: __SerdeContext @@ -268,6 +527,58 @@ export const serializeAws_json1_1DescribeAcceleratorAttributesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeCustomRoutingAcceleratorCommand = async ( + input: DescribeCustomRoutingAcceleratorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DescribeCustomRoutingAccelerator", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeCustomRoutingAcceleratorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand = async ( + input: DescribeCustomRoutingAcceleratorAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DescribeCustomRoutingAcceleratorAttributes", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand = async ( + input: DescribeCustomRoutingEndpointGroupCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DescribeCustomRoutingEndpointGroup", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeCustomRoutingEndpointGroupRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeCustomRoutingListenerCommand = async ( + input: DescribeCustomRoutingListenerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.DescribeCustomRoutingListener", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeCustomRoutingListenerRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeEndpointGroupCommand = async ( input: DescribeEndpointGroupCommandInput, context: __SerdeContext @@ -320,6 +631,71 @@ export const serializeAws_json1_1ListByoipCidrsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListCustomRoutingAcceleratorsCommand = async ( + input: ListCustomRoutingAcceleratorsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.ListCustomRoutingAccelerators", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCustomRoutingAcceleratorsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListCustomRoutingEndpointGroupsCommand = async ( + input: ListCustomRoutingEndpointGroupsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.ListCustomRoutingEndpointGroups", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCustomRoutingEndpointGroupsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListCustomRoutingListenersCommand = async ( + input: ListCustomRoutingListenersCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.ListCustomRoutingListeners", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCustomRoutingListenersRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListCustomRoutingPortMappingsCommand = async ( + input: ListCustomRoutingPortMappingsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.ListCustomRoutingPortMappings", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCustomRoutingPortMappingsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand = async ( + input: ListCustomRoutingPortMappingsByDestinationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.ListCustomRoutingPortMappingsByDestination", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCustomRoutingPortMappingsByDestinationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListEndpointGroupsCommand = async ( input: ListEndpointGroupsCommandInput, context: __SerdeContext @@ -372,6 +748,19 @@ export const serializeAws_json1_1ProvisionByoipCidrCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1RemoveCustomRoutingEndpointsCommand = async ( + input: RemoveCustomRoutingEndpointsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.RemoveCustomRoutingEndpoints", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1RemoveCustomRoutingEndpointsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1TagResourceCommand = async ( input: TagResourceCommandInput, context: __SerdeContext @@ -424,6 +813,45 @@ export const serializeAws_json1_1UpdateAcceleratorAttributesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1UpdateCustomRoutingAcceleratorCommand = async ( + input: UpdateCustomRoutingAcceleratorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.UpdateCustomRoutingAccelerator", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateCustomRoutingAcceleratorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand = async ( + input: UpdateCustomRoutingAcceleratorAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.UpdateCustomRoutingAcceleratorAttributes", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateCustomRoutingListenerCommand = async ( + input: UpdateCustomRoutingListenerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "GlobalAccelerator_V20180706.UpdateCustomRoutingListener", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateCustomRoutingListenerRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1UpdateEndpointGroupCommand = async ( input: UpdateEndpointGroupCommandInput, context: __SerdeContext @@ -463,27 +891,27 @@ export const serializeAws_json1_1WithdrawByoipCidrCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; -export const deserializeAws_json1_1AdvertiseByoipCidrCommand = async ( +export const deserializeAws_json1_1AddCustomRoutingEndpointsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1AdvertiseByoipCidrCommandError(output, context); + return deserializeAws_json1_1AddCustomRoutingEndpointsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1AdvertiseByoipCidrResponse(data, context); - const response: AdvertiseByoipCidrCommandOutput = { + contents = deserializeAws_json1_1AddCustomRoutingEndpointsResponse(data, context); + const response: AddCustomRoutingEndpointsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1AdvertiseByoipCidrCommandError = async ( +const deserializeAws_json1_1AddCustomRoutingEndpointsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -501,18 +929,26 @@ const deserializeAws_json1_1AdvertiseByoipCidrCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ByoipCidrNotFoundException": - case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": + case "ConflictException": + case "com.amazonaws.globalaccelerator#ConflictException": response = { - ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "IncorrectCidrStateException": - case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + case "EndpointAlreadyExistsException": + case "com.amazonaws.globalaccelerator#EndpointAlreadyExistsException": response = { - ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1EndpointAlreadyExistsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -533,6 +969,14 @@ const deserializeAws_json1_1AdvertiseByoipCidrCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -550,27 +994,27 @@ const deserializeAws_json1_1AdvertiseByoipCidrCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateAcceleratorCommand = async ( +export const deserializeAws_json1_1AdvertiseByoipCidrCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateAcceleratorCommandError(output, context); + return deserializeAws_json1_1AdvertiseByoipCidrCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateAcceleratorResponse(data, context); - const response: CreateAcceleratorCommandOutput = { + contents = deserializeAws_json1_1AdvertiseByoipCidrResponse(data, context); + const response: AdvertiseByoipCidrCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateAcceleratorCommandError = async ( +const deserializeAws_json1_1AdvertiseByoipCidrCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -580,6 +1024,30 @@ const deserializeAws_json1_1CreateAcceleratorCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ByoipCidrNotFoundException": + case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": + response = { + ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "IncorrectCidrStateException": + case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + response = { + ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -596,14 +1064,6 @@ const deserializeAws_json1_1CreateAcceleratorCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "LimitExceededException": - case "com.amazonaws.globalaccelerator#LimitExceededException": - response = { - ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -621,27 +1081,24 @@ const deserializeAws_json1_1CreateAcceleratorCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateEndpointGroupCommand = async ( +export const deserializeAws_json1_1AllowCustomRoutingTrafficCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateEndpointGroupCommandError(output, context); + return deserializeAws_json1_1AllowCustomRoutingTrafficCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1CreateEndpointGroupResponse(data, context); - const response: CreateEndpointGroupCommandOutput = { + await collectBody(output.body, context); + const response: AllowCustomRoutingTrafficCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateEndpointGroupCommandError = async ( +const deserializeAws_json1_1AllowCustomRoutingTrafficCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -651,30 +1108,6 @@ const deserializeAws_json1_1CreateEndpointGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": - response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "EndpointGroupAlreadyExistsException": - case "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException": - response = { - ...(await deserializeAws_json1_1EndpointGroupAlreadyExistsExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -691,22 +1124,6 @@ const deserializeAws_json1_1CreateEndpointGroupCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "LimitExceededException": - case "com.amazonaws.globalaccelerator#LimitExceededException": - response = { - ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ListenerNotFoundException": - case "com.amazonaws.globalaccelerator#ListenerNotFoundException": - response = { - ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -724,27 +1141,27 @@ const deserializeAws_json1_1CreateEndpointGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateListenerCommand = async ( +export const deserializeAws_json1_1CreateAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateListenerCommandError(output, context); + return deserializeAws_json1_1CreateAcceleratorCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateListenerResponse(data, context); - const response: CreateListenerCommandOutput = { + contents = deserializeAws_json1_1CreateAcceleratorResponse(data, context); + const response: CreateAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateListenerCommandError = async ( +const deserializeAws_json1_1CreateAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -754,14 +1171,6 @@ const deserializeAws_json1_1CreateListenerCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -778,14 +1187,6 @@ const deserializeAws_json1_1CreateListenerCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidPortRangeException": - case "com.amazonaws.globalaccelerator#InvalidPortRangeException": - response = { - ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "LimitExceededException": case "com.amazonaws.globalaccelerator#LimitExceededException": response = { @@ -811,24 +1212,27 @@ const deserializeAws_json1_1CreateListenerCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteAcceleratorCommand = async ( +export const deserializeAws_json1_1CreateCustomRoutingAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteAcceleratorCommandError(output, context); + return deserializeAws_json1_1CreateCustomRoutingAcceleratorCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteAcceleratorCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateCustomRoutingAcceleratorResponse(data, context); + const response: CreateCustomRoutingAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteAcceleratorCommandError = async ( +const deserializeAws_json1_1CreateCustomRoutingAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -838,26 +1242,10 @@ const deserializeAws_json1_1DeleteAcceleratorCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotDisabledException": - case "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotDisabledExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "AssociatedListenerFoundException": - case "com.amazonaws.globalaccelerator#AssociatedListenerFoundException": + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": response = { - ...(await deserializeAws_json1_1AssociatedListenerFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -878,6 +1266,14 @@ const deserializeAws_json1_1DeleteAcceleratorCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -895,24 +1291,27 @@ const deserializeAws_json1_1DeleteAcceleratorCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteEndpointGroupCommand = async ( +export const deserializeAws_json1_1CreateCustomRoutingEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteEndpointGroupCommandError(output, context); + return deserializeAws_json1_1CreateCustomRoutingEndpointGroupCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteEndpointGroupCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateCustomRoutingEndpointGroupResponse(data, context); + const response: CreateCustomRoutingEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteEndpointGroupCommandError = async ( +const deserializeAws_json1_1CreateCustomRoutingEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -922,10 +1321,26 @@ const deserializeAws_json1_1DeleteEndpointGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "EndpointGroupNotFoundException": - case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": response = { - ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointGroupAlreadyExistsException": + case "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException": + response = { + ...(await deserializeAws_json1_1EndpointGroupAlreadyExistsExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -946,6 +1361,30 @@ const deserializeAws_json1_1DeleteEndpointGroupCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "InvalidPortRangeException": + case "com.amazonaws.globalaccelerator#InvalidPortRangeException": + response = { + ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -963,24 +1402,27 @@ const deserializeAws_json1_1DeleteEndpointGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteListenerCommand = async ( +export const deserializeAws_json1_1CreateCustomRoutingListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteListenerCommandError(output, context); + return deserializeAws_json1_1CreateCustomRoutingListenerCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteListenerCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateCustomRoutingListenerResponse(data, context); + const response: CreateCustomRoutingListenerCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteListenerCommandError = async ( +const deserializeAws_json1_1CreateCustomRoutingListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -990,10 +1432,10 @@ const deserializeAws_json1_1DeleteListenerCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AssociatedEndpointGroupFoundException": - case "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException": + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": response = { - ...(await deserializeAws_json1_1AssociatedEndpointGroupFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1014,10 +1456,18 @@ const deserializeAws_json1_1DeleteListenerCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ListenerNotFoundException": - case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + case "InvalidPortRangeException": + case "com.amazonaws.globalaccelerator#InvalidPortRangeException": response = { - ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1039,27 +1489,27 @@ const deserializeAws_json1_1DeleteListenerCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeprovisionByoipCidrCommand = async ( +export const deserializeAws_json1_1CreateEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeprovisionByoipCidrCommandError(output, context); + return deserializeAws_json1_1CreateEndpointGroupCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DeprovisionByoipCidrResponse(data, context); - const response: DeprovisionByoipCidrCommandOutput = { + contents = deserializeAws_json1_1CreateEndpointGroupResponse(data, context); + const response: CreateEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeprovisionByoipCidrCommandError = async ( +const deserializeAws_json1_1CreateEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1069,26 +1519,26 @@ const deserializeAws_json1_1DeprovisionByoipCidrCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "ByoipCidrNotFoundException": - case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": response = { - ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "IncorrectCidrStateException": - case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + case "EndpointGroupAlreadyExistsException": + case "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException": response = { - ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1EndpointGroupAlreadyExistsExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1109,6 +1559,22 @@ const deserializeAws_json1_1DeprovisionByoipCidrCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1126,27 +1592,27 @@ const deserializeAws_json1_1DeprovisionByoipCidrCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeAcceleratorCommand = async ( +export const deserializeAws_json1_1CreateListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAcceleratorCommandError(output, context); + return deserializeAws_json1_1CreateListenerCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeAcceleratorResponse(data, context); - const response: DescribeAcceleratorCommandOutput = { + contents = deserializeAws_json1_1CreateListenerResponse(data, context); + const response: CreateListenerCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAcceleratorCommandError = async ( +const deserializeAws_json1_1CreateListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1180,6 +1646,22 @@ const deserializeAws_json1_1DescribeAcceleratorCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "InvalidPortRangeException": + case "com.amazonaws.globalaccelerator#InvalidPortRangeException": + response = { + ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1197,27 +1679,24 @@ const deserializeAws_json1_1DescribeAcceleratorCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeAcceleratorAttributesCommand = async ( +export const deserializeAws_json1_1DeleteAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAcceleratorAttributesCommandError(output, context); + return deserializeAws_json1_1DeleteAcceleratorCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeAcceleratorAttributesResponse(data, context); - const response: DescribeAcceleratorAttributesCommandOutput = { + await collectBody(output.body, context); + const response: DeleteAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAcceleratorAttributesCommandError = async ( +const deserializeAws_json1_1DeleteAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1227,6 +1706,14 @@ const deserializeAws_json1_1DescribeAcceleratorAttributesCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "AcceleratorNotDisabledException": + case "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotDisabledExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "AcceleratorNotFoundException": case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": response = { @@ -1235,6 +1722,14 @@ const deserializeAws_json1_1DescribeAcceleratorAttributesCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "AssociatedListenerFoundException": + case "com.amazonaws.globalaccelerator#AssociatedListenerFoundException": + response = { + ...(await deserializeAws_json1_1AssociatedListenerFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -1268,27 +1763,24 @@ const deserializeAws_json1_1DescribeAcceleratorAttributesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeEndpointGroupCommand = async ( +export const deserializeAws_json1_1DeleteCustomRoutingAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeEndpointGroupCommandError(output, context); + return deserializeAws_json1_1DeleteCustomRoutingAcceleratorCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeEndpointGroupResponse(data, context); - const response: DescribeEndpointGroupCommandOutput = { + await collectBody(output.body, context); + const response: DeleteCustomRoutingAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeEndpointGroupCommandError = async ( +const deserializeAws_json1_1DeleteCustomRoutingAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1298,10 +1790,26 @@ const deserializeAws_json1_1DescribeEndpointGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "EndpointGroupNotFoundException": - case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + case "AcceleratorNotDisabledException": + case "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException": response = { - ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AcceleratorNotDisabledExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AssociatedListenerFoundException": + case "com.amazonaws.globalaccelerator#AssociatedListenerFoundException": + response = { + ...(await deserializeAws_json1_1AssociatedListenerFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1339,27 +1847,24 @@ const deserializeAws_json1_1DescribeEndpointGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeListenerCommand = async ( +export const deserializeAws_json1_1DeleteCustomRoutingEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeListenerCommandError(output, context); + return deserializeAws_json1_1DeleteCustomRoutingEndpointGroupCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeListenerResponse(data, context); - const response: DescribeListenerCommandOutput = { + await collectBody(output.body, context); + const response: DeleteCustomRoutingEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeListenerCommandError = async ( +const deserializeAws_json1_1DeleteCustomRoutingEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1369,6 +1874,14 @@ const deserializeAws_json1_1DescribeListenerCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -1385,14 +1898,6 @@ const deserializeAws_json1_1DescribeListenerCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ListenerNotFoundException": - case "com.amazonaws.globalaccelerator#ListenerNotFoundException": - response = { - ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1410,27 +1915,24 @@ const deserializeAws_json1_1DescribeListenerCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListAcceleratorsCommand = async ( +export const deserializeAws_json1_1DeleteCustomRoutingListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListAcceleratorsCommandError(output, context); + return deserializeAws_json1_1DeleteCustomRoutingListenerCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1ListAcceleratorsResponse(data, context); - const response: ListAcceleratorsCommandOutput = { + await collectBody(output.body, context); + const response: DeleteCustomRoutingListenerCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListAcceleratorsCommandError = async ( +const deserializeAws_json1_1DeleteCustomRoutingListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1440,6 +1942,14 @@ const deserializeAws_json1_1ListAcceleratorsCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "AssociatedEndpointGroupFoundException": + case "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException": + response = { + ...(await deserializeAws_json1_1AssociatedEndpointGroupFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -1456,10 +1966,10 @@ const deserializeAws_json1_1ListAcceleratorsCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidNextTokenException": - case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": response = { - ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1481,27 +1991,24 @@ const deserializeAws_json1_1ListAcceleratorsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListByoipCidrsCommand = async ( +export const deserializeAws_json1_1DeleteEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListByoipCidrsCommandError(output, context); + return deserializeAws_json1_1DeleteEndpointGroupCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1ListByoipCidrsResponse(data, context); - const response: ListByoipCidrsCommandOutput = { + await collectBody(output.body, context); + const response: DeleteEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListByoipCidrsCommandError = async ( +const deserializeAws_json1_1DeleteEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1511,10 +2018,10 @@ const deserializeAws_json1_1ListByoipCidrsCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1535,14 +2042,6 @@ const deserializeAws_json1_1ListByoipCidrsCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidNextTokenException": - case "com.amazonaws.globalaccelerator#InvalidNextTokenException": - response = { - ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1560,27 +2059,24 @@ const deserializeAws_json1_1ListByoipCidrsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListEndpointGroupsCommand = async ( +export const deserializeAws_json1_1DeleteListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListEndpointGroupsCommandError(output, context); + return deserializeAws_json1_1DeleteListenerCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1ListEndpointGroupsResponse(data, context); - const response: ListEndpointGroupsCommandOutput = { + await collectBody(output.body, context); + const response: DeleteListenerCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListEndpointGroupsCommandError = async ( +const deserializeAws_json1_1DeleteListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1590,6 +2086,14 @@ const deserializeAws_json1_1ListEndpointGroupsCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "AssociatedEndpointGroupFoundException": + case "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException": + response = { + ...(await deserializeAws_json1_1AssociatedEndpointGroupFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -1606,14 +2110,6 @@ const deserializeAws_json1_1ListEndpointGroupsCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidNextTokenException": - case "com.amazonaws.globalaccelerator#InvalidNextTokenException": - response = { - ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ListenerNotFoundException": case "com.amazonaws.globalaccelerator#ListenerNotFoundException": response = { @@ -1639,27 +2135,24 @@ const deserializeAws_json1_1ListEndpointGroupsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListListenersCommand = async ( +export const deserializeAws_json1_1DenyCustomRoutingTrafficCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListListenersCommandError(output, context); + return deserializeAws_json1_1DenyCustomRoutingTrafficCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1ListListenersResponse(data, context); - const response: ListListenersCommandOutput = { + await collectBody(output.body, context); + const response: DenyCustomRoutingTrafficCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListListenersCommandError = async ( +const deserializeAws_json1_1DenyCustomRoutingTrafficCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1669,14 +2162,6 @@ const deserializeAws_json1_1ListListenersCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -1693,14 +2178,6 @@ const deserializeAws_json1_1ListListenersCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidNextTokenException": - case "com.amazonaws.globalaccelerator#InvalidNextTokenException": - response = { - ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1718,27 +2195,27 @@ const deserializeAws_json1_1ListListenersCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListTagsForResourceCommand = async ( +export const deserializeAws_json1_1DeprovisionByoipCidrCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + return deserializeAws_json1_1DeprovisionByoipCidrCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); - const response: ListTagsForResourceCommandOutput = { + contents = deserializeAws_json1_1DeprovisionByoipCidrResponse(data, context); + const response: DeprovisionByoipCidrCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListTagsForResourceCommandError = async ( +const deserializeAws_json1_1DeprovisionByoipCidrCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1748,10 +2225,26 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ByoipCidrNotFoundException": + case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": + response = { + ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "IncorrectCidrStateException": + case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + response = { + ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1789,27 +2282,27 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ProvisionByoipCidrCommand = async ( +export const deserializeAws_json1_1DescribeAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ProvisionByoipCidrCommandError(output, context); + return deserializeAws_json1_1DescribeAcceleratorCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ProvisionByoipCidrResponse(data, context); - const response: ProvisionByoipCidrCommandOutput = { + contents = deserializeAws_json1_1DescribeAcceleratorResponse(data, context); + const response: DescribeAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ProvisionByoipCidrCommandError = async ( +const deserializeAws_json1_1DescribeAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1819,18 +2312,10 @@ const deserializeAws_json1_1ProvisionByoipCidrCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": - response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "IncorrectCidrStateException": - case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": response = { - ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1851,14 +2336,6 @@ const deserializeAws_json1_1ProvisionByoipCidrCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "LimitExceededException": - case "com.amazonaws.globalaccelerator#LimitExceededException": - response = { - ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1876,27 +2353,27 @@ const deserializeAws_json1_1ProvisionByoipCidrCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1TagResourceCommand = async ( +export const deserializeAws_json1_1DescribeAcceleratorAttributesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1TagResourceCommandError(output, context); + return deserializeAws_json1_1DescribeAcceleratorAttributesCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1TagResourceResponse(data, context); - const response: TagResourceCommandOutput = { + contents = deserializeAws_json1_1DescribeAcceleratorAttributesResponse(data, context); + const response: DescribeAcceleratorAttributesCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1TagResourceCommandError = async ( +const deserializeAws_json1_1DescribeAcceleratorAttributesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1947,27 +2424,27 @@ const deserializeAws_json1_1TagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UntagResourceCommand = async ( +export const deserializeAws_json1_1DescribeCustomRoutingAcceleratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UntagResourceCommandError(output, context); + return deserializeAws_json1_1DescribeCustomRoutingAcceleratorCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UntagResourceResponse(data, context); - const response: UntagResourceCommandOutput = { + contents = deserializeAws_json1_1DescribeCustomRoutingAcceleratorResponse(data, context); + const response: DescribeCustomRoutingAcceleratorCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UntagResourceCommandError = async ( +const deserializeAws_json1_1DescribeCustomRoutingAcceleratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2018,27 +2495,27 @@ const deserializeAws_json1_1UntagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateAcceleratorCommand = async ( +export const deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateAcceleratorCommandError(output, context); + return deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateAcceleratorResponse(data, context); - const response: UpdateAcceleratorCommandOutput = { + contents = deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesResponse(data, context); + const response: DescribeCustomRoutingAcceleratorAttributesCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateAcceleratorCommandError = async ( +const deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2089,27 +2566,27 @@ const deserializeAws_json1_1UpdateAcceleratorCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateAcceleratorAttributesCommand = async ( +export const deserializeAws_json1_1DescribeCustomRoutingEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateAcceleratorAttributesCommandError(output, context); + return deserializeAws_json1_1DescribeCustomRoutingEndpointGroupCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateAcceleratorAttributesResponse(data, context); - const response: UpdateAcceleratorAttributesCommandOutput = { + contents = deserializeAws_json1_1DescribeCustomRoutingEndpointGroupResponse(data, context); + const response: DescribeCustomRoutingEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateAcceleratorAttributesCommandError = async ( +const deserializeAws_json1_1DescribeCustomRoutingEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2119,18 +2596,10 @@ const deserializeAws_json1_1UpdateAcceleratorAttributesCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AcceleratorNotFoundException": - case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": - response = { - ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -2168,27 +2637,27 @@ const deserializeAws_json1_1UpdateAcceleratorAttributesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateEndpointGroupCommand = async ( +export const deserializeAws_json1_1DescribeCustomRoutingListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateEndpointGroupCommandError(output, context); + return deserializeAws_json1_1DescribeCustomRoutingListenerCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateEndpointGroupResponse(data, context); - const response: UpdateEndpointGroupCommandOutput = { + contents = deserializeAws_json1_1DescribeCustomRoutingListenerResponse(data, context); + const response: DescribeCustomRoutingListenerCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateEndpointGroupCommandError = async ( +const deserializeAws_json1_1DescribeCustomRoutingListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2198,22 +2667,6 @@ const deserializeAws_json1_1UpdateEndpointGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": - response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "EndpointGroupNotFoundException": - case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": - response = { - ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -2230,10 +2683,10 @@ const deserializeAws_json1_1UpdateEndpointGroupCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "LimitExceededException": - case "com.amazonaws.globalaccelerator#LimitExceededException": + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": response = { - ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -2255,27 +2708,27 @@ const deserializeAws_json1_1UpdateEndpointGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateListenerCommand = async ( +export const deserializeAws_json1_1DescribeEndpointGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateListenerCommandError(output, context); + return deserializeAws_json1_1DescribeEndpointGroupCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateListenerResponse(data, context); - const response: UpdateListenerCommandOutput = { + contents = deserializeAws_json1_1DescribeEndpointGroupResponse(data, context); + const response: DescribeEndpointGroupCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateListenerCommandError = async ( +const deserializeAws_json1_1DescribeEndpointGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2285,6 +2738,14 @@ const deserializeAws_json1_1UpdateListenerCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -2301,30 +2762,6 @@ const deserializeAws_json1_1UpdateListenerCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidPortRangeException": - case "com.amazonaws.globalaccelerator#InvalidPortRangeException": - response = { - ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "LimitExceededException": - case "com.amazonaws.globalaccelerator#LimitExceededException": - response = { - ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ListenerNotFoundException": - case "com.amazonaws.globalaccelerator#ListenerNotFoundException": - response = { - ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2342,27 +2779,27 @@ const deserializeAws_json1_1UpdateListenerCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1WithdrawByoipCidrCommand = async ( +export const deserializeAws_json1_1DescribeListenerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1WithdrawByoipCidrCommandError(output, context); + return deserializeAws_json1_1DescribeListenerCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1WithdrawByoipCidrResponse(data, context); - const response: WithdrawByoipCidrCommandOutput = { + contents = deserializeAws_json1_1DescribeListenerResponse(data, context); + const response: DescribeListenerCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1WithdrawByoipCidrCommandError = async ( +const deserializeAws_json1_1DescribeListenerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2372,30 +2809,6 @@ const deserializeAws_json1_1WithdrawByoipCidrCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.globalaccelerator#AccessDeniedException": - response = { - ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ByoipCidrNotFoundException": - case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": - response = { - ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "IncorrectCidrStateException": - case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": - response = { - ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServiceErrorException": case "com.amazonaws.globalaccelerator#InternalServiceErrorException": response = { @@ -2412,7 +2825,1758 @@ const deserializeAws_json1_1WithdrawByoipCidrCommandError = async ( $metadata: deserializeMetadata(output), }; break; - default: + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListAcceleratorsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAcceleratorsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAcceleratorsResponse(data, context); + const response: ListAcceleratorsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAcceleratorsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListByoipCidrsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListByoipCidrsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListByoipCidrsResponse(data, context); + const response: ListByoipCidrsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListByoipCidrsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCustomRoutingAcceleratorsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCustomRoutingAcceleratorsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCustomRoutingAcceleratorsResponse(data, context); + const response: ListCustomRoutingAcceleratorsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCustomRoutingAcceleratorsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCustomRoutingEndpointGroupsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCustomRoutingEndpointGroupsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCustomRoutingEndpointGroupsResponse(data, context); + const response: ListCustomRoutingEndpointGroupsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCustomRoutingEndpointGroupsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCustomRoutingListenersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCustomRoutingListenersCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCustomRoutingListenersResponse(data, context); + const response: ListCustomRoutingListenersCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCustomRoutingListenersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCustomRoutingPortMappingsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCustomRoutingPortMappingsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCustomRoutingPortMappingsResponse(data, context); + const response: ListCustomRoutingPortMappingsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCustomRoutingPortMappingsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationResponse(data, context); + const response: ListCustomRoutingPortMappingsByDestinationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "EndpointNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListEndpointGroupsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListEndpointGroupsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListEndpointGroupsResponse(data, context); + const response: ListEndpointGroupsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListEndpointGroupsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListListenersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListListenersCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListListenersResponse(data, context); + const response: ListListenersCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListListenersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidNextTokenException": + case "com.amazonaws.globalaccelerator#InvalidNextTokenException": + response = { + ...(await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); + const response: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ProvisionByoipCidrCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ProvisionByoipCidrCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ProvisionByoipCidrResponse(data, context); + const response: ProvisionByoipCidrCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ProvisionByoipCidrCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "IncorrectCidrStateException": + case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + response = { + ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1RemoveCustomRoutingEndpointsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1RemoveCustomRoutingEndpointsCommandError(output, context); + } + await collectBody(output.body, context); + const response: RemoveCustomRoutingEndpointsCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1RemoveCustomRoutingEndpointsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.globalaccelerator#ConflictException": + response = { + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1TagResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1TagResourceResponse(data, context); + const response: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UntagResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UntagResourceResponse(data, context); + const response: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateAcceleratorCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateAcceleratorCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateAcceleratorResponse(data, context); + const response: UpdateAcceleratorCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateAcceleratorCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateAcceleratorAttributesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateAcceleratorAttributesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateAcceleratorAttributesResponse(data, context); + const response: UpdateAcceleratorAttributesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateAcceleratorAttributesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateCustomRoutingAcceleratorCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateCustomRoutingAcceleratorCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateCustomRoutingAcceleratorResponse(data, context); + const response: UpdateCustomRoutingAcceleratorCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateCustomRoutingAcceleratorCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesResponse(data, context); + const response: UpdateCustomRoutingAcceleratorAttributesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AcceleratorNotFoundException": + case "com.amazonaws.globalaccelerator#AcceleratorNotFoundException": + response = { + ...(await deserializeAws_json1_1AcceleratorNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateCustomRoutingListenerCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateCustomRoutingListenerCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateCustomRoutingListenerResponse(data, context); + const response: UpdateCustomRoutingListenerCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateCustomRoutingListenerCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidPortRangeException": + case "com.amazonaws.globalaccelerator#InvalidPortRangeException": + response = { + ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateEndpointGroupCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateEndpointGroupCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateEndpointGroupResponse(data, context); + const response: UpdateEndpointGroupCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateEndpointGroupCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "EndpointGroupNotFoundException": + case "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": + response = { + ...(await deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateListenerCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateListenerCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateListenerResponse(data, context); + const response: UpdateListenerCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateListenerCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidPortRangeException": + case "com.amazonaws.globalaccelerator#InvalidPortRangeException": + response = { + ...(await deserializeAws_json1_1InvalidPortRangeExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LimitExceededException": + case "com.amazonaws.globalaccelerator#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ListenerNotFoundException": + case "com.amazonaws.globalaccelerator#ListenerNotFoundException": + response = { + ...(await deserializeAws_json1_1ListenerNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1WithdrawByoipCidrCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1WithdrawByoipCidrCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1WithdrawByoipCidrResponse(data, context); + const response: WithdrawByoipCidrCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1WithdrawByoipCidrCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.globalaccelerator#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ByoipCidrNotFoundException": + case "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException": + response = { + ...(await deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "IncorrectCidrStateException": + case "com.amazonaws.globalaccelerator#IncorrectCidrStateException": + response = { + ...(await deserializeAws_json1_1IncorrectCidrStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServiceErrorException": + case "com.amazonaws.globalaccelerator#InternalServiceErrorException": + response = { + ...(await deserializeAws_json1_1InternalServiceErrorExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidArgumentException": + case "com.amazonaws.globalaccelerator#InvalidArgumentException": + response = { + ...(await deserializeAws_json1_1InvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; response = { @@ -2519,6 +4683,36 @@ const deserializeAws_json1_1ByoipCidrNotFoundExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1ConflictExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1ConflictException(body, context); + const contents: ConflictException = { + name: "ConflictException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1EndpointAlreadyExistsExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1EndpointAlreadyExistsException(body, context); + const contents: EndpointAlreadyExistsException = { + name: "EndpointAlreadyExistsException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1EndpointGroupAlreadyExistsExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -2549,6 +4743,21 @@ const deserializeAws_json1_1EndpointGroupNotFoundExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1EndpointNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1EndpointNotFoundException(body, context); + const contents: EndpointNotFoundException = { + name: "EndpointNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1IncorrectCidrStateExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -2654,6 +4863,21 @@ const deserializeAws_json1_1ListenerNotFoundExceptionResponse = async ( return contents; }; +const serializeAws_json1_1AddCustomRoutingEndpointsRequest = ( + input: AddCustomRoutingEndpointsRequest, + context: __SerdeContext +): any => { + return { + ...(input.EndpointConfigurations !== undefined && { + EndpointConfigurations: serializeAws_json1_1CustomRoutingEndpointConfigurations( + input.EndpointConfigurations, + context + ), + }), + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + }; +}; + const serializeAws_json1_1AdvertiseByoipCidrRequest = ( input: AdvertiseByoipCidrRequest, context: __SerdeContext @@ -2663,6 +4887,25 @@ const serializeAws_json1_1AdvertiseByoipCidrRequest = ( }; }; +const serializeAws_json1_1AllowCustomRoutingTrafficRequest = ( + input: AllowCustomRoutingTrafficRequest, + context: __SerdeContext +): any => { + return { + ...(input.AllowAllTrafficToEndpoint !== undefined && { + AllowAllTrafficToEndpoint: input.AllowAllTrafficToEndpoint, + }), + ...(input.DestinationAddresses !== undefined && { + DestinationAddresses: serializeAws_json1_1DestinationAddresses(input.DestinationAddresses, context), + }), + ...(input.DestinationPorts !== undefined && { + DestinationPorts: serializeAws_json1_1DestinationPorts(input.DestinationPorts, context), + }), + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + ...(input.EndpointId !== undefined && { EndpointId: input.EndpointId }), + }; +}; + const serializeAws_json1_1CidrAuthorizationContext = ( input: CidrAuthorizationContext, context: __SerdeContext @@ -2689,6 +4932,47 @@ const serializeAws_json1_1CreateAcceleratorRequest = ( }; }; +const serializeAws_json1_1CreateCustomRoutingAcceleratorRequest = ( + input: CreateCustomRoutingAcceleratorRequest, + context: __SerdeContext +): any => { + return { + ...(input.Enabled !== undefined && { Enabled: input.Enabled }), + IdempotencyToken: input.IdempotencyToken ?? generateIdempotencyToken(), + ...(input.IpAddressType !== undefined && { IpAddressType: input.IpAddressType }), + ...(input.Name !== undefined && { Name: input.Name }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + }; +}; + +const serializeAws_json1_1CreateCustomRoutingEndpointGroupRequest = ( + input: CreateCustomRoutingEndpointGroupRequest, + context: __SerdeContext +): any => { + return { + ...(input.DestinationConfigurations !== undefined && { + DestinationConfigurations: serializeAws_json1_1CustomRoutingDestinationConfigurations( + input.DestinationConfigurations, + context + ), + }), + ...(input.EndpointGroupRegion !== undefined && { EndpointGroupRegion: input.EndpointGroupRegion }), + IdempotencyToken: input.IdempotencyToken ?? generateIdempotencyToken(), + ...(input.ListenerArn !== undefined && { ListenerArn: input.ListenerArn }), + }; +}; + +const serializeAws_json1_1CreateCustomRoutingListenerRequest = ( + input: CreateCustomRoutingListenerRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + IdempotencyToken: input.IdempotencyToken ?? generateIdempotencyToken(), + ...(input.PortRanges !== undefined && { PortRanges: serializeAws_json1_1PortRanges(input.PortRanges, context) }), + }; +}; + const serializeAws_json1_1CreateEndpointGroupRequest = ( input: CreateEndpointGroupRequest, context: __SerdeContext @@ -2724,6 +5008,49 @@ const serializeAws_json1_1CreateListenerRequest = (input: CreateListenerRequest, }; }; +const serializeAws_json1_1CustomRoutingDestinationConfiguration = ( + input: CustomRoutingDestinationConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.FromPort !== undefined && { FromPort: input.FromPort }), + ...(input.Protocols !== undefined && { + Protocols: serializeAws_json1_1CustomRoutingProtocols(input.Protocols, context), + }), + ...(input.ToPort !== undefined && { ToPort: input.ToPort }), + }; +}; + +const serializeAws_json1_1CustomRoutingDestinationConfigurations = ( + input: CustomRoutingDestinationConfiguration[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_json1_1CustomRoutingDestinationConfiguration(entry, context)); +}; + +const serializeAws_json1_1CustomRoutingEndpointConfiguration = ( + input: CustomRoutingEndpointConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.EndpointId !== undefined && { EndpointId: input.EndpointId }), + }; +}; + +const serializeAws_json1_1CustomRoutingEndpointConfigurations = ( + input: CustomRoutingEndpointConfiguration[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_json1_1CustomRoutingEndpointConfiguration(entry, context)); +}; + +const serializeAws_json1_1CustomRoutingProtocols = ( + input: (CustomRoutingProtocol | string)[], + context: __SerdeContext +): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1DeleteAcceleratorRequest = ( input: DeleteAcceleratorRequest, context: __SerdeContext @@ -2733,6 +5060,33 @@ const serializeAws_json1_1DeleteAcceleratorRequest = ( }; }; +const serializeAws_json1_1DeleteCustomRoutingAcceleratorRequest = ( + input: DeleteCustomRoutingAcceleratorRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + }; +}; + +const serializeAws_json1_1DeleteCustomRoutingEndpointGroupRequest = ( + input: DeleteCustomRoutingEndpointGroupRequest, + context: __SerdeContext +): any => { + return { + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + }; +}; + +const serializeAws_json1_1DeleteCustomRoutingListenerRequest = ( + input: DeleteCustomRoutingListenerRequest, + context: __SerdeContext +): any => { + return { + ...(input.ListenerArn !== undefined && { ListenerArn: input.ListenerArn }), + }; +}; + const serializeAws_json1_1DeleteEndpointGroupRequest = ( input: DeleteEndpointGroupRequest, context: __SerdeContext @@ -2748,30 +5102,83 @@ const serializeAws_json1_1DeleteListenerRequest = (input: DeleteListenerRequest, }; }; -const serializeAws_json1_1DeprovisionByoipCidrRequest = ( - input: DeprovisionByoipCidrRequest, +const serializeAws_json1_1DenyCustomRoutingTrafficRequest = ( + input: DenyCustomRoutingTrafficRequest, + context: __SerdeContext +): any => { + return { + ...(input.DenyAllTrafficToEndpoint !== undefined && { DenyAllTrafficToEndpoint: input.DenyAllTrafficToEndpoint }), + ...(input.DestinationAddresses !== undefined && { + DestinationAddresses: serializeAws_json1_1DestinationAddresses(input.DestinationAddresses, context), + }), + ...(input.DestinationPorts !== undefined && { + DestinationPorts: serializeAws_json1_1DestinationPorts(input.DestinationPorts, context), + }), + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + ...(input.EndpointId !== undefined && { EndpointId: input.EndpointId }), + }; +}; + +const serializeAws_json1_1DeprovisionByoipCidrRequest = ( + input: DeprovisionByoipCidrRequest, + context: __SerdeContext +): any => { + return { + ...(input.Cidr !== undefined && { Cidr: input.Cidr }), + }; +}; + +const serializeAws_json1_1DescribeAcceleratorAttributesRequest = ( + input: DescribeAcceleratorAttributesRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + }; +}; + +const serializeAws_json1_1DescribeAcceleratorRequest = ( + input: DescribeAcceleratorRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + }; +}; + +const serializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesRequest = ( + input: DescribeCustomRoutingAcceleratorAttributesRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + }; +}; + +const serializeAws_json1_1DescribeCustomRoutingAcceleratorRequest = ( + input: DescribeCustomRoutingAcceleratorRequest, context: __SerdeContext ): any => { return { - ...(input.Cidr !== undefined && { Cidr: input.Cidr }), + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), }; }; -const serializeAws_json1_1DescribeAcceleratorAttributesRequest = ( - input: DescribeAcceleratorAttributesRequest, +const serializeAws_json1_1DescribeCustomRoutingEndpointGroupRequest = ( + input: DescribeCustomRoutingEndpointGroupRequest, context: __SerdeContext ): any => { return { - ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), }; }; -const serializeAws_json1_1DescribeAcceleratorRequest = ( - input: DescribeAcceleratorRequest, +const serializeAws_json1_1DescribeCustomRoutingListenerRequest = ( + input: DescribeCustomRoutingListenerRequest, context: __SerdeContext ): any => { return { - ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.ListenerArn !== undefined && { ListenerArn: input.ListenerArn }), }; }; @@ -2790,6 +5197,14 @@ const serializeAws_json1_1DescribeListenerRequest = (input: DescribeListenerRequ }; }; +const serializeAws_json1_1DestinationAddresses = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1DestinationPorts = (input: number[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1EndpointConfiguration = (input: EndpointConfiguration, context: __SerdeContext): any => { return { ...(input.ClientIPPreservationEnabled !== undefined && { @@ -2804,6 +5219,10 @@ const serializeAws_json1_1EndpointConfigurations = (input: EndpointConfiguration return input.map((entry) => serializeAws_json1_1EndpointConfiguration(entry, context)); }; +const serializeAws_json1_1EndpointIds = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1IpAddresses = (input: string[], context: __SerdeContext): any => { return input.map((entry) => entry); }; @@ -2822,6 +5241,62 @@ const serializeAws_json1_1ListByoipCidrsRequest = (input: ListByoipCidrsRequest, }; }; +const serializeAws_json1_1ListCustomRoutingAcceleratorsRequest = ( + input: ListCustomRoutingAcceleratorsRequest, + context: __SerdeContext +): any => { + return { + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListCustomRoutingEndpointGroupsRequest = ( + input: ListCustomRoutingEndpointGroupsRequest, + context: __SerdeContext +): any => { + return { + ...(input.ListenerArn !== undefined && { ListenerArn: input.ListenerArn }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListCustomRoutingListenersRequest = ( + input: ListCustomRoutingListenersRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListCustomRoutingPortMappingsByDestinationRequest = ( + input: ListCustomRoutingPortMappingsByDestinationRequest, + context: __SerdeContext +): any => { + return { + ...(input.DestinationAddress !== undefined && { DestinationAddress: input.DestinationAddress }), + ...(input.EndpointId !== undefined && { EndpointId: input.EndpointId }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListCustomRoutingPortMappingsRequest = ( + input: ListCustomRoutingPortMappingsRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListEndpointGroupsRequest = ( input: ListEndpointGroupsRequest, context: __SerdeContext @@ -2884,6 +5359,18 @@ const serializeAws_json1_1ProvisionByoipCidrRequest = ( }; }; +const serializeAws_json1_1RemoveCustomRoutingEndpointsRequest = ( + input: RemoveCustomRoutingEndpointsRequest, + context: __SerdeContext +): any => { + return { + ...(input.EndpointGroupArn !== undefined && { EndpointGroupArn: input.EndpointGroupArn }), + ...(input.EndpointIds !== undefined && { + EndpointIds: serializeAws_json1_1EndpointIds(input.EndpointIds, context), + }), + }; +}; + const serializeAws_json1_1Tag = (input: Tag, context: __SerdeContext): any => { return { ...(input.Key !== undefined && { Key: input.Key }), @@ -2937,6 +5424,40 @@ const serializeAws_json1_1UpdateAcceleratorRequest = ( }; }; +const serializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesRequest = ( + input: UpdateCustomRoutingAcceleratorAttributesRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.FlowLogsEnabled !== undefined && { FlowLogsEnabled: input.FlowLogsEnabled }), + ...(input.FlowLogsS3Bucket !== undefined && { FlowLogsS3Bucket: input.FlowLogsS3Bucket }), + ...(input.FlowLogsS3Prefix !== undefined && { FlowLogsS3Prefix: input.FlowLogsS3Prefix }), + }; +}; + +const serializeAws_json1_1UpdateCustomRoutingAcceleratorRequest = ( + input: UpdateCustomRoutingAcceleratorRequest, + context: __SerdeContext +): any => { + return { + ...(input.AcceleratorArn !== undefined && { AcceleratorArn: input.AcceleratorArn }), + ...(input.Enabled !== undefined && { Enabled: input.Enabled }), + ...(input.IpAddressType !== undefined && { IpAddressType: input.IpAddressType }), + ...(input.Name !== undefined && { Name: input.Name }), + }; +}; + +const serializeAws_json1_1UpdateCustomRoutingListenerRequest = ( + input: UpdateCustomRoutingListenerRequest, + context: __SerdeContext +): any => { + return { + ...(input.ListenerArn !== undefined && { ListenerArn: input.ListenerArn }), + ...(input.PortRanges !== undefined && { PortRanges: serializeAws_json1_1PortRanges(input.PortRanges, context) }), + }; +}; + const serializeAws_json1_1UpdateEndpointGroupRequest = ( input: UpdateEndpointGroupRequest, context: __SerdeContext @@ -3042,6 +5563,20 @@ const deserializeAws_json1_1AccessDeniedException = (output: any, context: __Ser } as any; }; +const deserializeAws_json1_1AddCustomRoutingEndpointsResponse = ( + output: any, + context: __SerdeContext +): AddCustomRoutingEndpointsResponse => { + return { + EndpointDescriptions: + output.EndpointDescriptions !== undefined && output.EndpointDescriptions !== null + ? deserializeAws_json1_1CustomRoutingEndpointDescriptions(output.EndpointDescriptions, context) + : undefined, + EndpointGroupArn: + output.EndpointGroupArn !== undefined && output.EndpointGroupArn !== null ? output.EndpointGroupArn : undefined, + } as any; +}; + const deserializeAws_json1_1AdvertiseByoipCidrResponse = ( output: any, context: __SerdeContext @@ -3054,95 +5589,276 @@ const deserializeAws_json1_1AdvertiseByoipCidrResponse = ( } as any; }; -const deserializeAws_json1_1AssociatedEndpointGroupFoundException = ( +const deserializeAws_json1_1AssociatedEndpointGroupFoundException = ( + output: any, + context: __SerdeContext +): AssociatedEndpointGroupFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1AssociatedListenerFoundException = ( + output: any, + context: __SerdeContext +): AssociatedListenerFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1ByoipCidr = (output: any, context: __SerdeContext): ByoipCidr => { + return { + Cidr: output.Cidr !== undefined && output.Cidr !== null ? output.Cidr : undefined, + Events: + output.Events !== undefined && output.Events !== null + ? deserializeAws_json1_1ByoipCidrEvents(output.Events, context) + : undefined, + State: output.State !== undefined && output.State !== null ? output.State : undefined, + } as any; +}; + +const deserializeAws_json1_1ByoipCidrEvent = (output: any, context: __SerdeContext): ByoipCidrEvent => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + Timestamp: + output.Timestamp !== undefined && output.Timestamp !== null + ? new Date(Math.round(output.Timestamp * 1000)) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ByoipCidrEvents = (output: any, context: __SerdeContext): ByoipCidrEvent[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ByoipCidrEvent(entry, context)); +}; + +const deserializeAws_json1_1ByoipCidrNotFoundException = ( + output: any, + context: __SerdeContext +): ByoipCidrNotFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1ByoipCidrs = (output: any, context: __SerdeContext): ByoipCidr[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ByoipCidr(entry, context)); +}; + +const deserializeAws_json1_1ConflictException = (output: any, context: __SerdeContext): ConflictException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateAcceleratorResponse = ( + output: any, + context: __SerdeContext +): CreateAcceleratorResponse => { + return { + Accelerator: + output.Accelerator !== undefined && output.Accelerator !== null + ? deserializeAws_json1_1Accelerator(output.Accelerator, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateCustomRoutingAcceleratorResponse = ( + output: any, + context: __SerdeContext +): CreateCustomRoutingAcceleratorResponse => { + return { + Accelerator: + output.Accelerator !== undefined && output.Accelerator !== null + ? deserializeAws_json1_1CustomRoutingAccelerator(output.Accelerator, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateCustomRoutingEndpointGroupResponse = ( + output: any, + context: __SerdeContext +): CreateCustomRoutingEndpointGroupResponse => { + return { + EndpointGroup: + output.EndpointGroup !== undefined && output.EndpointGroup !== null + ? deserializeAws_json1_1CustomRoutingEndpointGroup(output.EndpointGroup, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateCustomRoutingListenerResponse = ( + output: any, + context: __SerdeContext +): CreateCustomRoutingListenerResponse => { + return { + Listener: + output.Listener !== undefined && output.Listener !== null + ? deserializeAws_json1_1CustomRoutingListener(output.Listener, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateEndpointGroupResponse = ( + output: any, + context: __SerdeContext +): CreateEndpointGroupResponse => { + return { + EndpointGroup: + output.EndpointGroup !== undefined && output.EndpointGroup !== null + ? deserializeAws_json1_1EndpointGroup(output.EndpointGroup, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateListenerResponse = (output: any, context: __SerdeContext): CreateListenerResponse => { + return { + Listener: + output.Listener !== undefined && output.Listener !== null + ? deserializeAws_json1_1Listener(output.Listener, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1CustomRoutingAccelerator = ( + output: any, + context: __SerdeContext +): CustomRoutingAccelerator => { + return { + AcceleratorArn: + output.AcceleratorArn !== undefined && output.AcceleratorArn !== null ? output.AcceleratorArn : undefined, + CreatedTime: + output.CreatedTime !== undefined && output.CreatedTime !== null + ? new Date(Math.round(output.CreatedTime * 1000)) + : undefined, + DnsName: output.DnsName !== undefined && output.DnsName !== null ? output.DnsName : undefined, + Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined, + IpAddressType: + output.IpAddressType !== undefined && output.IpAddressType !== null ? output.IpAddressType : undefined, + IpSets: + output.IpSets !== undefined && output.IpSets !== null + ? deserializeAws_json1_1IpSets(output.IpSets, context) + : undefined, + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + } as any; +}; + +const deserializeAws_json1_1CustomRoutingAcceleratorAttributes = ( output: any, context: __SerdeContext -): AssociatedEndpointGroupFoundException => { +): CustomRoutingAcceleratorAttributes => { return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + FlowLogsEnabled: + output.FlowLogsEnabled !== undefined && output.FlowLogsEnabled !== null ? output.FlowLogsEnabled : undefined, + FlowLogsS3Bucket: + output.FlowLogsS3Bucket !== undefined && output.FlowLogsS3Bucket !== null ? output.FlowLogsS3Bucket : undefined, + FlowLogsS3Prefix: + output.FlowLogsS3Prefix !== undefined && output.FlowLogsS3Prefix !== null ? output.FlowLogsS3Prefix : undefined, } as any; }; -const deserializeAws_json1_1AssociatedListenerFoundException = ( +const deserializeAws_json1_1CustomRoutingAccelerators = ( output: any, context: __SerdeContext -): AssociatedListenerFoundException => { - return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, - } as any; -}; - -const deserializeAws_json1_1ByoipCidr = (output: any, context: __SerdeContext): ByoipCidr => { - return { - Cidr: output.Cidr !== undefined && output.Cidr !== null ? output.Cidr : undefined, - Events: - output.Events !== undefined && output.Events !== null - ? deserializeAws_json1_1ByoipCidrEvents(output.Events, context) - : undefined, - State: output.State !== undefined && output.State !== null ? output.State : undefined, - } as any; +): CustomRoutingAccelerator[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1CustomRoutingAccelerator(entry, context)); }; -const deserializeAws_json1_1ByoipCidrEvent = (output: any, context: __SerdeContext): ByoipCidrEvent => { +const deserializeAws_json1_1CustomRoutingDestinationDescription = ( + output: any, + context: __SerdeContext +): CustomRoutingDestinationDescription => { return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, - Timestamp: - output.Timestamp !== undefined && output.Timestamp !== null - ? new Date(Math.round(output.Timestamp * 1000)) + FromPort: output.FromPort !== undefined && output.FromPort !== null ? output.FromPort : undefined, + Protocols: + output.Protocols !== undefined && output.Protocols !== null + ? deserializeAws_json1_1Protocols(output.Protocols, context) : undefined, + ToPort: output.ToPort !== undefined && output.ToPort !== null ? output.ToPort : undefined, } as any; }; -const deserializeAws_json1_1ByoipCidrEvents = (output: any, context: __SerdeContext): ByoipCidrEvent[] => { - return (output || []).map((entry: any) => deserializeAws_json1_1ByoipCidrEvent(entry, context)); +const deserializeAws_json1_1CustomRoutingDestinationDescriptions = ( + output: any, + context: __SerdeContext +): CustomRoutingDestinationDescription[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1CustomRoutingDestinationDescription(entry, context)); }; -const deserializeAws_json1_1ByoipCidrNotFoundException = ( +const deserializeAws_json1_1CustomRoutingEndpointDescription = ( output: any, context: __SerdeContext -): ByoipCidrNotFoundException => { +): CustomRoutingEndpointDescription => { return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + EndpointId: output.EndpointId !== undefined && output.EndpointId !== null ? output.EndpointId : undefined, } as any; }; -const deserializeAws_json1_1ByoipCidrs = (output: any, context: __SerdeContext): ByoipCidr[] => { - return (output || []).map((entry: any) => deserializeAws_json1_1ByoipCidr(entry, context)); +const deserializeAws_json1_1CustomRoutingEndpointDescriptions = ( + output: any, + context: __SerdeContext +): CustomRoutingEndpointDescription[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1CustomRoutingEndpointDescription(entry, context)); }; -const deserializeAws_json1_1CreateAcceleratorResponse = ( +const deserializeAws_json1_1CustomRoutingEndpointGroup = ( output: any, context: __SerdeContext -): CreateAcceleratorResponse => { +): CustomRoutingEndpointGroup => { return { - Accelerator: - output.Accelerator !== undefined && output.Accelerator !== null - ? deserializeAws_json1_1Accelerator(output.Accelerator, context) + DestinationDescriptions: + output.DestinationDescriptions !== undefined && output.DestinationDescriptions !== null + ? deserializeAws_json1_1CustomRoutingDestinationDescriptions(output.DestinationDescriptions, context) + : undefined, + EndpointDescriptions: + output.EndpointDescriptions !== undefined && output.EndpointDescriptions !== null + ? deserializeAws_json1_1CustomRoutingEndpointDescriptions(output.EndpointDescriptions, context) + : undefined, + EndpointGroupArn: + output.EndpointGroupArn !== undefined && output.EndpointGroupArn !== null ? output.EndpointGroupArn : undefined, + EndpointGroupRegion: + output.EndpointGroupRegion !== undefined && output.EndpointGroupRegion !== null + ? output.EndpointGroupRegion : undefined, } as any; }; -const deserializeAws_json1_1CreateEndpointGroupResponse = ( +const deserializeAws_json1_1CustomRoutingEndpointGroups = ( output: any, context: __SerdeContext -): CreateEndpointGroupResponse => { - return { - EndpointGroup: - output.EndpointGroup !== undefined && output.EndpointGroup !== null - ? deserializeAws_json1_1EndpointGroup(output.EndpointGroup, context) - : undefined, - } as any; +): CustomRoutingEndpointGroup[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1CustomRoutingEndpointGroup(entry, context)); }; -const deserializeAws_json1_1CreateListenerResponse = (output: any, context: __SerdeContext): CreateListenerResponse => { +const deserializeAws_json1_1CustomRoutingListener = (output: any, context: __SerdeContext): CustomRoutingListener => { return { - Listener: - output.Listener !== undefined && output.Listener !== null - ? deserializeAws_json1_1Listener(output.Listener, context) + ListenerArn: output.ListenerArn !== undefined && output.ListenerArn !== null ? output.ListenerArn : undefined, + PortRanges: + output.PortRanges !== undefined && output.PortRanges !== null + ? deserializeAws_json1_1PortRanges(output.PortRanges, context) : undefined, } as any; }; +const deserializeAws_json1_1CustomRoutingListeners = ( + output: any, + context: __SerdeContext +): CustomRoutingListener[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1CustomRoutingListener(entry, context)); +}; + +const deserializeAws_json1_1CustomRoutingProtocols = ( + output: any, + context: __SerdeContext +): (CustomRoutingProtocol | string)[] => { + return (output || []).map((entry: any) => entry); +}; + const deserializeAws_json1_1DeprovisionByoipCidrResponse = ( output: any, context: __SerdeContext @@ -3179,6 +5895,54 @@ const deserializeAws_json1_1DescribeAcceleratorResponse = ( } as any; }; +const deserializeAws_json1_1DescribeCustomRoutingAcceleratorAttributesResponse = ( + output: any, + context: __SerdeContext +): DescribeCustomRoutingAcceleratorAttributesResponse => { + return { + AcceleratorAttributes: + output.AcceleratorAttributes !== undefined && output.AcceleratorAttributes !== null + ? deserializeAws_json1_1CustomRoutingAcceleratorAttributes(output.AcceleratorAttributes, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeCustomRoutingAcceleratorResponse = ( + output: any, + context: __SerdeContext +): DescribeCustomRoutingAcceleratorResponse => { + return { + Accelerator: + output.Accelerator !== undefined && output.Accelerator !== null + ? deserializeAws_json1_1CustomRoutingAccelerator(output.Accelerator, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeCustomRoutingEndpointGroupResponse = ( + output: any, + context: __SerdeContext +): DescribeCustomRoutingEndpointGroupResponse => { + return { + EndpointGroup: + output.EndpointGroup !== undefined && output.EndpointGroup !== null + ? deserializeAws_json1_1CustomRoutingEndpointGroup(output.EndpointGroup, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeCustomRoutingListenerResponse = ( + output: any, + context: __SerdeContext +): DescribeCustomRoutingListenerResponse => { + return { + Listener: + output.Listener !== undefined && output.Listener !== null + ? deserializeAws_json1_1CustomRoutingListener(output.Listener, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeEndpointGroupResponse = ( output: any, context: __SerdeContext @@ -3203,6 +5967,50 @@ const deserializeAws_json1_1DescribeListenerResponse = ( } as any; }; +const deserializeAws_json1_1DestinationPortMapping = (output: any, context: __SerdeContext): DestinationPortMapping => { + return { + AcceleratorArn: + output.AcceleratorArn !== undefined && output.AcceleratorArn !== null ? output.AcceleratorArn : undefined, + AcceleratorSocketAddresses: + output.AcceleratorSocketAddresses !== undefined && output.AcceleratorSocketAddresses !== null + ? deserializeAws_json1_1SocketAddresses(output.AcceleratorSocketAddresses, context) + : undefined, + DestinationSocketAddress: + output.DestinationSocketAddress !== undefined && output.DestinationSocketAddress !== null + ? deserializeAws_json1_1SocketAddress(output.DestinationSocketAddress, context) + : undefined, + DestinationTrafficState: + output.DestinationTrafficState !== undefined && output.DestinationTrafficState !== null + ? output.DestinationTrafficState + : undefined, + EndpointGroupArn: + output.EndpointGroupArn !== undefined && output.EndpointGroupArn !== null ? output.EndpointGroupArn : undefined, + EndpointGroupRegion: + output.EndpointGroupRegion !== undefined && output.EndpointGroupRegion !== null + ? output.EndpointGroupRegion + : undefined, + EndpointId: output.EndpointId !== undefined && output.EndpointId !== null ? output.EndpointId : undefined, + IpAddressType: + output.IpAddressType !== undefined && output.IpAddressType !== null ? output.IpAddressType : undefined, + } as any; +}; + +const deserializeAws_json1_1DestinationPortMappings = ( + output: any, + context: __SerdeContext +): DestinationPortMapping[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1DestinationPortMapping(entry, context)); +}; + +const deserializeAws_json1_1EndpointAlreadyExistsException = ( + output: any, + context: __SerdeContext +): EndpointAlreadyExistsException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeAws_json1_1EndpointDescription = (output: any, context: __SerdeContext): EndpointDescription => { return { ClientIPPreservationEnabled: @@ -3279,6 +6087,15 @@ const deserializeAws_json1_1EndpointGroups = (output: any, context: __SerdeConte return (output || []).map((entry: any) => deserializeAws_json1_1EndpointGroup(entry, context)); }; +const deserializeAws_json1_1EndpointNotFoundException = ( + output: any, + context: __SerdeContext +): EndpointNotFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeAws_json1_1IncorrectCidrStateException = ( output: any, context: __SerdeContext @@ -3371,6 +6188,71 @@ const deserializeAws_json1_1ListByoipCidrsResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1ListCustomRoutingAcceleratorsResponse = ( + output: any, + context: __SerdeContext +): ListCustomRoutingAcceleratorsResponse => { + return { + Accelerators: + output.Accelerators !== undefined && output.Accelerators !== null + ? deserializeAws_json1_1CustomRoutingAccelerators(output.Accelerators, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListCustomRoutingEndpointGroupsResponse = ( + output: any, + context: __SerdeContext +): ListCustomRoutingEndpointGroupsResponse => { + return { + EndpointGroups: + output.EndpointGroups !== undefined && output.EndpointGroups !== null + ? deserializeAws_json1_1CustomRoutingEndpointGroups(output.EndpointGroups, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListCustomRoutingListenersResponse = ( + output: any, + context: __SerdeContext +): ListCustomRoutingListenersResponse => { + return { + Listeners: + output.Listeners !== undefined && output.Listeners !== null + ? deserializeAws_json1_1CustomRoutingListeners(output.Listeners, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListCustomRoutingPortMappingsByDestinationResponse = ( + output: any, + context: __SerdeContext +): ListCustomRoutingPortMappingsByDestinationResponse => { + return { + DestinationPortMappings: + output.DestinationPortMappings !== undefined && output.DestinationPortMappings !== null + ? deserializeAws_json1_1DestinationPortMappings(output.DestinationPortMappings, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListCustomRoutingPortMappingsResponse = ( + output: any, + context: __SerdeContext +): ListCustomRoutingPortMappingsResponse => { + return { + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + PortMappings: + output.PortMappings !== undefined && output.PortMappings !== null + ? deserializeAws_json1_1PortMappings(output.PortMappings, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ListEndpointGroupsResponse = ( output: any, context: __SerdeContext @@ -3430,6 +6312,32 @@ const deserializeAws_json1_1ListTagsForResourceResponse = ( } as any; }; +const deserializeAws_json1_1PortMapping = (output: any, context: __SerdeContext): PortMapping => { + return { + AcceleratorPort: + output.AcceleratorPort !== undefined && output.AcceleratorPort !== null ? output.AcceleratorPort : undefined, + DestinationSocketAddress: + output.DestinationSocketAddress !== undefined && output.DestinationSocketAddress !== null + ? deserializeAws_json1_1SocketAddress(output.DestinationSocketAddress, context) + : undefined, + DestinationTrafficState: + output.DestinationTrafficState !== undefined && output.DestinationTrafficState !== null + ? output.DestinationTrafficState + : undefined, + EndpointGroupArn: + output.EndpointGroupArn !== undefined && output.EndpointGroupArn !== null ? output.EndpointGroupArn : undefined, + EndpointId: output.EndpointId !== undefined && output.EndpointId !== null ? output.EndpointId : undefined, + Protocols: + output.Protocols !== undefined && output.Protocols !== null + ? deserializeAws_json1_1CustomRoutingProtocols(output.Protocols, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1PortMappings = (output: any, context: __SerdeContext): PortMapping[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1PortMapping(entry, context)); +}; + const deserializeAws_json1_1PortOverride = (output: any, context: __SerdeContext): PortOverride => { return { EndpointPort: output.EndpointPort !== undefined && output.EndpointPort !== null ? output.EndpointPort : undefined, @@ -3452,6 +6360,10 @@ const deserializeAws_json1_1PortRanges = (output: any, context: __SerdeContext): return (output || []).map((entry: any) => deserializeAws_json1_1PortRange(entry, context)); }; +const deserializeAws_json1_1Protocols = (output: any, context: __SerdeContext): (Protocol | string)[] => { + return (output || []).map((entry: any) => entry); +}; + const deserializeAws_json1_1ProvisionByoipCidrResponse = ( output: any, context: __SerdeContext @@ -3464,6 +6376,17 @@ const deserializeAws_json1_1ProvisionByoipCidrResponse = ( } as any; }; +const deserializeAws_json1_1SocketAddress = (output: any, context: __SerdeContext): SocketAddress => { + return { + IpAddress: output.IpAddress !== undefined && output.IpAddress !== null ? output.IpAddress : undefined, + Port: output.Port !== undefined && output.Port !== null ? output.Port : undefined, + } as any; +}; + +const deserializeAws_json1_1SocketAddresses = (output: any, context: __SerdeContext): SocketAddress[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1SocketAddress(entry, context)); +}; + const deserializeAws_json1_1Tag = (output: any, context: __SerdeContext): Tag => { return { Key: output.Key !== undefined && output.Key !== null ? output.Key : undefined, @@ -3507,6 +6430,42 @@ const deserializeAws_json1_1UpdateAcceleratorResponse = ( } as any; }; +const deserializeAws_json1_1UpdateCustomRoutingAcceleratorAttributesResponse = ( + output: any, + context: __SerdeContext +): UpdateCustomRoutingAcceleratorAttributesResponse => { + return { + AcceleratorAttributes: + output.AcceleratorAttributes !== undefined && output.AcceleratorAttributes !== null + ? deserializeAws_json1_1CustomRoutingAcceleratorAttributes(output.AcceleratorAttributes, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1UpdateCustomRoutingAcceleratorResponse = ( + output: any, + context: __SerdeContext +): UpdateCustomRoutingAcceleratorResponse => { + return { + Accelerator: + output.Accelerator !== undefined && output.Accelerator !== null + ? deserializeAws_json1_1CustomRoutingAccelerator(output.Accelerator, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1UpdateCustomRoutingListenerResponse = ( + output: any, + context: __SerdeContext +): UpdateCustomRoutingListenerResponse => { + return { + Listener: + output.Listener !== undefined && output.Listener !== null + ? deserializeAws_json1_1CustomRoutingListener(output.Listener, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1UpdateEndpointGroupResponse = ( output: any, context: __SerdeContext diff --git a/clients/client-healthlake/.gitignore b/clients/client-healthlake/.gitignore new file mode 100644 index 0000000000000..b41c05b597c42 --- /dev/null +++ b/clients/client-healthlake/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-healthlake/.npmignore b/clients/client-healthlake/.npmignore new file mode 100644 index 0000000000000..b7ff81137c4ad --- /dev/null +++ b/clients/client-healthlake/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-healthlake/HealthLake.ts b/clients/client-healthlake/HealthLake.ts new file mode 100644 index 0000000000000..f5a989564661e --- /dev/null +++ b/clients/client-healthlake/HealthLake.ts @@ -0,0 +1,233 @@ +import { HealthLakeClient } from "./HealthLakeClient"; +import { + CreateFHIRDatastoreCommand, + CreateFHIRDatastoreCommandInput, + CreateFHIRDatastoreCommandOutput, +} from "./commands/CreateFHIRDatastoreCommand"; +import { + DeleteFHIRDatastoreCommand, + DeleteFHIRDatastoreCommandInput, + DeleteFHIRDatastoreCommandOutput, +} from "./commands/DeleteFHIRDatastoreCommand"; +import { + DescribeFHIRDatastoreCommand, + DescribeFHIRDatastoreCommandInput, + DescribeFHIRDatastoreCommandOutput, +} from "./commands/DescribeFHIRDatastoreCommand"; +import { + DescribeFHIRImportJobCommand, + DescribeFHIRImportJobCommandInput, + DescribeFHIRImportJobCommandOutput, +} from "./commands/DescribeFHIRImportJobCommand"; +import { + ListFHIRDatastoresCommand, + ListFHIRDatastoresCommandInput, + ListFHIRDatastoresCommandOutput, +} from "./commands/ListFHIRDatastoresCommand"; +import { + StartFHIRImportJobCommand, + StartFHIRImportJobCommandInput, + StartFHIRImportJobCommandOutput, +} from "./commands/StartFHIRImportJobCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + *

    Amazon HealthLake is a HIPAA eligibile service that allows customers to store, + * transform, query, and analyze their data in a consistent fashion in the cloud.

    + */ +export class HealthLake extends HealthLakeClient { + /** + *

    Creates a datastore that can ingest and export FHIR data.

    + */ + public createFHIRDatastore( + args: CreateFHIRDatastoreCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createFHIRDatastore( + args: CreateFHIRDatastoreCommandInput, + cb: (err: any, data?: CreateFHIRDatastoreCommandOutput) => void + ): void; + public createFHIRDatastore( + args: CreateFHIRDatastoreCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateFHIRDatastoreCommandOutput) => void + ): void; + public createFHIRDatastore( + args: CreateFHIRDatastoreCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateFHIRDatastoreCommandOutput) => void), + cb?: (err: any, data?: CreateFHIRDatastoreCommandOutput) => void + ): Promise | void { + const command = new CreateFHIRDatastoreCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Deletes a datastore.

    + */ + public deleteFHIRDatastore( + args: DeleteFHIRDatastoreCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteFHIRDatastore( + args: DeleteFHIRDatastoreCommandInput, + cb: (err: any, data?: DeleteFHIRDatastoreCommandOutput) => void + ): void; + public deleteFHIRDatastore( + args: DeleteFHIRDatastoreCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteFHIRDatastoreCommandOutput) => void + ): void; + public deleteFHIRDatastore( + args: DeleteFHIRDatastoreCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteFHIRDatastoreCommandOutput) => void), + cb?: (err: any, data?: DeleteFHIRDatastoreCommandOutput) => void + ): Promise | void { + const command = new DeleteFHIRDatastoreCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Gets the properties associated with the FHIR datastore, including the datastore ID, + * datastore ARN, datastore name, datastore status, created at, datastore type version, and + * datastore endpoint.

    + */ + public describeFHIRDatastore( + args: DescribeFHIRDatastoreCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeFHIRDatastore( + args: DescribeFHIRDatastoreCommandInput, + cb: (err: any, data?: DescribeFHIRDatastoreCommandOutput) => void + ): void; + public describeFHIRDatastore( + args: DescribeFHIRDatastoreCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeFHIRDatastoreCommandOutput) => void + ): void; + public describeFHIRDatastore( + args: DescribeFHIRDatastoreCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeFHIRDatastoreCommandOutput) => void), + cb?: (err: any, data?: DescribeFHIRDatastoreCommandOutput) => void + ): Promise | void { + const command = new DescribeFHIRDatastoreCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Displays the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore.

    + */ + public describeFHIRImportJob( + args: DescribeFHIRImportJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeFHIRImportJob( + args: DescribeFHIRImportJobCommandInput, + cb: (err: any, data?: DescribeFHIRImportJobCommandOutput) => void + ): void; + public describeFHIRImportJob( + args: DescribeFHIRImportJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeFHIRImportJobCommandOutput) => void + ): void; + public describeFHIRImportJob( + args: DescribeFHIRImportJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeFHIRImportJobCommandOutput) => void), + cb?: (err: any, data?: DescribeFHIRImportJobCommandOutput) => void + ): Promise | void { + const command = new DescribeFHIRImportJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Lists all FHIR datastores that are in the user’s account, regardless of datastore + * status.

    + */ + public listFHIRDatastores( + args: ListFHIRDatastoresCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listFHIRDatastores( + args: ListFHIRDatastoresCommandInput, + cb: (err: any, data?: ListFHIRDatastoresCommandOutput) => void + ): void; + public listFHIRDatastores( + args: ListFHIRDatastoresCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListFHIRDatastoresCommandOutput) => void + ): void; + public listFHIRDatastores( + args: ListFHIRDatastoresCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListFHIRDatastoresCommandOutput) => void), + cb?: (err: any, data?: ListFHIRDatastoresCommandOutput) => void + ): Promise | void { + const command = new ListFHIRDatastoresCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

    Begins a FHIR Import job.

    + */ + public startFHIRImportJob( + args: StartFHIRImportJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public startFHIRImportJob( + args: StartFHIRImportJobCommandInput, + cb: (err: any, data?: StartFHIRImportJobCommandOutput) => void + ): void; + public startFHIRImportJob( + args: StartFHIRImportJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartFHIRImportJobCommandOutput) => void + ): void; + public startFHIRImportJob( + args: StartFHIRImportJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StartFHIRImportJobCommandOutput) => void), + cb?: (err: any, data?: StartFHIRImportJobCommandOutput) => void + ): Promise | void { + const command = new StartFHIRImportJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-healthlake/HealthLakeClient.ts b/clients/client-healthlake/HealthLakeClient.ts new file mode 100644 index 0000000000000..c00ef8e9ad079 --- /dev/null +++ b/clients/client-healthlake/HealthLakeClient.ts @@ -0,0 +1,232 @@ +import { + CreateFHIRDatastoreCommandInput, + CreateFHIRDatastoreCommandOutput, +} from "./commands/CreateFHIRDatastoreCommand"; +import { + DeleteFHIRDatastoreCommandInput, + DeleteFHIRDatastoreCommandOutput, +} from "./commands/DeleteFHIRDatastoreCommand"; +import { + DescribeFHIRDatastoreCommandInput, + DescribeFHIRDatastoreCommandOutput, +} from "./commands/DescribeFHIRDatastoreCommand"; +import { + DescribeFHIRImportJobCommandInput, + DescribeFHIRImportJobCommandOutput, +} from "./commands/DescribeFHIRImportJobCommand"; +import { ListFHIRDatastoresCommandInput, ListFHIRDatastoresCommandOutput } from "./commands/ListFHIRDatastoresCommand"; +import { StartFHIRImportJobCommandInput, StartFHIRImportJobCommandOutput } from "./commands/StartFHIRImportJobCommand"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, +} from "@aws-sdk/types"; + +export type ServiceInputTypes = + | CreateFHIRDatastoreCommandInput + | DeleteFHIRDatastoreCommandInput + | DescribeFHIRDatastoreCommandInput + | DescribeFHIRImportJobCommandInput + | ListFHIRDatastoresCommandInput + | StartFHIRImportJobCommandInput; + +export type ServiceOutputTypes = + | CreateFHIRDatastoreCommandOutput + | DeleteFHIRDatastoreCommandOutput + | DescribeFHIRDatastoreCommandOutput + | DescribeFHIRImportJobCommandOutput + | ListFHIRDatastoresCommandOutput + | StartFHIRImportJobCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type HealthLakeClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type HealthLakeClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + *

    Amazon HealthLake is a HIPAA eligibile service that allows customers to store, + * transform, query, and analyze their data in a consistent fashion in the cloud.

    + */ +export class HealthLakeClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + HealthLakeClientResolvedConfig +> { + readonly config: HealthLakeClientResolvedConfig; + + constructor(configuration: HealthLakeClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration, + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + } + + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-healthlake/LICENSE b/clients/client-healthlake/LICENSE new file mode 100644 index 0000000000000..dd65ae06be7a9 --- /dev/null +++ b/clients/client-healthlake/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/clients/client-healthlake/README.md b/clients/client-healthlake/README.md new file mode 100644 index 0000000000000..20282369179f6 --- /dev/null +++ b/clients/client-healthlake/README.md @@ -0,0 +1,6 @@ +# @aws-sdk/client-healthlake + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-healthlake/rc.svg)](https://www.npmjs.com/package/@aws-sdk/client-healthlake) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-healthlake.svg)](https://www.npmjs.com/package/@aws-sdk/client-healthlake) + +For SDK usage, please step to [SDK readme](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-healthlake/commands/CreateFHIRDatastoreCommand.ts b/clients/client-healthlake/commands/CreateFHIRDatastoreCommand.ts new file mode 100644 index 0000000000000..3fd5028a6f4fe --- /dev/null +++ b/clients/client-healthlake/commands/CreateFHIRDatastoreCommand.ts @@ -0,0 +1,88 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { CreateFHIRDatastoreRequest, CreateFHIRDatastoreResponse } from "../models/models_0"; +import { + deserializeAws_json1_0CreateFHIRDatastoreCommand, + serializeAws_json1_0CreateFHIRDatastoreCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateFHIRDatastoreCommandInput = CreateFHIRDatastoreRequest; +export type CreateFHIRDatastoreCommandOutput = CreateFHIRDatastoreResponse & __MetadataBearer; + +/** + *

    Creates a datastore that can ingest and export FHIR data.

    + */ +export class CreateFHIRDatastoreCommand extends $Command< + CreateFHIRDatastoreCommandInput, + CreateFHIRDatastoreCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateFHIRDatastoreCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "CreateFHIRDatastoreCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateFHIRDatastoreRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateFHIRDatastoreResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateFHIRDatastoreCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0CreateFHIRDatastoreCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0CreateFHIRDatastoreCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/commands/DeleteFHIRDatastoreCommand.ts b/clients/client-healthlake/commands/DeleteFHIRDatastoreCommand.ts new file mode 100644 index 0000000000000..6f0c12a524563 --- /dev/null +++ b/clients/client-healthlake/commands/DeleteFHIRDatastoreCommand.ts @@ -0,0 +1,88 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { DeleteFHIRDatastoreRequest, DeleteFHIRDatastoreResponse } from "../models/models_0"; +import { + deserializeAws_json1_0DeleteFHIRDatastoreCommand, + serializeAws_json1_0DeleteFHIRDatastoreCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteFHIRDatastoreCommandInput = DeleteFHIRDatastoreRequest; +export type DeleteFHIRDatastoreCommandOutput = DeleteFHIRDatastoreResponse & __MetadataBearer; + +/** + *

    Deletes a datastore.

    + */ +export class DeleteFHIRDatastoreCommand extends $Command< + DeleteFHIRDatastoreCommandInput, + DeleteFHIRDatastoreCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteFHIRDatastoreCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "DeleteFHIRDatastoreCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteFHIRDatastoreRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteFHIRDatastoreResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteFHIRDatastoreCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0DeleteFHIRDatastoreCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0DeleteFHIRDatastoreCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/commands/DescribeFHIRDatastoreCommand.ts b/clients/client-healthlake/commands/DescribeFHIRDatastoreCommand.ts new file mode 100644 index 0000000000000..82fa2af63055b --- /dev/null +++ b/clients/client-healthlake/commands/DescribeFHIRDatastoreCommand.ts @@ -0,0 +1,90 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { DescribeFHIRDatastoreRequest, DescribeFHIRDatastoreResponse } from "../models/models_0"; +import { + deserializeAws_json1_0DescribeFHIRDatastoreCommand, + serializeAws_json1_0DescribeFHIRDatastoreCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeFHIRDatastoreCommandInput = DescribeFHIRDatastoreRequest; +export type DescribeFHIRDatastoreCommandOutput = DescribeFHIRDatastoreResponse & __MetadataBearer; + +/** + *

    Gets the properties associated with the FHIR datastore, including the datastore ID, + * datastore ARN, datastore name, datastore status, created at, datastore type version, and + * datastore endpoint.

    + */ +export class DescribeFHIRDatastoreCommand extends $Command< + DescribeFHIRDatastoreCommandInput, + DescribeFHIRDatastoreCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeFHIRDatastoreCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "DescribeFHIRDatastoreCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeFHIRDatastoreRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeFHIRDatastoreResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeFHIRDatastoreCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0DescribeFHIRDatastoreCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0DescribeFHIRDatastoreCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/commands/DescribeFHIRImportJobCommand.ts b/clients/client-healthlake/commands/DescribeFHIRImportJobCommand.ts new file mode 100644 index 0000000000000..2c6f6a495fd84 --- /dev/null +++ b/clients/client-healthlake/commands/DescribeFHIRImportJobCommand.ts @@ -0,0 +1,88 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { DescribeFHIRImportJobRequest, DescribeFHIRImportJobResponse } from "../models/models_0"; +import { + deserializeAws_json1_0DescribeFHIRImportJobCommand, + serializeAws_json1_0DescribeFHIRImportJobCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeFHIRImportJobCommandInput = DescribeFHIRImportJobRequest; +export type DescribeFHIRImportJobCommandOutput = DescribeFHIRImportJobResponse & __MetadataBearer; + +/** + *

    Displays the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore.

    + */ +export class DescribeFHIRImportJobCommand extends $Command< + DescribeFHIRImportJobCommandInput, + DescribeFHIRImportJobCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeFHIRImportJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "DescribeFHIRImportJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeFHIRImportJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeFHIRImportJobResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeFHIRImportJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0DescribeFHIRImportJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0DescribeFHIRImportJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/commands/ListFHIRDatastoresCommand.ts b/clients/client-healthlake/commands/ListFHIRDatastoresCommand.ts new file mode 100644 index 0000000000000..921c94b56ce74 --- /dev/null +++ b/clients/client-healthlake/commands/ListFHIRDatastoresCommand.ts @@ -0,0 +1,89 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { ListFHIRDatastoresRequest, ListFHIRDatastoresResponse } from "../models/models_0"; +import { + deserializeAws_json1_0ListFHIRDatastoresCommand, + serializeAws_json1_0ListFHIRDatastoresCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListFHIRDatastoresCommandInput = ListFHIRDatastoresRequest; +export type ListFHIRDatastoresCommandOutput = ListFHIRDatastoresResponse & __MetadataBearer; + +/** + *

    Lists all FHIR datastores that are in the user’s account, regardless of datastore + * status.

    + */ +export class ListFHIRDatastoresCommand extends $Command< + ListFHIRDatastoresCommandInput, + ListFHIRDatastoresCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListFHIRDatastoresCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "ListFHIRDatastoresCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListFHIRDatastoresRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListFHIRDatastoresResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListFHIRDatastoresCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0ListFHIRDatastoresCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0ListFHIRDatastoresCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/commands/StartFHIRImportJobCommand.ts b/clients/client-healthlake/commands/StartFHIRImportJobCommand.ts new file mode 100644 index 0000000000000..1ce4ff10c2ff6 --- /dev/null +++ b/clients/client-healthlake/commands/StartFHIRImportJobCommand.ts @@ -0,0 +1,88 @@ +import { HealthLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../HealthLakeClient"; +import { StartFHIRImportJobRequest, StartFHIRImportJobResponse } from "../models/models_0"; +import { + deserializeAws_json1_0StartFHIRImportJobCommand, + serializeAws_json1_0StartFHIRImportJobCommand, +} from "../protocols/Aws_json1_0"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type StartFHIRImportJobCommandInput = StartFHIRImportJobRequest; +export type StartFHIRImportJobCommandOutput = StartFHIRImportJobResponse & __MetadataBearer; + +/** + *

    Begins a FHIR Import job.

    + */ +export class StartFHIRImportJobCommand extends $Command< + StartFHIRImportJobCommandInput, + StartFHIRImportJobCommandOutput, + HealthLakeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartFHIRImportJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: HealthLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "HealthLakeClient"; + const commandName = "StartFHIRImportJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartFHIRImportJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: StartFHIRImportJobResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StartFHIRImportJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0StartFHIRImportJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_0StartFHIRImportJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-healthlake/endpoints.ts b/clients/client-healthlake/endpoints.ts new file mode 100644 index 0000000000000..5db05446d0b01 --- /dev/null +++ b/clients/client-healthlake/endpoints.ts @@ -0,0 +1,81 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "healthlake.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "healthlake.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "healthlake.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "healthlake.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "healthlake.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-east-1", "us-gov-west-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region), + partition: "aws-cn", + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region), + partition: "aws-iso", + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), + partition: "aws-iso-b", + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), + partition: "aws-us-gov", + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-healthlake/index.ts b/clients/client-healthlake/index.ts new file mode 100644 index 0000000000000..cc3d602112391 --- /dev/null +++ b/clients/client-healthlake/index.ts @@ -0,0 +1,11 @@ +export * from "./HealthLakeClient"; +export * from "./HealthLake"; +export * from "./commands/CreateFHIRDatastoreCommand"; +export * from "./commands/DeleteFHIRDatastoreCommand"; +export * from "./commands/DescribeFHIRDatastoreCommand"; +export * from "./commands/DescribeFHIRImportJobCommand"; +export * from "./commands/ListFHIRDatastoresCommand"; +export * from "./pagination/ListFHIRDatastoresPaginator"; +export * from "./commands/StartFHIRImportJobCommand"; +export * from "./pagination/Interfaces"; +export * from "./models/index"; diff --git a/clients/client-healthlake/models/index.ts b/clients/client-healthlake/models/index.ts new file mode 100644 index 0000000000000..09c5d6e09b8c5 --- /dev/null +++ b/clients/client-healthlake/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-healthlake/models/models_0.ts b/clients/client-healthlake/models/models_0.ts new file mode 100644 index 0000000000000..6bbc09d45d223 --- /dev/null +++ b/clients/client-healthlake/models/models_0.ts @@ -0,0 +1,570 @@ +import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +/** + *

    Access is denied. Your account is not authorized to perform this operation.

    + */ +export interface AccessDeniedException extends __SmithyException, $MetadataBearer { + name: "AccessDeniedException"; + $fault: "client"; + Message?: string; +} + +export namespace AccessDeniedException { + export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ + ...obj, + }); +} + +/** + *

    The datastore is in a transition state and the user requested action can not be performed.

    + */ +export interface ConflictException extends __SmithyException, $MetadataBearer { + name: "ConflictException"; + $fault: "client"; + Message?: string; +} + +export namespace ConflictException { + export const filterSensitiveLog = (obj: ConflictException): any => ({ + ...obj, + }); +} + +export enum FHIRVersion { + R4 = "R4", +} + +export enum PreloadDataType { + SYNTHEA = "SYNTHEA", +} + +/** + *

    The input properties for the preloaded datastore. Only data preloaded from Synthea is supported.

    + */ +export interface PreloadDataConfig { + /** + *

    The type of preloaded data. Only Synthea preloaded data is supported.

    + */ + PreloadDataType: PreloadDataType | string | undefined; +} + +export namespace PreloadDataConfig { + export const filterSensitiveLog = (obj: PreloadDataConfig): any => ({ + ...obj, + }); +} + +export interface CreateFHIRDatastoreRequest { + /** + *

    The user generated name for the datastore.

    + */ + DatastoreName?: string; + + /** + *

    The FHIR version of the datastore. The only supported version is R4.

    + */ + DatastoreTypeVersion: FHIRVersion | string | undefined; + + /** + *

    Optional parameter to preload data upon creation of the datastore. Currently, the only + * supported preloaded data is synthetic data generated from Synthea.

    + */ + PreloadDataConfig?: PreloadDataConfig; + + /** + *

    Optional user provided token used for ensuring idempotency.

    + */ + ClientToken?: string; +} + +export namespace CreateFHIRDatastoreRequest { + export const filterSensitiveLog = (obj: CreateFHIRDatastoreRequest): any => ({ + ...obj, + }); +} + +export enum DatastoreStatus { + ACTIVE = "ACTIVE", + CREATING = "CREATING", + DELETED = "DELETED", + DELETING = "DELETING", +} + +export interface CreateFHIRDatastoreResponse { + /** + *

    The AWS-generated datastore id. This id is in the output from the initial datastore + * creation call.

    + */ + DatastoreId: string | undefined; + + /** + *

    The datastore ARN is generated during the creation of the datastore and can be found in + * the output from the initial datastore creation call.

    + */ + DatastoreArn: string | undefined; + + /** + *

    The status of the FHIR datastore. Possible statuses are ‘CREATING’, ‘ACTIVE’, ‘DELETING’, + * ‘DELETED’.

    + */ + DatastoreStatus: DatastoreStatus | string | undefined; + + /** + *

    The AWS endpoint for the created datastore. For preview, only US-east-1 endpoints are + * supported.

    + */ + DatastoreEndpoint: string | undefined; +} + +export namespace CreateFHIRDatastoreResponse { + export const filterSensitiveLog = (obj: CreateFHIRDatastoreResponse): any => ({ + ...obj, + }); +} + +/** + *

    Unknown error occurs in the service.

    + */ +export interface InternalServerException extends __SmithyException, $MetadataBearer { + name: "InternalServerException"; + $fault: "server"; + Message?: string; +} + +export namespace InternalServerException { + export const filterSensitiveLog = (obj: InternalServerException): any => ({ + ...obj, + }); +} + +/** + *

    The user has exceeded their maximum number of allowed calls to the given API.

    + */ +export interface ThrottlingException extends __SmithyException, $MetadataBearer { + name: "ThrottlingException"; + $fault: "client"; + Message?: string; +} + +export namespace ThrottlingException { + export const filterSensitiveLog = (obj: ThrottlingException): any => ({ + ...obj, + }); +} + +/** + *

    The user input parameter was invalid.

    + */ +export interface ValidationException extends __SmithyException, $MetadataBearer { + name: "ValidationException"; + $fault: "client"; + Message?: string; +} + +export namespace ValidationException { + export const filterSensitiveLog = (obj: ValidationException): any => ({ + ...obj, + }); +} + +/** + *

    The filters applied to datastore query.

    + */ +export interface DatastoreFilter { + /** + *

    Allows the user to filter datastore results by name.

    + */ + DatastoreName?: string; + + /** + *

    Allows the user to filter datastore results by status.

    + */ + DatastoreStatus?: DatastoreStatus | string; + + /** + *

    A filter that allows the user to set cutoff dates for records. All datastores created + * before the specified date will be included in the results.

    + */ + CreatedBefore?: Date; + + /** + *

    A filter that allows the user to set cutoff dates for records. All datastores created + * after the specified date will be included in the results.

    + */ + CreatedAfter?: Date; +} + +export namespace DatastoreFilter { + export const filterSensitiveLog = (obj: DatastoreFilter): any => ({ + ...obj, + }); +} + +/** + *

    Displays the properties of the datastore, including the ID, Arn, name, and the status of the datastore.

    + */ +export interface DatastoreProperties { + /** + *

    The AWS-generated ID number for the datastore.

    + */ + DatastoreId: string | undefined; + + /** + *

    The Amazon Resource Name used in the creation of the datastore.

    + */ + DatastoreArn: string | undefined; + + /** + *

    The user-generated name for the datastore.

    + */ + DatastoreName?: string; + + /** + *

    The status of the datastore. Possible statuses are 'CREATING', 'ACTIVE', 'DELETING', or 'DELETED'.

    + */ + DatastoreStatus: DatastoreStatus | string | undefined; + + /** + *

    The time that a datastore was created.

    + */ + CreatedAt?: Date; + + /** + *

    The FHIR version. Only R4 version data is supported.

    + */ + DatastoreTypeVersion: FHIRVersion | string | undefined; + + /** + *

    The AWS endpoint for the datastore. Each datastore will have it's own endpoint with datastore ID in the endpoint URL.

    + */ + DatastoreEndpoint: string | undefined; + + /** + *

    The preloaded data configuration for the datastore. Only data preloaded from Synthea is supported.

    + */ + PreloadDataConfig?: PreloadDataConfig; +} + +export namespace DatastoreProperties { + export const filterSensitiveLog = (obj: DatastoreProperties): any => ({ + ...obj, + }); +} + +export interface DeleteFHIRDatastoreRequest { + /** + *

    The AWS-generated ID for the datastore to be deleted.

    + */ + DatastoreId?: string; +} + +export namespace DeleteFHIRDatastoreRequest { + export const filterSensitiveLog = (obj: DeleteFHIRDatastoreRequest): any => ({ + ...obj, + }); +} + +export interface DeleteFHIRDatastoreResponse { + /** + *

    The AWS-generated ID for the datastore to be deleted.

    + */ + DatastoreId: string | undefined; + + /** + *

    The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.

    + */ + DatastoreArn: string | undefined; + + /** + *

    The status of the datastore that the user has requested to be deleted. + *

    + */ + DatastoreStatus: DatastoreStatus | string | undefined; + + /** + *

    The AWS endpoint for the datastore the user has requested to be deleted.

    + */ + DatastoreEndpoint: string | undefined; +} + +export namespace DeleteFHIRDatastoreResponse { + export const filterSensitiveLog = (obj: DeleteFHIRDatastoreResponse): any => ({ + ...obj, + }); +} + +/** + *

    The requested datastore was not found.

    + */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotFoundException { + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +export interface DescribeFHIRDatastoreRequest { + /** + *

    The AWS-generated datastore id. This is part of the ‘CreateFHIRDatastore’ output.

    + */ + DatastoreId?: string; +} + +export namespace DescribeFHIRDatastoreRequest { + export const filterSensitiveLog = (obj: DescribeFHIRDatastoreRequest): any => ({ + ...obj, + }); +} + +export interface DescribeFHIRDatastoreResponse { + /** + *

    All properties associated with a datastore, including the datastore ID, datastore ARN, + * datastore name, datastore status, created at, datastore type version, and datastore + * endpoint.

    + */ + DatastoreProperties: DatastoreProperties | undefined; +} + +export namespace DescribeFHIRDatastoreResponse { + export const filterSensitiveLog = (obj: DescribeFHIRDatastoreResponse): any => ({ + ...obj, + }); +} + +export interface DescribeFHIRImportJobRequest { + /** + *

    The AWS-generated ID of the datastore.

    + */ + DatastoreId: string | undefined; + + /** + *

    The AWS-generated job ID.

    + */ + JobId: string | undefined; +} + +export namespace DescribeFHIRImportJobRequest { + export const filterSensitiveLog = (obj: DescribeFHIRImportJobRequest): any => ({ + ...obj, + }); +} + +/** + *

    The input properties for an import job.

    + */ +export type InputDataConfig = InputDataConfig.S3UriMember | InputDataConfig.$UnknownMember; + +export namespace InputDataConfig { + /** + *

    The S3Uri is the user specified S3 location of the FHIR data to be imported into Amazon HealthLake.

    + */ + export interface S3UriMember { + S3Uri: string; + $unknown?: never; + } + + export interface $UnknownMember { + S3Uri?: never; + $unknown: [string, any]; + } + + export interface Visitor { + S3Uri: (value: string) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: InputDataConfig, visitor: Visitor): T => { + if (value.S3Uri !== undefined) return visitor.S3Uri(value.S3Uri); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; + + export const filterSensitiveLog = (obj: InputDataConfig): any => { + if (obj.S3Uri !== undefined) return { S3Uri: obj.S3Uri }; + if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; + }; +} + +export enum JobStatus { + COMPLETED = "COMPLETED", + FAILED = "FAILED", + IN_PROGRESS = "IN_PROGRESS", + SUBMITTED = "SUBMITTED", +} + +/** + *

    Displays the properties of the import job, including the ID, Arn, Name, and the status of the datastore.

    + */ +export interface ImportJobProperties { + /** + *

    The AWS-generated id number for the Import job.

    + */ + JobId: string | undefined; + + /** + *

    The user-generated name for an Import job.

    + */ + JobName?: string; + + /** + *

    The job status for an Import job. Possible statuses are SUBMITTED, IN_PROGRESS, COMPLETED, FAILED.

    + */ + JobStatus: JobStatus | string | undefined; + + /** + *

    The time that the Import job was submitted for processing.

    + */ + SubmitTime: Date | undefined; + + /** + *

    The time that the Import job was completed.

    + */ + EndTime?: Date; + + /** + *

    The datastore id used when the Import job was created.

    + */ + DatastoreId: string | undefined; + + /** + *

    The input data configuration that was supplied when the Import job was created.

    + */ + InputDataConfig: InputDataConfig | undefined; + + /** + *

    The Amazon Resource Name (ARN) that gives Amazon HealthLake access to your input data.

    + */ + DataAccessRoleArn?: string; + + /** + *

    An explanation of any errors that may have occurred during the FHIR import job.

    + */ + Message?: string; +} + +export namespace ImportJobProperties { + export const filterSensitiveLog = (obj: ImportJobProperties): any => ({ + ...obj, + ...(obj.InputDataConfig && { InputDataConfig: InputDataConfig.filterSensitiveLog(obj.InputDataConfig) }), + }); +} + +export interface DescribeFHIRImportJobResponse { + /** + *

    The properties of the Import job request, including the ID, ARN, name, and the status of the datastore.

    + */ + ImportJobProperties: ImportJobProperties | undefined; +} + +export namespace DescribeFHIRImportJobResponse { + export const filterSensitiveLog = (obj: DescribeFHIRImportJobResponse): any => ({ + ...obj, + ...(obj.ImportJobProperties && { + ImportJobProperties: ImportJobProperties.filterSensitiveLog(obj.ImportJobProperties), + }), + }); +} + +export interface ListFHIRDatastoresRequest { + /** + *

    Lists all filters associated with a FHIR datastore request.

    + */ + Filter?: DatastoreFilter; + + /** + *

    Fetches the next page of datastores when results are paginated.

    + */ + NextToken?: string; + + /** + *

    The maximum number of datastores returned in a single page of a + * ListFHIRDatastoresRequest call.

    + */ + MaxResults?: number; +} + +export namespace ListFHIRDatastoresRequest { + export const filterSensitiveLog = (obj: ListFHIRDatastoresRequest): any => ({ + ...obj, + }); +} + +export interface ListFHIRDatastoresResponse { + /** + *

    All properties associated with the listed datastores.

    + */ + DatastorePropertiesList: DatastoreProperties[] | undefined; + + /** + *

    Pagination token that can be used to retrieve the next page of results.

    + */ + NextToken?: string; +} + +export namespace ListFHIRDatastoresResponse { + export const filterSensitiveLog = (obj: ListFHIRDatastoresResponse): any => ({ + ...obj, + }); +} + +export interface StartFHIRImportJobRequest { + /** + *

    The name of the FHIR Import job in the StartFHIRImport job request.

    + */ + JobName?: string; + + /** + *

    The input properties of the FHIR Import job in the StartFHIRImport job request.

    + */ + InputDataConfig: InputDataConfig | undefined; + + /** + *

    The AWS-generated datastore ID.

    + */ + DatastoreId: string | undefined; + + /** + *

    The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.

    + */ + DataAccessRoleArn: string | undefined; + + /** + *

    Optional user provided token used for ensuring idempotency.

    + */ + ClientToken?: string; +} + +export namespace StartFHIRImportJobRequest { + export const filterSensitiveLog = (obj: StartFHIRImportJobRequest): any => ({ + ...obj, + ...(obj.InputDataConfig && { InputDataConfig: InputDataConfig.filterSensitiveLog(obj.InputDataConfig) }), + }); +} + +export interface StartFHIRImportJobResponse { + /** + *

    The AWS-generated job ID.

    + */ + JobId: string | undefined; + + /** + *

    The status of an import job.

    + */ + JobStatus: JobStatus | string | undefined; + + /** + *

    The AWS-generated datastore ID.

    + */ + DatastoreId?: string; +} + +export namespace StartFHIRImportJobResponse { + export const filterSensitiveLog = (obj: StartFHIRImportJobResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-healthlake/package.json b/clients/client-healthlake/package.json new file mode 100644 index 0000000000000..849f7122a21b8 --- /dev/null +++ b/clients/client-healthlake/package.json @@ -0,0 +1,85 @@ +{ + "name": "@aws-sdk/client-healthlake", + "description": "AWS SDK for JavaScript Healthlake Client for Node.js, Browser and React Native", + "version": "1.0.0-rc.1", + "scripts": { + "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation", + "build-documentation": "yarn remove-documentation && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "yarn build:cjs", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "test": "yarn build && jest --coverage --passWithNoTests", + "build:cjs": "tsc -p tsconfig.json", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn build:cjs && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "react-native": { + "./runtimeConfig": "./runtimeConfig.native" + }, + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.8", + "@aws-sdk/credential-provider-node": "1.0.0-rc.8", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.8", + "@aws-sdk/hash-node": "1.0.0-rc.8", + "@aws-sdk/invalid-dependency": "1.0.0-rc.8", + "@aws-sdk/middleware-content-length": "1.0.0-rc.8", + "@aws-sdk/middleware-host-header": "1.0.0-rc.8", + "@aws-sdk/middleware-logger": "1.0.0-rc.8", + "@aws-sdk/middleware-retry": "1.0.0-rc.8", + "@aws-sdk/middleware-serde": "1.0.0-rc.8", + "@aws-sdk/middleware-signing": "1.0.0-rc.8", + "@aws-sdk/middleware-stack": "1.0.0-rc.8", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.8", + "@aws-sdk/node-config-provider": "1.0.0-rc.8", + "@aws-sdk/node-http-handler": "1.0.0-rc.8", + "@aws-sdk/protocol-http": "1.0.0-rc.8", + "@aws-sdk/smithy-client": "1.0.0-rc.8", + "@aws-sdk/url-parser-browser": "1.0.0-rc.8", + "@aws-sdk/url-parser-node": "1.0.0-rc.8", + "@aws-sdk/util-base64-browser": "1.0.0-rc.8", + "@aws-sdk/util-base64-node": "1.0.0-rc.8", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.8", + "@aws-sdk/util-body-length-node": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.8", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.8", + "@aws-sdk/util-utf8-node": "1.0.0-rc.8", + "tslib": "^2.0.0", + "uuid": "^3.0.0" + }, + "devDependencies": { + "@aws-sdk/client-documentation-generator": "1.0.0-rc.8", + "@aws-sdk/types": "1.0.0-rc.8", + "@types/node": "^12.7.5", + "@types/uuid": "^3.0.0", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "typedoc": "^0.19.2", + "typescript": "~4.1.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/master/clients/client-healthlake", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-healthlake" + } +} diff --git a/clients/client-healthlake/pagination/Interfaces.ts b/clients/client-healthlake/pagination/Interfaces.ts new file mode 100644 index 0000000000000..263bad87b67e3 --- /dev/null +++ b/clients/client-healthlake/pagination/Interfaces.ts @@ -0,0 +1,7 @@ +import { HealthLake } from "../HealthLake"; +import { HealthLakeClient } from "../HealthLakeClient"; +import { PaginationConfiguration } from "@aws-sdk/types"; + +export interface HealthLakePaginationConfiguration extends PaginationConfiguration { + client: HealthLake | HealthLakeClient; +} diff --git a/clients/client-healthlake/pagination/ListFHIRDatastoresPaginator.ts b/clients/client-healthlake/pagination/ListFHIRDatastoresPaginator.ts new file mode 100644 index 0000000000000..eb8b520f626c0 --- /dev/null +++ b/clients/client-healthlake/pagination/ListFHIRDatastoresPaginator.ts @@ -0,0 +1,57 @@ +import { HealthLake } from "../HealthLake"; +import { HealthLakeClient } from "../HealthLakeClient"; +import { + ListFHIRDatastoresCommand, + ListFHIRDatastoresCommandInput, + ListFHIRDatastoresCommandOutput, +} from "../commands/ListFHIRDatastoresCommand"; +import { HealthLakePaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: HealthLakeClient, + input: ListFHIRDatastoresCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListFHIRDatastoresCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: HealthLake, + input: ListFHIRDatastoresCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listFHIRDatastores(input, ...args); +}; +export async function* paginateListFHIRDatastores( + config: HealthLakePaginationConfiguration, + input: ListFHIRDatastoresCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListFHIRDatastoresCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof HealthLake) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof HealthLakeClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected HealthLake | HealthLakeClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-healthlake/protocols/Aws_json1_0.ts b/clients/client-healthlake/protocols/Aws_json1_0.ts new file mode 100644 index 0000000000000..0ef84555e0deb --- /dev/null +++ b/clients/client-healthlake/protocols/Aws_json1_0.ts @@ -0,0 +1,1037 @@ +import { + CreateFHIRDatastoreCommandInput, + CreateFHIRDatastoreCommandOutput, +} from "../commands/CreateFHIRDatastoreCommand"; +import { + DeleteFHIRDatastoreCommandInput, + DeleteFHIRDatastoreCommandOutput, +} from "../commands/DeleteFHIRDatastoreCommand"; +import { + DescribeFHIRDatastoreCommandInput, + DescribeFHIRDatastoreCommandOutput, +} from "../commands/DescribeFHIRDatastoreCommand"; +import { + DescribeFHIRImportJobCommandInput, + DescribeFHIRImportJobCommandOutput, +} from "../commands/DescribeFHIRImportJobCommand"; +import { ListFHIRDatastoresCommandInput, ListFHIRDatastoresCommandOutput } from "../commands/ListFHIRDatastoresCommand"; +import { StartFHIRImportJobCommandInput, StartFHIRImportJobCommandOutput } from "../commands/StartFHIRImportJobCommand"; +import { + AccessDeniedException, + ConflictException, + CreateFHIRDatastoreRequest, + CreateFHIRDatastoreResponse, + DatastoreFilter, + DatastoreProperties, + DeleteFHIRDatastoreRequest, + DeleteFHIRDatastoreResponse, + DescribeFHIRDatastoreRequest, + DescribeFHIRDatastoreResponse, + DescribeFHIRImportJobRequest, + DescribeFHIRImportJobResponse, + ImportJobProperties, + InputDataConfig, + InternalServerException, + ListFHIRDatastoresRequest, + ListFHIRDatastoresResponse, + PreloadDataConfig, + ResourceNotFoundException, + StartFHIRImportJobRequest, + StartFHIRImportJobResponse, + ThrottlingException, + ValidationException, +} from "../models/models_0"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + HeaderBag as __HeaderBag, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; +import { v4 as generateIdempotencyToken } from "uuid"; + +export const serializeAws_json1_0CreateFHIRDatastoreCommand = async ( + input: CreateFHIRDatastoreCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.CreateFHIRDatastore", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0CreateFHIRDatastoreRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_0DeleteFHIRDatastoreCommand = async ( + input: DeleteFHIRDatastoreCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.DeleteFHIRDatastore", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0DeleteFHIRDatastoreRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_0DescribeFHIRDatastoreCommand = async ( + input: DescribeFHIRDatastoreCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.DescribeFHIRDatastore", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0DescribeFHIRDatastoreRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_0DescribeFHIRImportJobCommand = async ( + input: DescribeFHIRImportJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.DescribeFHIRImportJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0DescribeFHIRImportJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_0ListFHIRDatastoresCommand = async ( + input: ListFHIRDatastoresCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.ListFHIRDatastores", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0ListFHIRDatastoresRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_0StartFHIRImportJobCommand = async ( + input: StartFHIRImportJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.0", + "X-Amz-Target": "HealthLake.StartFHIRImportJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0StartFHIRImportJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const deserializeAws_json1_0CreateFHIRDatastoreCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0CreateFHIRDatastoreCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0CreateFHIRDatastoreResponse(data, context); + const response: CreateFHIRDatastoreCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0CreateFHIRDatastoreCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_0DeleteFHIRDatastoreCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0DeleteFHIRDatastoreCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0DeleteFHIRDatastoreResponse(data, context); + const response: DeleteFHIRDatastoreCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0DeleteFHIRDatastoreCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.healthlake#AccessDeniedException": + response = { + ...(await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.healthlake#ConflictException": + response = { + ...(await deserializeAws_json1_0ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.healthlake#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_0DescribeFHIRDatastoreCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0DescribeFHIRDatastoreCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0DescribeFHIRDatastoreResponse(data, context); + const response: DescribeFHIRDatastoreCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0DescribeFHIRDatastoreCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.healthlake#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_0DescribeFHIRImportJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0DescribeFHIRImportJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0DescribeFHIRImportJobResponse(data, context); + const response: DescribeFHIRImportJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0DescribeFHIRImportJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.healthlake#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_0ListFHIRDatastoresCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0ListFHIRDatastoresCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0ListFHIRDatastoresResponse(data, context); + const response: ListFHIRDatastoresCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0ListFHIRDatastoresCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_0StartFHIRImportJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0StartFHIRImportJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0StartFHIRImportJobResponse(data, context); + const response: StartFHIRImportJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0StartFHIRImportJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.healthlake#AccessDeniedException": + response = { + ...(await deserializeAws_json1_0AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.healthlake#InternalServerException": + response = { + ...(await deserializeAws_json1_0InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.healthlake#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.healthlake#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.healthlake#ValidationException": + response = { + ...(await deserializeAws_json1_0ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_json1_0AccessDeniedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0AccessDeniedException(body, context); + const contents: AccessDeniedException = { + name: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_0ConflictExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0ConflictException(body, context); + const contents: ConflictException = { + name: "ConflictException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_0InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0InternalServerException(body, context); + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_0ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0ResourceNotFoundException(body, context); + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_0ThrottlingExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0ThrottlingException(body, context); + const contents: ThrottlingException = { + name: "ThrottlingException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_0ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_0ValidationException(body, context); + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const serializeAws_json1_0CreateFHIRDatastoreRequest = ( + input: CreateFHIRDatastoreRequest, + context: __SerdeContext +): any => { + return { + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.DatastoreName !== undefined && { DatastoreName: input.DatastoreName }), + ...(input.DatastoreTypeVersion !== undefined && { DatastoreTypeVersion: input.DatastoreTypeVersion }), + ...(input.PreloadDataConfig !== undefined && { + PreloadDataConfig: serializeAws_json1_0PreloadDataConfig(input.PreloadDataConfig, context), + }), + }; +}; + +const serializeAws_json1_0DatastoreFilter = (input: DatastoreFilter, context: __SerdeContext): any => { + return { + ...(input.CreatedAfter !== undefined && { CreatedAfter: Math.round(input.CreatedAfter.getTime() / 1000) }), + ...(input.CreatedBefore !== undefined && { CreatedBefore: Math.round(input.CreatedBefore.getTime() / 1000) }), + ...(input.DatastoreName !== undefined && { DatastoreName: input.DatastoreName }), + ...(input.DatastoreStatus !== undefined && { DatastoreStatus: input.DatastoreStatus }), + }; +}; + +const serializeAws_json1_0DeleteFHIRDatastoreRequest = ( + input: DeleteFHIRDatastoreRequest, + context: __SerdeContext +): any => { + return { + ...(input.DatastoreId !== undefined && { DatastoreId: input.DatastoreId }), + }; +}; + +const serializeAws_json1_0DescribeFHIRDatastoreRequest = ( + input: DescribeFHIRDatastoreRequest, + context: __SerdeContext +): any => { + return { + ...(input.DatastoreId !== undefined && { DatastoreId: input.DatastoreId }), + }; +}; + +const serializeAws_json1_0DescribeFHIRImportJobRequest = ( + input: DescribeFHIRImportJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.DatastoreId !== undefined && { DatastoreId: input.DatastoreId }), + ...(input.JobId !== undefined && { JobId: input.JobId }), + }; +}; + +const serializeAws_json1_0InputDataConfig = (input: InputDataConfig, context: __SerdeContext): any => { + return InputDataConfig.visit(input, { + S3Uri: (value) => ({ S3Uri: value }), + _: (name, value) => ({ name: value } as any), + }); +}; + +const serializeAws_json1_0ListFHIRDatastoresRequest = ( + input: ListFHIRDatastoresRequest, + context: __SerdeContext +): any => { + return { + ...(input.Filter !== undefined && { Filter: serializeAws_json1_0DatastoreFilter(input.Filter, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_0PreloadDataConfig = (input: PreloadDataConfig, context: __SerdeContext): any => { + return { + ...(input.PreloadDataType !== undefined && { PreloadDataType: input.PreloadDataType }), + }; +}; + +const serializeAws_json1_0StartFHIRImportJobRequest = ( + input: StartFHIRImportJobRequest, + context: __SerdeContext +): any => { + return { + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.DataAccessRoleArn !== undefined && { DataAccessRoleArn: input.DataAccessRoleArn }), + ...(input.DatastoreId !== undefined && { DatastoreId: input.DatastoreId }), + ...(input.InputDataConfig !== undefined && { + InputDataConfig: serializeAws_json1_0InputDataConfig(input.InputDataConfig, context), + }), + ...(input.JobName !== undefined && { JobName: input.JobName }), + }; +}; + +const deserializeAws_json1_0AccessDeniedException = (output: any, context: __SerdeContext): AccessDeniedException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_0ConflictException = (output: any, context: __SerdeContext): ConflictException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_0CreateFHIRDatastoreResponse = ( + output: any, + context: __SerdeContext +): CreateFHIRDatastoreResponse => { + return { + DatastoreArn: output.DatastoreArn !== undefined && output.DatastoreArn !== null ? output.DatastoreArn : undefined, + DatastoreEndpoint: + output.DatastoreEndpoint !== undefined && output.DatastoreEndpoint !== null + ? output.DatastoreEndpoint + : undefined, + DatastoreId: output.DatastoreId !== undefined && output.DatastoreId !== null ? output.DatastoreId : undefined, + DatastoreStatus: + output.DatastoreStatus !== undefined && output.DatastoreStatus !== null ? output.DatastoreStatus : undefined, + } as any; +}; + +const deserializeAws_json1_0DatastoreProperties = (output: any, context: __SerdeContext): DatastoreProperties => { + return { + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? new Date(Math.round(output.CreatedAt * 1000)) + : undefined, + DatastoreArn: output.DatastoreArn !== undefined && output.DatastoreArn !== null ? output.DatastoreArn : undefined, + DatastoreEndpoint: + output.DatastoreEndpoint !== undefined && output.DatastoreEndpoint !== null + ? output.DatastoreEndpoint + : undefined, + DatastoreId: output.DatastoreId !== undefined && output.DatastoreId !== null ? output.DatastoreId : undefined, + DatastoreName: + output.DatastoreName !== undefined && output.DatastoreName !== null ? output.DatastoreName : undefined, + DatastoreStatus: + output.DatastoreStatus !== undefined && output.DatastoreStatus !== null ? output.DatastoreStatus : undefined, + DatastoreTypeVersion: + output.DatastoreTypeVersion !== undefined && output.DatastoreTypeVersion !== null + ? output.DatastoreTypeVersion + : undefined, + PreloadDataConfig: + output.PreloadDataConfig !== undefined && output.PreloadDataConfig !== null + ? deserializeAws_json1_0PreloadDataConfig(output.PreloadDataConfig, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_0DatastorePropertiesList = (output: any, context: __SerdeContext): DatastoreProperties[] => { + return (output || []).map((entry: any) => deserializeAws_json1_0DatastoreProperties(entry, context)); +}; + +const deserializeAws_json1_0DeleteFHIRDatastoreResponse = ( + output: any, + context: __SerdeContext +): DeleteFHIRDatastoreResponse => { + return { + DatastoreArn: output.DatastoreArn !== undefined && output.DatastoreArn !== null ? output.DatastoreArn : undefined, + DatastoreEndpoint: + output.DatastoreEndpoint !== undefined && output.DatastoreEndpoint !== null + ? output.DatastoreEndpoint + : undefined, + DatastoreId: output.DatastoreId !== undefined && output.DatastoreId !== null ? output.DatastoreId : undefined, + DatastoreStatus: + output.DatastoreStatus !== undefined && output.DatastoreStatus !== null ? output.DatastoreStatus : undefined, + } as any; +}; + +const deserializeAws_json1_0DescribeFHIRDatastoreResponse = ( + output: any, + context: __SerdeContext +): DescribeFHIRDatastoreResponse => { + return { + DatastoreProperties: + output.DatastoreProperties !== undefined && output.DatastoreProperties !== null + ? deserializeAws_json1_0DatastoreProperties(output.DatastoreProperties, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_0DescribeFHIRImportJobResponse = ( + output: any, + context: __SerdeContext +): DescribeFHIRImportJobResponse => { + return { + ImportJobProperties: + output.ImportJobProperties !== undefined && output.ImportJobProperties !== null + ? deserializeAws_json1_0ImportJobProperties(output.ImportJobProperties, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_0ImportJobProperties = (output: any, context: __SerdeContext): ImportJobProperties => { + return { + DataAccessRoleArn: + output.DataAccessRoleArn !== undefined && output.DataAccessRoleArn !== null + ? output.DataAccessRoleArn + : undefined, + DatastoreId: output.DatastoreId !== undefined && output.DatastoreId !== null ? output.DatastoreId : undefined, + EndTime: + output.EndTime !== undefined && output.EndTime !== null ? new Date(Math.round(output.EndTime * 1000)) : undefined, + InputDataConfig: + output.InputDataConfig !== undefined && output.InputDataConfig !== null + ? deserializeAws_json1_0InputDataConfig(output.InputDataConfig, context) + : undefined, + JobId: output.JobId !== undefined && output.JobId !== null ? output.JobId : undefined, + JobName: output.JobName !== undefined && output.JobName !== null ? output.JobName : undefined, + JobStatus: output.JobStatus !== undefined && output.JobStatus !== null ? output.JobStatus : undefined, + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + SubmitTime: + output.SubmitTime !== undefined && output.SubmitTime !== null + ? new Date(Math.round(output.SubmitTime * 1000)) + : undefined, + } as any; +}; + +const deserializeAws_json1_0InputDataConfig = (output: any, context: __SerdeContext): InputDataConfig => { + if (output.S3Uri !== undefined && output.S3Uri !== null) { + return { + S3Uri: output.S3Uri, + }; + } + return { $unknown: Object.entries(output)[0] }; +}; + +const deserializeAws_json1_0InternalServerException = ( + output: any, + context: __SerdeContext +): InternalServerException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_0ListFHIRDatastoresResponse = ( + output: any, + context: __SerdeContext +): ListFHIRDatastoresResponse => { + return { + DatastorePropertiesList: + output.DatastorePropertiesList !== undefined && output.DatastorePropertiesList !== null + ? deserializeAws_json1_0DatastorePropertiesList(output.DatastorePropertiesList, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_0PreloadDataConfig = (output: any, context: __SerdeContext): PreloadDataConfig => { + return { + PreloadDataType: + output.PreloadDataType !== undefined && output.PreloadDataType !== null ? output.PreloadDataType : undefined, + } as any; +}; + +const deserializeAws_json1_0ResourceNotFoundException = ( + output: any, + context: __SerdeContext +): ResourceNotFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_0StartFHIRImportJobResponse = ( + output: any, + context: __SerdeContext +): StartFHIRImportJobResponse => { + return { + DatastoreId: output.DatastoreId !== undefined && output.DatastoreId !== null ? output.DatastoreId : undefined, + JobId: output.JobId !== undefined && output.JobId !== null ? output.JobId : undefined, + JobStatus: output.JobStatus !== undefined && output.JobStatus !== null ? output.JobStatus : undefined, + } as any; +}; + +const deserializeAws_json1_0ThrottlingException = (output: any, context: __SerdeContext): ThrottlingException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_0ValidationException = (output: any, context: __SerdeContext): ValidationException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const buildHttpRpcRequest = async ( + context: __SerdeContext, + headers: __HeaderBag, + path: string, + resolvedHostname: string | undefined, + body: any +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port } = await context.endpoint(); + const contents: any = { + protocol, + hostname, + port, + method: "POST", + path, + headers, + }; + if (resolvedHostname !== undefined) { + contents.hostname = resolvedHostname; + } + if (body !== undefined) { + contents.body = body; + } + return new __HttpRequest(contents); +}; + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); diff --git a/clients/client-healthlake/runtimeConfig.browser.ts b/clients/client-healthlake/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..f13a36c320bc7 --- /dev/null +++ b/clients/client-healthlake/runtimeConfig.browser.ts @@ -0,0 +1,34 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidAsyncFunction } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS } from "@aws-sdk/middleware-retry"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { ClientDefaults } from "./HealthLakeClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "browser", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider: invalidAsyncFunction("Credentialis missing") as any, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: DEFAULT_MAX_ATTEMPTS, + region: invalidAsyncFunction("Region is missing") as any, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-healthlake/runtimeConfig.native.ts b/clients/client-healthlake/runtimeConfig.native.ts new file mode 100644 index 0000000000000..f1bf34725bff0 --- /dev/null +++ b/clients/client-healthlake/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-js"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { ClientDefaults } from "./HealthLakeClient"; +import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...BrowserDefaults, + runtime: "react-native", + defaultUserAgent: `aws-sdk-js-v3-react-native-${packageInfo.name}/${packageInfo.version}`, + sha256: Sha256, + urlParser: parseUrl, +}; diff --git a/clients/client-healthlake/runtimeConfig.shared.ts b/clients/client-healthlake/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..8a95177533fe6 --- /dev/null +++ b/clients/client-healthlake/runtimeConfig.shared.ts @@ -0,0 +1,13 @@ +import { defaultRegionInfoProvider } from "./endpoints"; +import { Logger as __Logger } from "@aws-sdk/types"; + +/** + * @internal + */ +export const ClientSharedValues = { + apiVersion: "2017-07-01", + disableHostPrefix: false, + logger: {} as __Logger, + regionInfoProvider: defaultRegionInfoProvider, + signingName: "healthlake", +}; diff --git a/clients/client-healthlake/runtimeConfig.ts b/clients/client-healthlake/runtimeConfig.ts new file mode 100644 index 0000000000000..f746e7bdbabab --- /dev/null +++ b/clients/client-healthlake/runtimeConfig.ts @@ -0,0 +1,36 @@ +import packageInfo from "./package.json"; + +import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { ClientDefaults } from "./HealthLakeClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "node", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-healthlake/tsconfig.es.json b/clients/client-healthlake/tsconfig.es.json new file mode 100644 index 0000000000000..30df5d2e6986e --- /dev/null +++ b/clients/client-healthlake/tsconfig.es.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist/es" + } +} diff --git a/clients/client-healthlake/tsconfig.json b/clients/client-healthlake/tsconfig.json new file mode 100644 index 0000000000000..4cf936f614b4d --- /dev/null +++ b/clients/client-healthlake/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "./protocols/*.ts", "./e2e/*.ts", "./endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "readme": "./README.md", + "mode": "file", + "out": "./docs", + "theme": "minimal", + "plugin": ["@aws-sdk/client-documentation-generator"] + } +} diff --git a/clients/client-kafka/models/models_0.ts b/clients/client-kafka/models/models_0.ts index fc48019806730..d02fa37079a24 100644 --- a/clients/client-kafka/models/models_0.ts +++ b/clients/client-kafka/models/models_0.ts @@ -400,6 +400,7 @@ export enum ClusterState { CREATING = "CREATING", DELETING = "DELETING", FAILED = "FAILED", + HEALING = "HEALING", MAINTENANCE = "MAINTENANCE", REBOOTING_BROKER = "REBOOTING_BROKER", UPDATING = "UPDATING", @@ -482,7 +483,7 @@ export interface ClusterInfo { NumberOfBrokerNodes?: number; /** - *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    + *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    */ State?: ClusterState | string; @@ -1362,7 +1363,7 @@ export interface CreateClusterResponse { ClusterName?: string; /** - *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    + *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    */ State?: ClusterState | string; } @@ -1460,7 +1461,7 @@ export interface DeleteClusterResponse { ClusterArn?: string; /** - *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    + *

    The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

    */ State?: ClusterState | string; } diff --git a/clients/client-kendra/models/models_0.ts b/clients/client-kendra/models/models_0.ts index bf4a67618712d..d0a33e963c7bc 100644 --- a/clients/client-kendra/models/models_0.ts +++ b/clients/client-kendra/models/models_0.ts @@ -2,7 +2,9 @@ import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; /** - *

    Access Control List files for the documents in a data source.

    + *

    Access Control List files for the documents in a data source. For + * the format of the file, see Access control for S3 data + * sources.

    */ export interface AccessControlListConfiguration { /** @@ -33,14 +35,15 @@ export namespace AccessDeniedException { } /** - *

    Provides information about the column that should be used for filtering the query - * response by groups.

    + *

    Provides information about the column that should be used for + * filtering the query response by groups.

    */ export interface AclConfiguration { /** - *

    A list of groups, separated by semi-colons, that filters a query response based on - * user context. The document is only returned to users that are in one of the groups - * specified in the UserContext field of the Query + *

    A list of groups, separated by semi-colons, that filters a query + * response based on user context. The document is only returned to + * users that are in one of the groups specified in the + * UserContext field of the Query * operation.

    */ AllowedGroupsColumnName: string | undefined; @@ -53,23 +56,26 @@ export namespace AclConfiguration { } /** - *

    Provides information that you can use to highlight a search result so that your users - * can quickly identify terms in the response.

    + *

    Provides information that you can use to highlight a search result + * so that your users can quickly identify terms in the + * response.

    */ export interface Highlight { /** - *

    The zero-based location in the response string where the highlight starts.

    + *

    The zero-based location in the response string where the highlight + * starts.

    */ BeginOffset: number | undefined; /** - *

    The zero-based location in the response string where the highlight ends.

    + *

    The zero-based location in the response string where the highlight + * ends.

    */ EndOffset: number | undefined; /** - *

    Indicates whether the response is the best response. True if this is the best - * response; otherwise, false.

    + *

    Indicates whether the response is the best response. True if this + * is the best response; otherwise, false.

    */ TopAnswer?: boolean; } @@ -81,7 +87,8 @@ export namespace Highlight { } /** - *

    Provides text and information about where to highlight the text.

    + *

    Provides text and information about where to highlight the + * text.

    */ export interface TextWithHighlights { /** @@ -90,7 +97,8 @@ export interface TextWithHighlights { Text?: string; /** - *

    The beginning and end of the text that should be highlighted.

    + *

    The beginning and end of the text that should be + * highlighted.

    */ Highlights?: Highlight[]; } @@ -106,8 +114,8 @@ export namespace TextWithHighlights { */ export interface AdditionalResultAttributeValue { /** - *

    The text associated with the attribute and information about the highlight to apply to - * the text.

    + *

    The text associated with the attribute and information about the + * highlight to apply to the text.

    */ TextWithHighlightsValue?: TextWithHighlights; } @@ -149,35 +157,92 @@ export namespace AdditionalResultAttribute { } /** - *

    The value of a custom document attribute. You can only provide one value for a custom - * attribute.

    + *

    The value of a custom document attribute. You can only provide one + * value for a custom attribute.

    */ -export interface DocumentAttributeValue { +export type DocumentAttributeValue = + | DocumentAttributeValue.DateValueMember + | DocumentAttributeValue.LongValueMember + | DocumentAttributeValue.StringListValueMember + | DocumentAttributeValue.StringValueMember + | DocumentAttributeValue.$UnknownMember; + +export namespace DocumentAttributeValue { /** *

    A string, such as "department".

    */ - StringValue?: string; + export interface StringValueMember { + StringValue: string; + StringListValue?: never; + LongValue?: never; + DateValue?: never; + $unknown?: never; + } /** *

    A list of strings.

    */ - StringListValue?: string[]; + export interface StringListValueMember { + StringValue?: never; + StringListValue: string[]; + LongValue?: never; + DateValue?: never; + $unknown?: never; + } /** *

    A long integer value.

    */ - LongValue?: number; + export interface LongValueMember { + StringValue?: never; + StringListValue?: never; + LongValue: number; + DateValue?: never; + $unknown?: never; + } /** *

    A date expressed as an ISO 8601 string.

    */ - DateValue?: Date; -} - -export namespace DocumentAttributeValue { - export const filterSensitiveLog = (obj: DocumentAttributeValue): any => ({ - ...obj, - }); + export interface DateValueMember { + StringValue?: never; + StringListValue?: never; + LongValue?: never; + DateValue: Date; + $unknown?: never; + } + + export interface $UnknownMember { + StringValue?: never; + StringListValue?: never; + LongValue?: never; + DateValue?: never; + $unknown: [string, any]; + } + + export interface Visitor { + StringValue: (value: string) => T; + StringListValue: (value: string[]) => T; + LongValue: (value: number) => T; + DateValue: (value: Date) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: DocumentAttributeValue, visitor: Visitor): T => { + if (value.StringValue !== undefined) return visitor.StringValue(value.StringValue); + if (value.StringListValue !== undefined) return visitor.StringListValue(value.StringListValue); + if (value.LongValue !== undefined) return visitor.LongValue(value.LongValue); + if (value.DateValue !== undefined) return visitor.DateValue(value.DateValue); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; + + export const filterSensitiveLog = (obj: DocumentAttributeValue): any => { + if (obj.StringValue !== undefined) return { StringValue: obj.StringValue }; + if (obj.StringListValue !== undefined) return { StringListValue: obj.StringListValue }; + if (obj.LongValue !== undefined) return { LongValue: obj.LongValue }; + if (obj.DateValue !== undefined) return { DateValue: obj.DateValue }; + if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; + }; } /** @@ -198,11 +263,13 @@ export interface DocumentAttribute { export namespace DocumentAttribute { export const filterSensitiveLog = (obj: DocumentAttribute): any => ({ ...obj, + ...(obj.Value && { Value: DocumentAttributeValue.filterSensitiveLog(obj.Value) }), }); } /** - *

    Maps a particular data source sync job to a particular data source.

    + *

    Maps a particular data source sync job to a particular data + * source.

    */ export interface DataSourceSyncJobMetricTarget { /** @@ -234,7 +301,8 @@ export interface BatchDeleteDocumentRequest { DocumentIdList: string[] | undefined; /** - *

    Maps a particular data source sync job to a particular data source.

    + *

    Maps a particular data source sync job to a particular data + * source.

    */ DataSourceSyncJobMetricTarget?: DataSourceSyncJobMetricTarget; } @@ -251,22 +319,26 @@ export enum ErrorCode { } /** - *

    Provides information about documents that could not be removed from an index by the - * BatchDeleteDocument operation.

    + *

    Provides information about documents that could not be removed + * from an index by the BatchDeleteDocument + * operation.

    */ export interface BatchDeleteDocumentResponseFailedDocument { /** - *

    The identifier of the document that couldn't be removed from the index.

    + *

    The identifier of the document that couldn't be removed from the + * index.

    */ Id?: string; /** - *

    The error code for why the document couldn't be removed from the index.

    + *

    The error code for why the document couldn't be removed from the + * index.

    */ ErrorCode?: ErrorCode | string; /** - *

    An explanation for why the document couldn't be removed from the index.

    + *

    An explanation for why the document couldn't be removed from the + * index.

    */ ErrorMessage?: string; } @@ -377,7 +449,8 @@ export enum PrincipalType { } /** - *

    Provides user and group information for document access filtering.

    + *

    Provides user and group information for document access + * filtering.

    */ export interface Principal { /** @@ -411,7 +484,8 @@ export enum ContentType { } /** - *

    Information required to find a specific file in an Amazon S3 bucket.

    + *

    Information required to find a specific file in an Amazon S3 + * bucket.

    */ export interface S3Path { /** @@ -447,22 +521,25 @@ export interface Document { /** *

    The contents of the document.

    - *

    Documents passed to the Blob parameter must be base64 encoded. Your code - * might not need to encode the document file bytes if you're using an AWS SDK to call - * Amazon Kendra operations. If you are calling the Amazon Kendra endpoint directly using REST, you - * must base64 encode the contents before sending.

    + *

    Documents passed to the Blob parameter must be base64 + * encoded. Your code might not need to encode the document file bytes + * if you're using an AWS SDK to call Amazon Kendra operations. If you are + * calling the Amazon Kendra endpoint directly using REST, you must base64 + * encode the contents before sending.

    */ Blob?: Uint8Array; /** - *

    Information required to find a specific file in an Amazon S3 bucket.

    + *

    Information required to find a specific file in an Amazon S3 + * bucket.

    */ S3Path?: S3Path; /** - *

    Custom attributes to apply to the document. Use the custom attributes to provide - * additional information for searching, to provide facets for refining searches, and to - * provide additional information in the query response.

    + *

    Custom attributes to apply to the document. Use the custom + * attributes to provide additional information for searching, to + * provide facets for refining searches, and to provide additional + * information in the query response.

    */ Attributes?: DocumentAttribute[]; @@ -472,7 +549,8 @@ export interface Document { AccessControlList?: Principal[]; /** - *

    The file type of the document in the Blob field.

    + *

    The file type of the document in the Blob + * field.

    */ ContentType?: ContentType | string; } @@ -480,6 +558,7 @@ export interface Document { export namespace Document { export const filterSensitiveLog = (obj: Document): any => ({ ...obj, + ...(obj.Attributes && { Attributes: obj.Attributes.map((item) => DocumentAttribute.filterSensitiveLog(item)) }), }); } @@ -524,7 +603,8 @@ export namespace BatchPutDocumentRequest { } /** - *

    Provides information about a document that could not be indexed.

    + *

    Provides information about a document that could not be + * indexed.

    */ export interface BatchPutDocumentResponseFailedDocument { /** @@ -533,12 +613,14 @@ export interface BatchPutDocumentResponseFailedDocument { Id?: string; /** - *

    The type of error that caused the document to fail to be indexed.

    + *

    The type of error that caused the document to fail to be + * indexed.

    */ ErrorCode?: ErrorCode | string; /** - *

    A description of the reason why the document could not be indexed.

    + *

    A description of the reason why the document could not be + * indexed.

    */ ErrorMessage?: string; } @@ -904,15 +986,17 @@ export enum ConfluenceVersion { */ export interface DataSourceVpcConfiguration { /** - *

    A list of identifiers for subnets within your Amazon VPC. The subnets should be able - * to connect to each other in the VPC, and they should have outgoing access to the - * Internet through a NAT device.

    + *

    A list of identifiers for subnets within your Amazon VPC. The + * subnets should be able to connect to each other in the VPC, and they + * should have outgoing access to the Internet through a NAT + * device.

    */ SubnetIds: string[] | undefined; /** - *

    A list of identifiers of security groups within your Amazon VPC. The security groups - * should enable Amazon Kendra to connect to the data source.

    + *

    A list of identifiers of security groups within your Amazon VPC. + * The security groups should enable Amazon Kendra to connect to the data + * source.

    */ SecurityGroupIds: string[] | undefined; } @@ -1019,8 +1103,8 @@ export namespace ConfluenceConfiguration { } /** - *

    Maps a column or attribute in the data source to an index field. You must first create - * the fields in the index using the UpdateIndex operation.

    + *

    Maps a column or attribute in the data source to an index field. + * You must first create the fields in the index using the UpdateIndex operation.

    */ export interface DataSourceToIndexFieldMapping { /** @@ -1046,8 +1130,8 @@ export namespace DataSourceToIndexFieldMapping { } /** - *

    Provides information about how Amazon Kendra should use the columns of a database in an - * index.

    + *

    Provides information about how Amazon Kendra should use the columns of + * a database in an index.

    */ export interface ColumnConfiguration { /** @@ -1066,13 +1150,16 @@ export interface ColumnConfiguration { DocumentTitleColumnName?: string; /** - *

    An array of objects that map database column names to the corresponding fields in an - * index. You must first create the fields in the index using the UpdateIndex operation.

    + *

    An array of objects that map database column names to the + * corresponding fields in an index. You must first create the fields + * in the index using the UpdateIndex + * operation.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; /** - *

    One to five columns that indicate when a document in the database has changed.

    + *

    One to five columns that indicate when a document in the database + * has changed.

    */ ChangeDetectingColumns: string[] | undefined; } @@ -1084,7 +1171,8 @@ export namespace ColumnConfiguration { } /** - *

    Provides the information necessary to connect to a database.

    + *

    Provides the information necessary to connect to a + * database.

    */ export interface ConnectionConfiguration { /** @@ -1109,12 +1197,13 @@ export interface ConnectionConfiguration { TableName: string | undefined; /** - *

    The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The - * credentials should be a user/password pair. For more information, see Using a - * Database Data Source. For more information about AWS Secrets Manager, see - * What - * Is AWS Secrets Manager in the AWS Secrets Manager user - * guide.

    + *

    The Amazon Resource Name (ARN) of credentials stored in AWS + * Secrets Manager. The credentials should be a user/password pair. For + * more information, see Using a + * Database Data Source. For more information about AWS + * Secrets Manager, see What Is AWS + * Secrets Manager in the AWS Secrets + * Manager user guide.

    */ SecretArn: string | undefined; } @@ -1138,20 +1227,23 @@ export enum QueryIdentifiersEnclosingOption { } /** - *

    Provides information that configures Amazon Kendra to use a SQL database.

    + *

    Provides information that configures Amazon Kendra to use a SQL + * database.

    */ export interface SqlConfiguration { /** - *

    Determines whether Amazon Kendra encloses SQL identifiers for tables and column names in - * double quotes (") when making a database query.

    - *

    By default, Amazon Kendra passes SQL identifiers the way that they are entered into the data - * source configuration. It does not change the case of identifiers or enclose them in - * quotes.

    - *

    PostgreSQL internally converts uppercase characters to lower case characters in - * identifiers unless they are quoted. Choosing this option encloses identifiers in quotes - * so that PostgreSQL does not convert the character's case.

    - *

    For MySQL databases, you must enable the ansi_quotes option when you set - * this field to DOUBLE_QUOTES.

    + *

    Determines whether Amazon Kendra encloses SQL identifiers for tables and + * column names in double quotes (") when making a database + * query.

    + *

    By default, Amazon Kendra passes SQL identifiers the way that they are + * entered into the data source configuration. It does not change the + * case of identifiers or enclose them in quotes.

    + *

    PostgreSQL internally converts uppercase characters to lower case + * characters in identifiers unless they are quoted. Choosing this + * option encloses identifiers in quotes so that PostgreSQL does not + * convert the character's case.

    + *

    For MySQL databases, you must enable the ansi_quotes + * option when you set this field to DOUBLE_QUOTES.

    */ QueryIdentifiersEnclosingOption?: QueryIdentifiersEnclosingOption | string; } @@ -1163,7 +1255,8 @@ export namespace SqlConfiguration { } /** - *

    Provides the information necessary to connect a database to an index.

    + *

    Provides the information necessary to connect a database to an + * index.

    */ export interface DatabaseConfiguration { /** @@ -1182,20 +1275,20 @@ export interface DatabaseConfiguration { VpcConfiguration?: DataSourceVpcConfiguration; /** - *

    Information about where the index should get the document information from the - * database.

    + *

    Information about where the index should get the document + * information from the database.

    */ ColumnConfiguration: ColumnConfiguration | undefined; /** - *

    Information about the database column that provides information for user context - * filtering.

    + *

    Information about the database column that provides information + * for user context filtering.

    */ AclConfiguration?: AclConfiguration; /** - *

    Provides information about how Amazon Kendra uses quote marks around SQL identifiers when - * querying a database data source.

    + *

    Provides information about how Amazon Kendra uses quote marks around SQL + * identifiers when querying a database data source.

    */ SqlConfiguration?: SqlConfiguration; } @@ -1206,21 +1299,95 @@ export namespace DatabaseConfiguration { }); } +/** + *

    Provides configuration information for data sources that connect + * to Google Drive.

    + */ +export interface GoogleDriveConfiguration { + /** + *

    The Amazon Resource Name (ARN) of a AWS Secrets Manager secret + * that contains the credentials required to connect to Google Drive. + * For more information, see Using a Google Workspace Drive data + * source.

    + */ + SecretArn: string | undefined; + + /** + *

    A list of regular expression patterns that apply to path on Google + * Drive. Items that match the pattern are included in the index from + * both shared drives and users' My Drives. Items that don't match the + * pattern are excluded from the index. If an item matches both an + * inclusion pattern and an exclusion pattern, it is excluded from the + * index.

    + */ + InclusionPatterns?: string[]; + + /** + *

    A list of regular expression patterns that apply to the path on + * Google Drive. Items that match the pattern are excluded from the + * index from both shared drives and users' My Drives. Items that don't + * match the pattern are included in the index. If an item matches both + * an exclusion pattern and an inclusion pattern, it is excluded from + * the index.

    + */ + ExclusionPatterns?: string[]; + + /** + *

    Defines mapping between a field in the Google Drive and a Amazon Kendra + * index field.

    + *

    If you are using the console, you can define index fields when + * creating the mapping. If you are using the API, you must first + * create the field using the UpdateIndex + * operation.

    + */ + FieldMappings?: DataSourceToIndexFieldMapping[]; + + /** + *

    A list of MIME types to exclude from the index. All documents + * matching the specified MIME type are excluded.

    + *

    For a list of MIME types, see Using a Google Workspace Drive data + * source.

    + */ + ExcludeMimeTypes?: string[]; + + /** + *

    A list of email addresses of the users. Documents owned by these + * users are excluded from the index. Documents shared with excluded + * users are indexed unless they are excluded in another way.

    + */ + ExcludeUserAccounts?: string[]; + + /** + *

    A list of identifiers or shared drives to exclude from the index. + * All files and folders stored on the shared drive are + * excluded.

    + */ + ExcludeSharedDrives?: string[]; +} + +export namespace GoogleDriveConfiguration { + export const filterSensitiveLog = (obj: GoogleDriveConfiguration): any => ({ + ...obj, + }); +} + /** *

    User accounts whose documents should be indexed.

    */ export interface OneDriveUsers { /** - *

    A list of users whose documents should be indexed. Specify the user names in email - * format, for example, username@tenantdomain. If you need to index the - * documents of more than 100 users, use the OneDriveUserS3Path field to - * specify the location of a file containing a list of users.

    + *

    A list of users whose documents should be indexed. Specify the + * user names in email format, for example, + * username@tenantdomain. If you need to index the + * documents of more than 100 users, use the + * OneDriveUserS3Path field to specify the location of + * a file containing a list of users.

    */ OneDriveUserList?: string[]; /** - *

    The S3 bucket location of a file containing a list of users whose documents should be - * indexed.

    + *

    The S3 bucket location of a file containing a list of users whose + * documents should be indexed.

    */ OneDriveUserS3Path?: S3Path; } @@ -1232,18 +1399,20 @@ export namespace OneDriveUsers { } /** - *

    Provides configuration information for data sources that connect to OneDrive.

    + *

    Provides configuration information for data sources that connect + * to OneDrive.

    */ export interface OneDriveConfiguration { /** - *

    Tha Azure Active Directory domain of the organization.

    + *

    The Azure Active Directory domain of the organization.

    */ TenantDomain: string | undefined; /** - *

    The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user - * name and password to connect to OneDrive. The user namd should be the application ID for - * the OneDrive application, and the password is the application key for the OneDrive + *

    The Amazon Resource Name (ARN) of an AWS Secrets Manager secret + * that contains the user name and password to connect to OneDrive. The + * user namd should be the application ID for the OneDrive application, + * and the password is the application key for the OneDrive * application.

    */ SecretArn: string | undefined; @@ -1254,26 +1423,29 @@ export interface OneDriveConfiguration { OneDriveUsers: OneDriveUsers | undefined; /** - *

    A list of regular expression patterns. Documents that match the pattern are included - * in the index. Documents that don't match the pattern are excluded from the index. If a - * document matches both an inclusion pattern and an exclusion pattern, the document is not + *

    A list of regular expression patterns. Documents that match the + * pattern are included in the index. Documents that don't match the + * pattern are excluded from the index. If a document matches both an + * inclusion pattern and an exclusion pattern, the document is not * included in the index.

    *

    The exclusion pattern is applied to the file name.

    */ InclusionPatterns?: string[]; /** - *

    List of regular expressions applied to documents. Items that match the exclusion - * pattern are not indexed. If you provide both an inclusion pattern and an exclusion - * pattern, any item that matches the exclusion pattern isn't indexed.

    + *

    List of regular expressions applied to documents. Items that match + * the exclusion pattern are not indexed. If you provide both an + * inclusion pattern and an exclusion pattern, any item that matches + * the exclusion pattern isn't indexed.

    *

    The exclusion pattern is applied to the file name.

    */ ExclusionPatterns?: string[]; /** - *

    A list of DataSourceToIndexFieldMapping objects that map Microsoft - * OneDrive fields to custom fields in the Amazon Kendra index. You must first create the index - * fields before you map OneDrive fields.

    + *

    A list of DataSourceToIndexFieldMapping objects that + * map Microsoft OneDrive fields to custom fields in the Amazon Kendra + * index. You must first create the index fields before you map + * OneDrive fields.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; @@ -1292,15 +1464,17 @@ export namespace OneDriveConfiguration { } /** - *

    Document metadata files that contain information such as the document access control - * information, source URI, document author, and custom attributes. Each metadata file - * contains metadata about a single document.

    + *

    Document metadata files that contain information such as the + * document access control information, source URI, document author, + * and custom attributes. Each metadata file contains metadata about a + * single document.

    */ export interface DocumentsMetadataConfiguration { /** - *

    A prefix used to filter metadata configuration files in the AWS S3 bucket. The S3 - * bucket might contain multiple metadata files. Use S3Prefix to include only - * the desired metadata files.

    + *

    A prefix used to filter metadata configuration files in the AWS S3 + * bucket. The S3 bucket might contain multiple metadata files. Use + * S3Prefix to include only the desired metadata + * files.

    */ S3Prefix?: string; } @@ -1312,8 +1486,8 @@ export namespace DocumentsMetadataConfiguration { } /** - *

    Provides configuration information for a data source to index documents in an Amazon - * S3 bucket.

    + *

    Provides configuration information for a data source to index + * documents in an Amazon S3 bucket.

    */ export interface S3DataSourceConfiguration { /** @@ -1322,38 +1496,42 @@ export interface S3DataSourceConfiguration { BucketName: string | undefined; /** - *

    A list of S3 prefixes for the documents that should be included in the index.

    + *

    A list of S3 prefixes for the documents that should be included in + * the index.

    */ InclusionPrefixes?: string[]; /** - *

    A list of glob patterns for documents that should be indexed. If a document that - * matches an inclusion pattern also matches an exclusion pattern, the document is not - * indexed.

    - *

    For more information about glob patterns, see glob (programming) in - * Wikipedia.

    + *

    A list of glob patterns for documents that should be indexed. If a + * document that matches an inclusion pattern also matches an exclusion + * pattern, the document is not indexed.

    + *

    For more information about glob patterns, see glob + * (programming) in Wikipedia.

    */ InclusionPatterns?: string[]; /** - *

    A list of glob patterns for documents that should not be indexed. If a document that - * matches an inclusion prefix or inclusion pattern also matches an exclusion pattern, the - * document is not indexed.

    - *

    For more information about glob patterns, see glob (programming) in - * Wikipedia.

    + *

    A list of glob patterns for documents that should not be indexed. + * If a document that matches an inclusion prefix or inclusion pattern + * also matches an exclusion pattern, the document is not + * indexed.

    + *

    For more information about glob patterns, see glob + * (programming) in Wikipedia.

    */ ExclusionPatterns?: string[]; /** - *

    Document metadata files that contain information such as the document access control - * information, source URI, document author, and custom attributes. Each metadata file - * contains metadata about a single document.

    + *

    Document metadata files that contain information such as the + * document access control information, source URI, document author, + * and custom attributes. Each metadata file contains metadata about a + * single document.

    */ DocumentsMetadataConfiguration?: DocumentsMetadataConfiguration; /** - *

    Provides the path to the S3 bucket that contains the user context filtering files for - * the data source.

    + *

    Provides the path to the S3 bucket that contains the user context + * filtering files for the data source. For the format of the file, see + * Access control for S3 data sources.

    */ AccessControlListConfiguration?: AccessControlListConfiguration; } @@ -1370,31 +1548,36 @@ export enum SalesforceChatterFeedIncludeFilterType { } /** - *

    Defines configuration for syncing a Salesforce chatter feed. The contents of the - * object comes from the Salesforce FeedItem table.

    + *

    Defines configuration for syncing a Salesforce chatter feed. The + * contents of the object comes from the Salesforce FeedItem + * table.

    */ export interface SalesforceChatterFeedConfiguration { /** - *

    The name of the column in the Salesforce FeedItem table that contains the content to - * index. Typically this is the Body column.

    + *

    The name of the column in the Salesforce FeedItem table that + * contains the content to index. Typically this is the + * Body column.

    */ DocumentDataFieldName: string | undefined; /** - *

    The name of the column in the Salesforce FeedItem table that contains the title of the - * document. This is typically the Title collumn.

    + *

    The name of the column in the Salesforce FeedItem table that + * contains the title of the document. This is typically the + * Title collumn.

    */ DocumentTitleFieldName?: string; /** - *

    Maps fields from a Salesforce chatter feed into Amazon Kendra index fields.

    + *

    Maps fields from a Salesforce chatter feed into Amazon Kendra index + * fields.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; /** - *

    Filters the documents in the feed based on status of the user. When you specify - * ACTIVE_USERS only documents from users who have an active account are - * indexed. When you specify STANDARD_USER only documents for Salesforce + *

    Filters the documents in the feed based on status of the user. + * When you specify ACTIVE_USERS only documents from users + * who have an active account are indexed. When you specify + * STANDARD_USER only documents for Salesforce * standard users are documented. You can specify both.

    */ IncludeFilterTypes?: (SalesforceChatterFeedIncludeFilterType | string)[]; @@ -1407,7 +1590,8 @@ export namespace SalesforceChatterFeedConfiguration { } /** - *

    Provides configuration information for indexing Salesforce custom articles.

    + *

    Provides configuration information for indexing Salesforce custom + * articles.

    */ export interface SalesforceCustomKnowledgeArticleTypeConfiguration { /** @@ -1416,20 +1600,20 @@ export interface SalesforceCustomKnowledgeArticleTypeConfiguration { Name: string | undefined; /** - *

    The name of the field in the custom knowledge article that contains the document data - * to index.

    + *

    The name of the field in the custom knowledge article that + * contains the document data to index.

    */ DocumentDataFieldName: string | undefined; /** - *

    The name of the field in the custom knowledge article that contains the document - * title.

    + *

    The name of the field in the custom knowledge article that + * contains the document title.

    */ DocumentTitleFieldName?: string; /** - *

    One or more objects that map fields in the custom knowledge article to fields in the - * Amazon Kendra index.

    + *

    One or more objects that map fields in the custom knowledge + * article to fields in the Amazon Kendra index.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1447,11 +1631,13 @@ export enum SalesforceKnowledgeArticleState { } /** - *

    Provides configuration information for standard Salesforce knowledge articles.

    + *

    Provides configuration information for standard Salesforce + * knowledge articles.

    */ export interface SalesforceStandardKnowledgeArticleTypeConfiguration { /** - *

    The name of the field that contains the document data to index.

    + *

    The name of the field that contains the document data to + * index.

    */ DocumentDataFieldName: string | undefined; @@ -1461,8 +1647,9 @@ export interface SalesforceStandardKnowledgeArticleTypeConfiguration { DocumentTitleFieldName?: string; /** - *

    One or more objects that map fields in the knowledge article to Amazon Kendra index fields. - * The index field must exist before you can map a Salesforce field to it.

    + *

    One or more objects that map fields in the knowledge article to + * Amazon Kendra index fields. The index field must exist before you can map + * a Salesforce field to it.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1474,25 +1661,28 @@ export namespace SalesforceStandardKnowledgeArticleTypeConfiguration { } /** - *

    Specifies configuration information for the knowlege article types that Amazon Kendra - * indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of - * knowledge articles, or the custom fields of custom knowledge articles, but not both - *

    + *

    Specifies configuration information for the knowlege article types + * that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles + * and the standard fields of knowledge articles, or the custom fields + * of custom knowledge articles, but not both

    */ export interface SalesforceKnowledgeArticleConfiguration { /** - *

    Specifies the document states that should be included when Amazon Kendra indexes knowledge - * articles. You must specify at least one state.

    + *

    Specifies the document states that should be included when + * Amazon Kendra indexes knowledge articles. You must specify at least one + * state.

    */ IncludedStates: (SalesforceKnowledgeArticleState | string)[] | undefined; /** - *

    Provides configuration information for standard Salesforce knowledge articles.

    + *

    Provides configuration information for standard Salesforce + * knowledge articles.

    */ StandardKnowledgeArticleTypeConfiguration?: SalesforceStandardKnowledgeArticleTypeConfiguration; /** - *

    Provides configuration information for custom Salesforce knowledge articles.

    + *

    Provides configuration information for custom Salesforce knowledge + * articles.

    */ CustomKnowledgeArticleTypeConfigurations?: SalesforceCustomKnowledgeArticleTypeConfiguration[]; } @@ -1504,8 +1694,8 @@ export namespace SalesforceKnowledgeArticleConfiguration { } /** - *

    Provides configuration information for processing attachments to Salesforce standard - * objects.

    + *

    Provides configuration information for processing attachments to + * Salesforce standard objects.

    */ export interface SalesforceStandardObjectAttachmentConfiguration { /** @@ -1514,7 +1704,8 @@ export interface SalesforceStandardObjectAttachmentConfiguration { DocumentTitleFieldName?: string; /** - *

    One or more objects that map fields in attachments to Amazon Kendra index fields.

    + *

    One or more objects that map fields in attachments to Amazon Kendra + * index fields.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1546,7 +1737,8 @@ export enum SalesforceStandardObjectName { } /** - *

    Specifies confguration information for indexing a single standard object.

    + *

    Specifies confguration information for indexing a single standard + * object.

    */ export interface SalesforceStandardObjectConfiguration { /** @@ -1555,20 +1747,21 @@ export interface SalesforceStandardObjectConfiguration { Name: SalesforceStandardObjectName | string | undefined; /** - *

    The name of the field in the standard object table that contains the document - * contents.

    + *

    The name of the field in the standard object table that contains + * the document contents.

    */ DocumentDataFieldName: string | undefined; /** - *

    The name of the field in the standard object table that contains the document - * titleB.

    + *

    The name of the field in the standard object table that contains + * the document titleB.

    */ DocumentTitleFieldName?: string; /** - *

    One or more objects that map fields in the standard object to Amazon Kendra index fields. - * The index field must exist before you can map a Salesforce field to it.

    + *

    One or more objects that map fields in the standard object to + * Amazon Kendra index fields. The index field must exist before you can map + * a Salesforce field to it.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1580,89 +1773,97 @@ export namespace SalesforceStandardObjectConfiguration { } /** - *

    Provides configuration information for connecting to a Salesforce data source.

    + *

    Provides configuration information for connecting to a Salesforce + * data source.

    */ export interface SalesforceConfiguration { /** - *

    The instance URL for the Salesforce site that you want to index.

    + *

    The instance URL for the Salesforce site that you want to + * index.

    */ ServerUrl: string | undefined; /** - *

    The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the - * key/value pairs required to connect to your Salesforce instance. The secret must contain - * a JSON structure with the following keys:

    + *

    The Amazon Resource Name (ARN) of an AWS Secrets Manager secret + * that contains the key/value pairs required to connect to your + * Salesforce instance. The secret must contain a JSON structure with + * the following keys:

    *
      *
    • - *

      authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH - * token.

      + *

      authenticationUrl - The OAUTH endpoint that Amazon Kendra + * connects to get an OAUTH token.

      *
    • *
    • - *

      consumerKey - The application public key generated when you created your - * Salesforce application.

      + *

      consumerKey - The application public key generated when + * you created your Salesforce application.

      *
    • *
    • - *

      consumerSecret - The application private key generated when you created your - * Salesforce application.

      + *

      consumerSecret - The application private key generated + * when you created your Salesforce application.

      *
    • *
    • - *

      password - The password associated with the user logging in to the Salesforce - * instance.

      + *

      password - The password associated with the user logging + * in to the Salesforce instance.

      *
    • *
    • - *

      securityToken - The token associated with the user account logging in to the - * Salesforce instance.

      + *

      securityToken - The token associated with the user account + * logging in to the Salesforce instance.

      *
    • *
    • - *

      username - The user name of the user logging in to the Salesforce - * instance.

      + *

      username - The user name of the user logging in to the + * Salesforce instance.

      *
    • *
    */ SecretArn: string | undefined; /** - *

    Specifies the Salesforce standard objects that Amazon Kendra indexes.

    + *

    Specifies the Salesforce standard objects that Amazon Kendra + * indexes.

    */ StandardObjectConfigurations?: SalesforceStandardObjectConfiguration[]; /** - *

    Specifies configuration information for the knowlege article types that Amazon Kendra - * indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of - * knowledge articles, or the custom fields of custom knowledge articles, but not - * both.

    + *

    Specifies configuration information for the knowlege article types + * that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles + * and the standard fields of knowledge articles, or the custom fields + * of custom knowledge articles, but not both.

    */ KnowledgeArticleConfiguration?: SalesforceKnowledgeArticleConfiguration; /** - *

    Specifies configuration information for Salesforce chatter feeds.

    + *

    Specifies configuration information for Salesforce chatter + * feeds.

    */ ChatterFeedConfiguration?: SalesforceChatterFeedConfiguration; /** - *

    Indicates whether Amazon Kendra should index attachments to Salesforce objects.

    + *

    Indicates whether Amazon Kendra should index attachments to Salesforce + * objects.

    */ CrawlAttachments?: boolean; /** - *

    Provides configuration information for processing attachments to Salesforce standard - * objects.

    + *

    Provides configuration information for processing attachments to + * Salesforce standard objects.

    */ StandardObjectAttachmentConfiguration?: SalesforceStandardObjectAttachmentConfiguration; /** - *

    A list of regular expression patterns. Documents that match the patterns are included - * in the index. Documents that don't match the patterns are excluded from the index. If a - * document matches both an inclusion pattern and an exclusion pattern, the document is not + *

    A list of regular expression patterns. Documents that match the + * patterns are included in the index. Documents that don't match the + * patterns are excluded from the index. If a document matches both an + * inclusion pattern and an exclusion pattern, the document is not * included in the index.

    *

    The regex is applied to the name of the attached file.

    */ IncludeAttachmentFilePatterns?: string[]; /** - *

    A list of regular expression patterns. Documents that match the patterns are excluded - * from the index. Documents that don't match the patterns are included in the index. If a - * document matches both an exclusion pattern and an inclusion pattern, the document is not + *

    A list of regular expression patterns. Documents that match the + * patterns are excluded from the index. Documents that don't match the + * patterns are included in the index. If a document matches both an + * exclusion pattern and an inclusion pattern, the document is not * included in the index.

    *

    The regex is applied to the name of the attached file.

    */ @@ -1676,45 +1877,48 @@ export namespace SalesforceConfiguration { } /** - *

    Provides configuration information for crawling knowledge articles in the ServiceNow - * site.

    + *

    Provides configuration information for crawling knowledge articles + * in the ServiceNow site.

    */ export interface ServiceNowKnowledgeArticleConfiguration { /** - *

    Indicates whether Amazon Kendra should index attachments to knowledge articles.

    + *

    Indicates whether Amazon Kendra should index attachments to knowledge + * articles.

    */ CrawlAttachments?: boolean; /** - *

    List of regular expressions applied to knowledge articles. Items that don't match the - * inclusion pattern are not indexed. The regex is applied to the field specified in the + *

    List of regular expressions applied to knowledge articles. Items + * that don't match the inclusion pattern are not indexed. The regex is + * applied to the field specified in the * PatternTargetField.

    */ IncludeAttachmentFilePatterns?: string[]; /** - *

    List of regular expressions applied to knowledge articles. Items that don't match the - * inclusion pattern are not indexed. The regex is applied to the field specified in the + *

    List of regular expressions applied to knowledge articles. Items + * that don't match the inclusion pattern are not indexed. The regex is + * applied to the field specified in the * PatternTargetField *

    */ ExcludeAttachmentFilePatterns?: string[]; /** - *

    The name of the ServiceNow field that is mapped to the index document contents field - * in the Amazon Kendra index.

    + *

    The name of the ServiceNow field that is mapped to the index + * document contents field in the Amazon Kendra index.

    */ DocumentDataFieldName: string | undefined; /** - *

    The name of the ServiceNow field that is mapped to the index document title - * field.

    + *

    The name of the ServiceNow field that is mapped to the index + * document title field.

    */ DocumentTitleFieldName?: string; /** - *

    Mapping between ServiceNow fields and Amazon Kendra index fields. You must create the index - * field before you map the field.

    + *

    Mapping between ServiceNow fields and Amazon Kendra index fields. You + * must create the index field before you map the field.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1726,41 +1930,43 @@ export namespace ServiceNowKnowledgeArticleConfiguration { } /** - *

    Provides configuration information for crawling service catalog items in the - * ServiceNow site

    + *

    Provides configuration information for crawling service catalog + * items in the ServiceNow site

    */ export interface ServiceNowServiceCatalogConfiguration { /** - *

    Indicates whether Amazon Kendra should crawl attachments to the service catalog items. - *

    + *

    Indicates whether Amazon Kendra should crawl attachments to the service + * catalog items.

    */ CrawlAttachments?: boolean; /** - *

    Determines the types of file attachments that are included in the index.

    + *

    Determines the types of file attachments that are included in the + * index.

    */ IncludeAttachmentFilePatterns?: string[]; /** - *

    Determines the types of file attachments that are excluded from the index.

    + *

    Determines the types of file attachments that are excluded from + * the index.

    */ ExcludeAttachmentFilePatterns?: string[]; /** - *

    The name of the ServiceNow field that is mapped to the index document contents field - * in the Amazon Kendra index.

    + *

    The name of the ServiceNow field that is mapped to the index + * document contents field in the Amazon Kendra index.

    */ DocumentDataFieldName: string | undefined; /** - *

    The name of the ServiceNow field that is mapped to the index document title - * field.

    + *

    The name of the ServiceNow field that is mapped to the index + * document title field.

    */ DocumentTitleFieldName?: string; /** - *

    Mapping between ServiceNow fields and Amazon Kendra index fields. You must create the index - * field before you map the field.

    + *

    Mapping between ServiceNow fields and Amazon Kendra index fields. You + * must create the index field before you map the field.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; } @@ -1777,38 +1983,41 @@ export enum ServiceNowBuildVersionType { } /** - *

    Provides configuration information required to connect to a ServiceNow data - * source.

    + *

    Provides configuration information required to connect to a + * ServiceNow data source.

    */ export interface ServiceNowConfiguration { /** - *

    The ServiceNow instance that the data source connects to. The host endpoint should - * look like the following: {instance}.service-now.com. + *

    The ServiceNow instance that the data source connects to. The host + * endpoint should look like the following: + * {instance}.service-now.com. *

    */ HostUrl: string | undefined; /** - *

    The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains the user - * name and password required to connect to the ServiceNow instance.

    + *

    The Amazon Resource Name (ARN) of the AWS Secret Manager secret + * that contains the user name and password required to connect to the + * ServiceNow instance.

    */ SecretArn: string | undefined; /** - *

    The identifier of the release that the ServiceNow host is running. If the host is not - * running the LONDON release, use OTHERS.

    + *

    The identifier of the release that the ServiceNow host is running. + * If the host is not running the LONDON release, use + * OTHERS.

    */ ServiceNowBuildVersion: ServiceNowBuildVersionType | string | undefined; /** - *

    Provides configuration information for crawling knowledge articles in the ServiceNow - * site.

    + *

    Provides configuration information for crawling knowledge articles + * in the ServiceNow site.

    */ KnowledgeArticleConfiguration?: ServiceNowKnowledgeArticleConfiguration; /** - *

    Provides configuration information for crawling service catalogs in the ServiceNow - * site.

    + *

    Provides configuration information for crawling service catalogs + * in the ServiceNow site.

    */ ServiceCatalogConfiguration?: ServiceNowServiceCatalogConfiguration; } @@ -1824,60 +2033,70 @@ export enum SharePointVersion { } /** - *

    Provides configuration information for connecting to a Microsoft SharePoint data - * source.

    + *

    Provides configuration information for connecting to a Microsoft + * SharePoint data source.

    */ export interface SharePointConfiguration { /** - *

    The version of Microsoft SharePoint that you are using as a data source.

    + *

    The version of Microsoft SharePoint that you are using as a data + * source.

    */ SharePointVersion: SharePointVersion | string | undefined; /** - *

    The URLs of the Microsoft SharePoint site that contains the documents that should be - * indexed.

    + *

    The URLs of the Microsoft SharePoint site that contains the + * documents that should be indexed.

    */ Urls: string[] | undefined; /** - *

    The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The - * credentials should be a user/password pair. For more information, see Using a - * Microsoft SharePoint Data Source. For more information about AWS Secrets - * Manager, see What Is AWS Secrets Manager - * in the AWS Secrets Manager user guide.

    + *

    The Amazon Resource Name (ARN) of credentials stored in AWS + * Secrets Manager. The credentials should be a user/password pair. For + * more information, see Using a + * Microsoft SharePoint Data Source. For more information + * about AWS Secrets Manager, see What Is AWS + * Secrets Manager in the AWS Secrets + * Manager user guide.

    */ SecretArn: string | undefined; /** *

    - * TRUE to include attachments to documents stored in your Microsoft - * SharePoint site in the index; otherwise, FALSE.

    + * TRUE to include attachments to documents stored in + * your Microsoft SharePoint site in the index; otherwise, + * FALSE.

    */ CrawlAttachments?: boolean; /** - *

    Set to TRUE to use the Microsoft SharePoint change log to determine the - * documents that need to be updated in the index. Depending on the size of the SharePoint - * change log, it may take longer for Amazon Kendra to use the change log than it takes it - * to determine the changed documents using the Amazon Kendra document crawler.

    + *

    Set to TRUE to use the Microsoft SharePoint change + * log to determine the documents that need to be updated in the index. + * Depending on the size of the SharePoint change log, it may take + * longer for Amazon Kendra to use the change log than it takes it to + * determine the changed documents using the Amazon Kendra document + * crawler.

    */ UseChangeLog?: boolean; /** - *

    A list of regular expression patterns. Documents that match the patterns are included - * in the index. Documents that don't match the patterns are excluded from the index. If a - * document matches both an inclusion pattern and an exclusion pattern, the document is not + *

    A list of regular expression patterns. Documents that match the + * patterns are included in the index. Documents that don't match the + * patterns are excluded from the index. If a document matches both an + * inclusion pattern and an exclusion pattern, the document is not * included in the index.

    - *

    The regex is applied to the display URL of the SharePoint document.

    + *

    The regex is applied to the display URL of the SharePoint + * document.

    */ InclusionPatterns?: string[]; /** - *

    A list of regular expression patterns. Documents that match the patterns are excluded - * from the index. Documents that don't match the patterns are included in the index. If a - * document matches both an exclusion pattern and an inclusion pattern, the document is not + *

    A list of regular expression patterns. Documents that match the + * patterns are excluded from the index. Documents that don't match the + * patterns are included in the index. If a document matches both an + * exclusion pattern and an inclusion pattern, the document is not * included in the index.

    - *

    The regex is applied to the display URL of the SharePoint document.

    + *

    The regex is applied to the display URL of the SharePoint + * document.

    */ ExclusionPatterns?: string[]; @@ -1887,16 +2106,17 @@ export interface SharePointConfiguration { VpcConfiguration?: DataSourceVpcConfiguration; /** - *

    A list of DataSourceToIndexFieldMapping objects that map Microsoft - * SharePoint attributes to custom fields in the Amazon Kendra index. You must first create the - * index fields using the operation before you map - * SharePoint attributes. For more information, see Mapping Data Source Fields.

    + *

    A list of DataSourceToIndexFieldMapping objects that + * map Microsoft SharePoint attributes to custom fields in the Amazon Kendra + * index. You must first create the index fields using the operation before you map SharePoint + * attributes. For more information, see Mapping Data Source + * Fields.

    */ FieldMappings?: DataSourceToIndexFieldMapping[]; /** - *

    The Microsoft SharePoint attribute field that contains the title of the - * document.

    + *

    The Microsoft SharePoint attribute field that contains the title + * of the document.

    */ DocumentTitleFieldName?: string; @@ -1919,36 +2139,37 @@ export namespace SharePointConfiguration { */ export interface DataSourceConfiguration { /** - *

    Provides information to create a data source connector for a document repository in an - * Amazon S3 bucket.

    + *

    Provides information to create a data source connector for a + * document repository in an Amazon S3 bucket.

    */ S3Configuration?: S3DataSourceConfiguration; /** - *

    Provides information necessary to create a data source connector for a Microsoft - * SharePoint site.

    + *

    Provides information necessary to create a data source connector + * for a Microsoft SharePoint site.

    */ SharePointConfiguration?: SharePointConfiguration; /** - *

    Provides information necessary to create a data source connector for a - * database.

    + *

    Provides information necessary to create a data source connector + * for a database.

    */ DatabaseConfiguration?: DatabaseConfiguration; /** - *

    Provides configuration information for data sources that connect to a Salesforce - * site.

    + *

    Provides configuration information for data sources that connect + * to a Salesforce site.

    */ SalesforceConfiguration?: SalesforceConfiguration; /** - *

    Provided configuration for data sources that connect to Microsoft OneDrive.

    + *

    Provides configuration for data sources that connect to Microsoft OneDrive.

    */ OneDriveConfiguration?: OneDriveConfiguration; /** - *

    Provides configuration for data sources that connect to ServiceNow instances.

    + *

    Provides configuration for data sources that connect to ServiceNow + * instances.

    */ ServiceNowConfiguration?: ServiceNowConfiguration; @@ -1957,6 +2178,12 @@ export interface DataSourceConfiguration { * data source.

    */ ConfluenceConfiguration?: ConfluenceConfiguration; + + /** + *

    Provides configuration for data sources that connect to + * Google Drive.

    + */ + GoogleDriveConfiguration?: GoogleDriveConfiguration; } export namespace DataSourceConfiguration { @@ -1994,6 +2221,7 @@ export enum DataSourceType { CONFLUENCE = "CONFLUENCE", CUSTOM = "CUSTOM", DATABASE = "DATABASE", + GOOGLEDRIVE = "GOOGLEDRIVE", ONEDRIVE = "ONEDRIVE", S3 = "S3", SALESFORCE = "SALESFORCE", @@ -2185,13 +2413,14 @@ export enum IndexEdition { } /** - *

    Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt data - * indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.

    + *

    Provides the identifier of the AWS KMS customer master key (CMK) + * used to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support + * asymmetric CMKs.

    */ export interface ServerSideEncryptionConfiguration { /** - *

    The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't support - * asymmetric CMKs.

    + *

    The identifier of the AWS KMS customer master key (CMK). Amazon Kendra + * doesn't support asymmetric CMKs.

    */ KmsKeyId?: string; } @@ -2609,7 +2838,8 @@ export interface DescribeFaqResponse { UpdatedAt?: Date; /** - *

    Information required to find a specific file in an Amazon S3 bucket.

    + *

    Information required to find a specific file in an Amazon S3 + * bucket.

    */ S3Path?: S3Path; @@ -2657,19 +2887,22 @@ export namespace DescribeIndexRequest { } /** - *

    Specifies capacity units configured for your index. You can add and remove capacity - * units to tune an index to your requirements.

    + *

    Specifies capacity units configured for your index. You can add + * and remove capacity units to tune an index to your + * requirements.

    */ export interface CapacityUnitsConfiguration { /** - *

    The amount of extra storage capacity for an index. Each capacity unit provides 150 Gb - * of storage space or 500,000 documents, whichever is reached first.

    + *

    The amount of extra storage capacity for an index. Each capacity + * unit provides 150 Gb of storage space or 500,000 documents, + * whichever is reached first.

    */ StorageCapacityUnits: number | undefined; /** - *

    The amount of extra query capacity for an index. Each capacity unit provides 0.5 - * queries per second and 40,000 queries per day.

    + *

    The amount of extra query capacity for an index. Each capacity + * unit provides 0.5 queries per second and 40,000 queries per + * day.

    */ QueryCapacityUnits: number | undefined; } @@ -2686,56 +2919,66 @@ export enum Order { } /** - *

    Provides information for manually tuning the relevance of a field in a search. When a - * query includes terms that match the field, the results are given a boost in the response - * based on these tuning parameters.

    + *

    Provides information for manually tuning the relevance of a field + * in a search. When a query includes terms that match the field, the + * results are given a boost in the response based on these tuning + * parameters.

    */ export interface Relevance { /** - *

    Indicates that this field determines how "fresh" a document is. For example, if - * document 1 was created on November 5, and document 2 was created on October 31, document - * 1 is "fresher" than document 2. You can only set the Freshness field on one - * DATE type field. Only applies to DATE fields.

    + *

    Indicates that this field determines how "fresh" a document is. + * For example, if document 1 was created on November 5, and document 2 + * was created on October 31, document 1 is "fresher" than document 2. + * You can only set the Freshness field on one + * DATE type field. Only applies to DATE + * fields.

    */ Freshness?: boolean; /** - *

    The relative importance of the field in the search. Larger numbers provide more of a - * boost than smaller numbers.

    + *

    The relative importance of the field in the search. Larger numbers + * provide more of a boost than smaller numbers.

    */ Importance?: number; /** - *

    Specifies the time period that the boost applies to. For example, to make the boost - * apply to documents with the field value within the last month, you would use "2628000s". - * Once the field value is beyond the specified range, the effect of the boost drops off. - * The higher the importance, the faster the effect drops off. If you don't specify a - * value, the default is 3 months. The value of the field is a numeric string followed by - * the character "s", for example "86400s" for one day, or "604800s" for one week.

    + *

    Specifies the time period that the boost applies to. For example, + * to make the boost apply to documents with the field value within the + * last month, you would use "2628000s". Once the field value is beyond + * the specified range, the effect of the boost drops off. The higher + * the importance, the faster the effect drops off. If you don't + * specify a value, the default is 3 months. The value of the field is + * a numeric string followed by the character "s", for example "86400s" + * for one day, or "604800s" for one week.

    *

    Only applies to DATE fields.

    */ Duration?: string; /** *

    Determines how values should be interpreted.

    - *

    When the RankOrder field is ASCENDING, higher numbers are - * better. For example, a document with a rating score of 10 is higher ranking than a - * document with a rating score of 1.

    - *

    When the RankOrder field is DESCENDING, lower numbers are - * better. For example, in a task tracking application, a priority 1 task is more important - * than a priority 5 task.

    - *

    Only applies to LONG and DOUBLE fields.

    + *

    When the RankOrder field is ASCENDING, + * higher numbers are better. For example, a document with a rating + * score of 10 is higher ranking than a document with a rating score of + * 1.

    + *

    When the RankOrder field is DESCENDING, + * lower numbers are better. For example, in a task tracking + * application, a priority 1 task is more important than a priority 5 + * task.

    + *

    Only applies to LONG and DOUBLE + * fields.

    */ RankOrder?: Order | string; /** - *

    A list of values that should be given a different boost when they appear in the result - * list. For example, if you are boosting a field called "department," query terms that - * match the department field are boosted in the result. However, you can add entries from - * the department field to boost documents with those values higher.

    - *

    For example, you can add entries to the map with names of departments. If you add - * "HR",5 and "Legal",3 those departments are given special attention when they appear in - * the metadata of a document. When those terms appear they are given the specified + *

    A list of values that should be given a different boost when they + * appear in the result list. For example, if you are boosting a field + * called "department," query terms that match the department field are + * boosted in the result. However, you can add entries from the + * department field to boost documents with those values higher.

    + *

    For example, you can add entries to the map with names of + * departments. If you add "HR",5 and "Legal",3 those departments are + * given special attention when they appear in the metadata of a + * document. When those terms appear they are given the specified * importance instead of the regular importance for the boost.

    */ ValueImportanceMap?: { [key: string]: number }; @@ -2748,34 +2991,37 @@ export namespace Relevance { } /** - *

    Provides information about how a custom index field is used during a search.

    + *

    Provides information about how a custom index field is used during + * a search.

    */ export interface Search { /** - *

    Indicates that the field can be used to create search facets, a count of results for - * each value in the field. The default is false .

    + *

    Indicates that the field can be used to create search facets, a + * count of results for each value in the field. The default is + * false .

    */ Facetable?: boolean; /** - *

    Determines whether the field is used in the search. If the Searchable - * field is true, you can use relevance tuning to manually tune how Amazon Kendra - * weights the field in the search. The default is true for string fields and + *

    Determines whether the field is used in the search. If the + * Searchable field is true, you can use + * relevance tuning to manually tune how Amazon Kendra weights the field in + * the search. The default is true for string fields and * false for number and date fields.

    */ Searchable?: boolean; /** - *

    Determines whether the field is returned in the query response. The default is - * true.

    + *

    Determines whether the field is returned in the query response. + * The default is true.

    */ Displayable?: boolean; /** - *

    Determines whether the field can be used to sort the results of a query. If you - * specify sorting on a field that does not have Sortable set to - * true, Amazon Kendra returns an exception. The default is - * false.

    + *

    Determines whether the field can be used to sort the results of a + * query. If you specify sorting on a field that does not have + * Sortable set to true, Amazon Kendra returns an + * exception. The default is false.

    */ Sortable?: boolean; } @@ -2808,13 +3054,14 @@ export interface DocumentMetadataConfiguration { Type: DocumentAttributeValueType | string | undefined; /** - *

    Provides manual tuning parameters to determine how the field affects the search - * results.

    + *

    Provides manual tuning parameters to determine how the field + * affects the search results.

    */ Relevance?: Relevance; /** - *

    Provides information about how the field is used during a search.

    + *

    Provides information about how the field is used during a + * search.

    */ Search?: Search; } @@ -2826,12 +3073,13 @@ export namespace DocumentMetadataConfiguration { } /** - *

    Provides statistical information about the FAQ questions and answers contained in an - * index.

    + *

    Provides statistical information about the FAQ questions and + * answers contained in an index.

    */ export interface FaqStatistics { /** - *

    The total number of FAQ questions and answers contained in the index.

    + *

    The total number of FAQ questions and answers contained in the + * index.

    */ IndexedQuestionAnswersCount: number | undefined; } @@ -2843,7 +3091,8 @@ export namespace FaqStatistics { } /** - *

    Provides information about text documents indexed in an index.

    + *

    Provides information about text documents indexed in an + * index.

    */ export interface TextDocumentStatistics { /** @@ -2864,8 +3113,8 @@ export namespace TextDocumentStatistics { } /** - *

    Provides information about the number of documents and the number of questions and - * answers in an index.

    + *

    Provides information about the number of documents and the number + * of questions and answers in an index.

    */ export interface IndexStatistics { /** @@ -3018,7 +3267,8 @@ export namespace ListDataSourcesRequest { } /** - *

    Summary information for a Amazon Kendra data source. Returned in a call to .

    + *

    Summary information for a Amazon Kendra data source. Returned in a call + * to .

    */ export interface DataSourceSummary { /** @@ -3047,8 +3297,8 @@ export interface DataSourceSummary { UpdatedAt?: Date; /** - *

    The status of the data source. When the status is ATIVE the data source - * is ready to use.

    + *

    The status of the data source. When the status is + * ATIVE the data source is ready to use.

    */ Status?: DataSourceStatus | string; } @@ -3152,38 +3402,38 @@ export namespace ListDataSourceSyncJobsRequest { } /** - *

    Maps a batch delete document request to a specific data source sync job. This is - * optional and should only be supplied when documents are deleted by a data source - * connector.

    + *

    Maps a batch delete document request to a specific data source + * sync job. This is optional and should only be supplied when + * documents are deleted by a data source connector.

    */ export interface DataSourceSyncJobMetrics { /** - *

    The number of documents added from the data source up to now in the data source - * sync.

    + *

    The number of documents added from the data source up to now in + * the data source sync.

    */ DocumentsAdded?: string; /** - *

    The number of documents modified in the data source up to now in the data source sync - * run.

    + *

    The number of documents modified in the data source up to now in + * the data source sync run.

    */ DocumentsModified?: string; /** - *

    The number of documents deleted from the data source up to now in the data source sync - * run.

    + *

    The number of documents deleted from the data source up to now in + * the data source sync run.

    */ DocumentsDeleted?: string; /** - *

    The number of documents that failed to sync from the data source up to now in the data - * source sync run.

    + *

    The number of documents that failed to sync from the data source + * up to now in the data source sync run.

    */ DocumentsFailed?: string; /** - *

    The current number of documents crawled by the current sync job in the data - * source.

    + *

    The current number of documents crawled by the current sync job in + * the data source.

    */ DocumentsScanned?: string; } @@ -3209,42 +3459,46 @@ export interface DataSourceSyncJob { StartTime?: Date; /** - *

    The UNIX datetime that the synchronization job was completed.

    + *

    The UNIX datetime that the synchronization job was + * completed.

    */ EndTime?: Date; /** - *

    The execution status of the synchronization job. When the Status field is - * set to SUCCEEDED, the synchronization job is done. If the status code is - * set to FAILED, the ErrorCode and ErrorMessage - * fields give you the reason for the failure.

    + *

    The execution status of the synchronization job. When the + * Status field is set to SUCCEEDED, the + * synchronization job is done. If the status code is set to + * FAILED, the ErrorCode and + * ErrorMessage fields give you the reason for the + * failure.

    */ Status?: DataSourceSyncJobStatus | string; /** *

    If the Status field is set to ERROR, the - * ErrorMessage field contains a description of the error that caused the - * synchronization to fail.

    + * ErrorMessage field contains a description of the + * error that caused the synchronization to fail.

    */ ErrorMessage?: string; /** - *

    If the Status field is set to FAILED, the - * ErrorCode field contains a the reason that the synchronization - * failed.

    + *

    If the Status field is set to FAILED, + * the ErrorCode field contains a the reason that the + * synchronization failed.

    */ ErrorCode?: ErrorCode | string; /** - *

    If the reason that the synchronization failed is due to an error with the underlying - * data source, this field contains a code that identifies the error.

    + *

    If the reason that the synchronization failed is due to an error + * with the underlying data source, this field contains a code that + * identifies the error.

    */ DataSourceErrorCode?: string; /** - *

    Maps a batch delete document request to a specific data source sync job. This is - * optional and should only be supplied when documents are deleted by a data source - * connector.

    + *

    Maps a batch delete document request to a specific data source + * sync job. This is optional and should only be supplied when + * documents are deleted by a data source connector.

    */ Metrics?: DataSourceSyncJobMetrics; } @@ -3303,8 +3557,8 @@ export namespace ListFaqsRequest { } /** - *

    Provides information about a frequently asked questions and answer contained in an - * index.

    + *

    Provides information about a frequently asked questions and answer + * contained in an index.

    */ export interface FaqSummary { /** @@ -3313,13 +3567,14 @@ export interface FaqSummary { Id?: string; /** - *

    The name that you assigned the FAQ when you created or updated the FAQ.

    + *

    The name that you assigned the FAQ when you created or updated the + * FAQ.

    */ Name?: string; /** - *

    The current status of the FAQ. When the status is ACTIVE the FAQ is ready - * for use.

    + *

    The current status of the FAQ. When the status is + * ACTIVE the FAQ is ready for use.

    */ Status?: FaqStatus | string; @@ -3397,15 +3652,16 @@ export interface IndexConfigurationSummary { Name?: string; /** - *

    A unique identifier for the index. Use this to identify the index when you are using - * operations such as Query, DescribeIndex, - * UpdateIndex, and DeleteIndex.

    + *

    A unique identifier for the index. Use this to identify the index + * when you are using operations such as Query, + * DescribeIndex, UpdateIndex, and + * DeleteIndex.

    */ Id?: string; /** - *

    Indicates whether the index is a enterprise edition index or a developer edition - * index.

    + *

    Indicates whether the index is a enterprise edition index or a + * developer edition index.

    */ Edition?: IndexEdition | string; @@ -3415,14 +3671,14 @@ export interface IndexConfigurationSummary { CreatedAt: Date | undefined; /** - *

    The Unix timestamp when the index was last updated by the UpdateIndex - * operation.

    + *

    The Unix timestamp when the index was last updated by the + * UpdateIndex operation.

    */ UpdatedAt: Date | undefined; /** - *

    The current status of the index. When the status is ACTIVE, the index is - * ready to search.

    + *

    The current status of the index. When the status is + * ACTIVE, the index is ready to search.

    */ Status: IndexStatus | string | undefined; } @@ -3522,10 +3778,10 @@ export enum SortOrder { } /** - *

    Specifies the document attribute to use to sort the response to a Amazon Kendra query. You can - * specify a single attribute for sorting. The attribute must have the - * Sortable flag set to true, otherwise Amazon Kendra returns an - * exception.

    + *

    Specifies the document attribute to use to sort the response to a + * Amazon Kendra query. You can specify a single attribute for sorting. The + * attribute must have the Sortable flag set to + * true, otherwise Amazon Kendra returns an exception.

    *

    You can sort attributes of the following types.

    *
      *
    • @@ -3547,9 +3803,11 @@ export enum SortOrder { */ export interface SortingConfiguration { /** - *

      The name of the document attribute used to sort the response. You can use any field - * that has the Sortable flag set to true.

      - *

      You can also sort by any of the following built-in attributes:

      + *

      The name of the document attribute used to sort the response. You + * can use any field that has the Sortable flag set to + * true.

      + *

      You can also sort by any of the following built-in + * attributes:

      *
        *
      • *

        _category

        @@ -3571,8 +3829,9 @@ export interface SortingConfiguration { DocumentAttributeKey: string | undefined; /** - *

        The order that the results should be returned in. In case of ties, the relevance - * assigned to the result by Amazon Kendra is used as the tie-breaker.

        + *

        The order that the results should be returned in. In case of ties, + * the relevance assigned to the result by Amazon Kendra is used as the + * tie-breaker.

        */ SortOrder: SortOrder | string | undefined; } @@ -3600,8 +3859,8 @@ export namespace UserContext { } /** - *

        Provides the count of documents that match a particular attribute when doing a faceted - * search.

        + *

        Provides the count of documents that match a particular attribute + * when doing a faceted search.

        */ export interface DocumentAttributeValueCountPair { /** @@ -3610,8 +3869,8 @@ export interface DocumentAttributeValueCountPair { DocumentAttributeValue?: DocumentAttributeValue; /** - *

        The number of documents in the response that have the attribute value for the - * key.

        + *

        The number of documents in the response that have the attribute + * value for the key.

        */ Count?: number; } @@ -3619,6 +3878,9 @@ export interface DocumentAttributeValueCountPair { export namespace DocumentAttributeValueCountPair { export const filterSensitiveLog = (obj: DocumentAttributeValueCountPair): any => ({ ...obj, + ...(obj.DocumentAttributeValue && { + DocumentAttributeValue: DocumentAttributeValue.filterSensitiveLog(obj.DocumentAttributeValue), + }), }); } @@ -3627,20 +3889,21 @@ export namespace DocumentAttributeValueCountPair { */ export interface FacetResult { /** - *

        The key for the facet values. This is the same as the DocumentAttributeKey - * provided in the query.

        + *

        The key for the facet values. This is the same as the + * DocumentAttributeKey provided in the query.

        */ DocumentAttributeKey?: string; /** - *

        The data type of the facet value. This is the same as the type defined for the index - * field when it was created.

        + *

        The data type of the facet value. This is the same as the type + * defined for the index field when it was created.

        */ DocumentAttributeValueType?: DocumentAttributeValueType | string; /** - *

        An array of key/value pairs, where the key is the value of the attribute and the count - * is the number of documents that share the key value.

        + *

        An array of key/value pairs, where the key is the value of the + * attribute and the count is the number of documents that share the key + * value.

        */ DocumentAttributeValueCountPairs?: DocumentAttributeValueCountPair[]; } @@ -3648,6 +3911,11 @@ export interface FacetResult { export namespace FacetResult { export const filterSensitiveLog = (obj: FacetResult): any => ({ ...obj, + ...(obj.DocumentAttributeValueCountPairs && { + DocumentAttributeValueCountPairs: obj.DocumentAttributeValueCountPairs.map((item) => + DocumentAttributeValueCountPair.filterSensitiveLog(item) + ), + }), }); } @@ -3659,12 +3927,13 @@ export enum ScoreConfidence { } /** - *

        Provides a relative ranking that indicates how confident Amazon Kendra is that the response - * matches the query.

        + *

        Provides a relative ranking that indicates how confident Amazon Kendra is + * that the response matches the query.

        */ export interface ScoreAttributes { /** - *

        A relative ranking for how well the response matches the query.

        + *

        A relative ranking for how well the response matches the + * query.

        */ ScoreConfidence?: ScoreConfidence | string; } @@ -3677,9 +3946,10 @@ export namespace ScoreAttributes { /** *

        A single query result.

        - *

        A query result contains information about a document returned by the query. This - * includes the original location of the document, a list of attributes assigned to the - * document, and relevant text from the document that satisfies the query.

        + *

        A query result contains information about a document returned by the + * query. This includes the original location of the document, a list of + * attributes assigned to the document, and relevant text from the + * document that satisfies the query.

        */ export interface QueryResultItem { /** @@ -3693,7 +3963,8 @@ export interface QueryResultItem { Type?: QueryResultType | string; /** - *

        One or more additional attributes associated with the query result.

        + *

        One or more additional attributes associated with the query + * result.

        */ AdditionalAttributes?: AdditionalResultAttribute[]; @@ -3703,14 +3974,14 @@ export interface QueryResultItem { DocumentId?: string; /** - *

        The title of the document. Contains the text of the title and information for - * highlighting the relevant terms in the title.

        + *

        The title of the document. Contains the text of the title and + * information for highlighting the relevant terms in the title.

        */ DocumentTitle?: TextWithHighlights; /** - *

        An extract of the text in the document. Contains information about highlighting the - * relevant terms in the excerpt.

        + *

        An extract of the text in the document. Contains information about + * highlighting the relevant terms in the excerpt.

        */ DocumentExcerpt?: TextWithHighlights; @@ -3720,27 +3991,40 @@ export interface QueryResultItem { DocumentURI?: string; /** - *

        An array of document attributes for the document that the query result maps to. For - * example, the document author (Author) or the source URI (SourceUri) of the document.

        + *

        An array of document attributes for the document that the query + * result maps to. For example, the document author (Author) or the source + * URI (SourceUri) of the document.

        */ DocumentAttributes?: DocumentAttribute[]; /** - *

        Indicates the confidence that Amazon Kendra has that a result matches the query that you - * provided. Each result is placed into a bin that indicates the confidence, - * VERY_HIGH, HIGH, MEDIUM and LOW. You - * can use the score to determine if a response meets the confidence needed for your + *

        Indicates the confidence that Amazon Kendra has that a result matches the + * query that you provided. Each result is placed into a bin that + * indicates the confidence, VERY_HIGH, HIGH, + * MEDIUM and LOW. You can use the score to + * determine if a response meets the confidence needed for your * application.

        - *

        The field is only set to LOW when the Type field is set to - * DOCUMENT and Amazon Kendra is not confident that the result matches the - * query.

        + *

        The field is only set to LOW when the Type + * field is set to DOCUMENT and Amazon Kendra is not confident that + * the result matches the query.

        */ ScoreAttributes?: ScoreAttributes; + + /** + *

        A token that identifies a particular result from a particular query. + * Use this token to provide click-through feedback for the result. For + * more information, see Submitting feedback + * .

        + */ + FeedbackToken?: string; } export namespace QueryResultItem { export const filterSensitiveLog = (obj: QueryResultItem): any => ({ ...obj, + ...(obj.DocumentAttributes && { + DocumentAttributes: obj.DocumentAttributes.map((item) => DocumentAttribute.filterSensitiveLog(item)), + }), }); } @@ -3841,18 +4125,20 @@ export namespace StopDataSourceSyncJobRequest { } /** - *

        Gathers information about when a particular result was clicked by a user. Your - * application uses the SubmitFeedback operation to provide click - * information.

        + *

        Gathers information about when a particular result was clicked by + * a user. Your application uses the SubmitFeedback + * operation to provide click information.

        */ export interface ClickFeedback { /** - *

        The unique identifier of the search result that was clicked.

        + *

        The unique identifier of the search result that was + * clicked.

        */ ResultId: string | undefined; /** - *

        The Unix timestamp of the date and time that the result was clicked.

        + *

        The Unix timestamp of the date and time that the result was + * clicked.

        */ ClickTime: Date | undefined; } @@ -3869,18 +4155,20 @@ export enum RelevanceType { } /** - *

        Provides feedback on how relevant a document is to a search. Your application uses the - * SubmitFeedback operation to provide relevance information.

        + *

        Provides feedback on how relevant a document is to a search. Your + * application uses the SubmitFeedback operation to + * provide relevance information.

        */ export interface RelevanceFeedback { /** - *

        The unique identifier of the search result that the user provided relevance feedback - * for.

        + *

        The unique identifier of the search result that the user provided + * relevance feedback for.

        */ ResultId: string | undefined; /** - *

        Whether to document was relevant or not relevant to the search.

        + *

        Whether to document was relevant or not relevant to the + * search.

        */ RelevanceValue: RelevanceType | string | undefined; } @@ -4075,9 +4363,11 @@ export namespace UpdateIndexRequest { } /** - *

        Provides filtering the query results based on document attributes.

        - *

        When you use the AndAllFilters or OrAllFilters, filters you - * can use 2 layers under the first attribute filter. For example, you can use:

        + *

        Provides filtering the query results based on document + * attributes.

        + *

        When you use the AndAllFilters or + * OrAllFilters, filters you can use 2 layers under the + * first attribute filter. For example, you can use:

        *

        * *

        @@ -4093,22 +4383,27 @@ export namespace UpdateIndexRequest { *

        *
      • * - *

        If you use more than 2 layers, you receive a ValidationException exception - * with the message "AttributeFilter cannot have a depth of more than 2."

        + *

        If you use more than 2 layers, you receive a + * ValidationException exception with the message + * "AttributeFilter cannot have a depth of more than + * 2."

        */ export interface AttributeFilter { /** - *

        Performs a logical AND operation on all supplied filters.

        + *

        Performs a logical AND operation on all supplied + * filters.

        */ AndAllFilters?: AttributeFilter[]; /** - *

        Performs a logical OR operation on all supplied filters.

        + *

        Performs a logical OR operation on all supplied + * filters.

        */ OrAllFilters?: AttributeFilter[]; /** - *

        Performs a logical NOT operation on all supplied filters.

        + *

        Performs a logical NOT operation on all supplied + * filters.

        */ NotFilter?: AttributeFilter; @@ -4118,38 +4413,44 @@ export interface AttributeFilter { EqualsTo?: DocumentAttribute; /** - *

        Returns true when a document contains all of the specified document attributes. This - * filter is only applicable to StringListValue metadata.

        + *

        Returns true when a document contains all of the specified document + * attributes. This filter is only applicable to + * StringListValue metadata.

        */ ContainsAll?: DocumentAttribute; /** - *

        Returns true when a document contains any of the specified document attributes. This - * filter is only applicable to StringListValue metadata.

        + *

        Returns true when a document contains any of the specified document + * attributes. This filter is only applicable to + * StringListValue metadata.

        */ ContainsAny?: DocumentAttribute; /** - *

        Performs a greater than operation on two document attributes. Use with a document - * attribute of type Integer or Long.

        + *

        Performs a greater than operation on two document attributes. Use + * with a document attribute of type Integer or + * Long.

        */ GreaterThan?: DocumentAttribute; /** - *

        Performs a greater or equals than operation on two document attributes. Use with a - * document attribute of type Integer or Long.

        + *

        Performs a greater or equals than operation on two document + * attributes. Use with a document attribute of type Integer + * or Long.

        */ GreaterThanOrEquals?: DocumentAttribute; /** - *

        Performs a less than operation on two document attributes. Use with a document attribute - * of type Integer or Long.

        + *

        Performs a less than operation on two document attributes. Use with + * a document attribute of type Integer or + * Long.

        */ LessThan?: DocumentAttribute; /** - *

        Performs a less than or equals operation on two document attributes. Use with a document - * attribute of type Integer or Long.

        + *

        Performs a less than or equals operation on two document attributes. + * Use with a document attribute of type Integer or + * Long.

        */ LessThanOrEquals?: DocumentAttribute; } @@ -4157,6 +4458,20 @@ export interface AttributeFilter { export namespace AttributeFilter { export const filterSensitiveLog = (obj: AttributeFilter): any => ({ ...obj, + ...(obj.AndAllFilters && { + AndAllFilters: obj.AndAllFilters.map((item) => AttributeFilter.filterSensitiveLog(item)), + }), + ...(obj.OrAllFilters && { OrAllFilters: obj.OrAllFilters.map((item) => AttributeFilter.filterSensitiveLog(item)) }), + ...(obj.NotFilter && { NotFilter: AttributeFilter.filterSensitiveLog(obj.NotFilter) }), + ...(obj.EqualsTo && { EqualsTo: DocumentAttribute.filterSensitiveLog(obj.EqualsTo) }), + ...(obj.ContainsAll && { ContainsAll: DocumentAttribute.filterSensitiveLog(obj.ContainsAll) }), + ...(obj.ContainsAny && { ContainsAny: DocumentAttribute.filterSensitiveLog(obj.ContainsAny) }), + ...(obj.GreaterThan && { GreaterThan: DocumentAttribute.filterSensitiveLog(obj.GreaterThan) }), + ...(obj.GreaterThanOrEquals && { + GreaterThanOrEquals: DocumentAttribute.filterSensitiveLog(obj.GreaterThanOrEquals), + }), + ...(obj.LessThan && { LessThan: DocumentAttribute.filterSensitiveLog(obj.LessThan) }), + ...(obj.LessThanOrEquals && { LessThanOrEquals: DocumentAttribute.filterSensitiveLog(obj.LessThanOrEquals) }), }); } @@ -4227,10 +4542,19 @@ export interface QueryRequest { *

        The user context token.

        */ UserContext?: UserContext; + + /** + *

        Provides an identifier for a specific user. The VisitorId + * should be a unique identifier, such as a GUID. Don't use personally + * identifiable information, such as the user's email address, as the + * VisitorId.

        + */ + VisitorId?: string; } export namespace QueryRequest { export const filterSensitiveLog = (obj: QueryRequest): any => ({ ...obj, + ...(obj.AttributeFilter && { AttributeFilter: AttributeFilter.filterSensitiveLog(obj.AttributeFilter) }), }); } diff --git a/clients/client-kendra/protocols/Aws_json1_1.ts b/clients/client-kendra/protocols/Aws_json1_1.ts index 99c853def5ad5..ef56eb3e210bd 100644 --- a/clients/client-kendra/protocols/Aws_json1_1.ts +++ b/clients/client-kendra/protocols/Aws_json1_1.ts @@ -97,6 +97,7 @@ import { FacetResult, FaqStatistics, FaqSummary, + GoogleDriveConfiguration, Highlight, IndexConfigurationSummary, IndexStatistics, @@ -3239,6 +3240,9 @@ const serializeAws_json1_1DataSourceConfiguration = (input: DataSourceConfigurat ...(input.DatabaseConfiguration !== undefined && { DatabaseConfiguration: serializeAws_json1_1DatabaseConfiguration(input.DatabaseConfiguration, context), }), + ...(input.GoogleDriveConfiguration !== undefined && { + GoogleDriveConfiguration: serializeAws_json1_1GoogleDriveConfiguration(input.GoogleDriveConfiguration, context), + }), ...(input.OneDriveConfiguration !== undefined && { OneDriveConfiguration: serializeAws_json1_1OneDriveConfiguration(input.OneDriveConfiguration, context), }), @@ -3380,14 +3384,15 @@ const serializeAws_json1_1DocumentAttributeStringListValue = (input: string[], c }; const serializeAws_json1_1DocumentAttributeValue = (input: DocumentAttributeValue, context: __SerdeContext): any => { - return { - ...(input.DateValue !== undefined && { DateValue: Math.round(input.DateValue.getTime() / 1000) }), - ...(input.LongValue !== undefined && { LongValue: input.LongValue }), - ...(input.StringListValue !== undefined && { - StringListValue: serializeAws_json1_1DocumentAttributeStringListValue(input.StringListValue, context), + return DocumentAttributeValue.visit(input, { + DateValue: (value) => ({ DateValue: Math.round(value.getTime() / 1000) }), + LongValue: (value) => ({ LongValue: value }), + StringListValue: (value) => ({ + StringListValue: serializeAws_json1_1DocumentAttributeStringListValue(value, context), }), - ...(input.StringValue !== undefined && { StringValue: input.StringValue }), - }; + StringValue: (value) => ({ StringValue: value }), + _: (name, value) => ({ name: value } as any), + }); }; const serializeAws_json1_1DocumentIdList = (input: string[], context: __SerdeContext): any => { @@ -3426,6 +3431,18 @@ const serializeAws_json1_1DocumentsMetadataConfiguration = ( }; }; +const serializeAws_json1_1ExcludeMimeTypesList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1ExcludeSharedDrivesList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1ExcludeUserAccountsList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1Facet = (input: Facet, context: __SerdeContext): any => { return { ...(input.DocumentAttributeKey !== undefined && { DocumentAttributeKey: input.DocumentAttributeKey }), @@ -3436,6 +3453,33 @@ const serializeAws_json1_1FacetList = (input: Facet[], context: __SerdeContext): return input.map((entry) => serializeAws_json1_1Facet(entry, context)); }; +const serializeAws_json1_1GoogleDriveConfiguration = ( + input: GoogleDriveConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.ExcludeMimeTypes !== undefined && { + ExcludeMimeTypes: serializeAws_json1_1ExcludeMimeTypesList(input.ExcludeMimeTypes, context), + }), + ...(input.ExcludeSharedDrives !== undefined && { + ExcludeSharedDrives: serializeAws_json1_1ExcludeSharedDrivesList(input.ExcludeSharedDrives, context), + }), + ...(input.ExcludeUserAccounts !== undefined && { + ExcludeUserAccounts: serializeAws_json1_1ExcludeUserAccountsList(input.ExcludeUserAccounts, context), + }), + ...(input.ExclusionPatterns !== undefined && { + ExclusionPatterns: serializeAws_json1_1DataSourceInclusionsExclusionsStrings(input.ExclusionPatterns, context), + }), + ...(input.FieldMappings !== undefined && { + FieldMappings: serializeAws_json1_1DataSourceToIndexFieldMappingList(input.FieldMappings, context), + }), + ...(input.InclusionPatterns !== undefined && { + InclusionPatterns: serializeAws_json1_1DataSourceInclusionsExclusionsStrings(input.InclusionPatterns, context), + }), + ...(input.SecretArn !== undefined && { SecretArn: input.SecretArn }), + }; +}; + const serializeAws_json1_1JsonTokenTypeConfiguration = ( input: JsonTokenTypeConfiguration, context: __SerdeContext @@ -3579,6 +3623,7 @@ const serializeAws_json1_1QueryRequest = (input: QueryRequest, context: __SerdeC ...(input.UserContext !== undefined && { UserContext: serializeAws_json1_1UserContext(input.UserContext, context), }), + ...(input.VisitorId !== undefined && { VisitorId: input.VisitorId }), }; }; @@ -4546,6 +4591,10 @@ const deserializeAws_json1_1DataSourceConfiguration = ( output.DatabaseConfiguration !== undefined && output.DatabaseConfiguration !== null ? deserializeAws_json1_1DatabaseConfiguration(output.DatabaseConfiguration, context) : undefined, + GoogleDriveConfiguration: + output.GoogleDriveConfiguration !== undefined && output.GoogleDriveConfiguration !== null + ? deserializeAws_json1_1GoogleDriveConfiguration(output.GoogleDriveConfiguration, context) + : undefined, OneDriveConfiguration: output.OneDriveConfiguration !== undefined && output.OneDriveConfiguration !== null ? deserializeAws_json1_1OneDriveConfiguration(output.OneDriveConfiguration, context) @@ -4803,18 +4852,27 @@ const deserializeAws_json1_1DocumentAttributeStringListValue = (output: any, con }; const deserializeAws_json1_1DocumentAttributeValue = (output: any, context: __SerdeContext): DocumentAttributeValue => { - return { - DateValue: - output.DateValue !== undefined && output.DateValue !== null - ? new Date(Math.round(output.DateValue * 1000)) - : undefined, - LongValue: output.LongValue !== undefined && output.LongValue !== null ? output.LongValue : undefined, - StringListValue: - output.StringListValue !== undefined && output.StringListValue !== null - ? deserializeAws_json1_1DocumentAttributeStringListValue(output.StringListValue, context) - : undefined, - StringValue: output.StringValue !== undefined && output.StringValue !== null ? output.StringValue : undefined, - } as any; + if (output.DateValue !== undefined && output.DateValue !== null) { + return { + DateValue: new Date(Math.round(output.DateValue * 1000)), + }; + } + if (output.LongValue !== undefined && output.LongValue !== null) { + return { + LongValue: output.LongValue, + }; + } + if (output.StringListValue !== undefined && output.StringListValue !== null) { + return { + StringListValue: deserializeAws_json1_1DocumentAttributeStringListValue(output.StringListValue, context), + }; + } + if (output.StringValue !== undefined && output.StringValue !== null) { + return { + StringValue: output.StringValue, + }; + } + return { $unknown: Object.entries(output)[0] }; }; const deserializeAws_json1_1DocumentAttributeValueCountPair = ( @@ -4871,6 +4929,18 @@ const deserializeAws_json1_1DocumentsMetadataConfiguration = ( } as any; }; +const deserializeAws_json1_1ExcludeMimeTypesList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_json1_1ExcludeSharedDrivesList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_json1_1ExcludeUserAccountsList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + const deserializeAws_json1_1FacetResult = (output: any, context: __SerdeContext): FacetResult => { return { DocumentAttributeKey: @@ -4922,6 +4992,39 @@ const deserializeAws_json1_1FaqSummaryItems = (output: any, context: __SerdeCont return (output || []).map((entry: any) => deserializeAws_json1_1FaqSummary(entry, context)); }; +const deserializeAws_json1_1GoogleDriveConfiguration = ( + output: any, + context: __SerdeContext +): GoogleDriveConfiguration => { + return { + ExcludeMimeTypes: + output.ExcludeMimeTypes !== undefined && output.ExcludeMimeTypes !== null + ? deserializeAws_json1_1ExcludeMimeTypesList(output.ExcludeMimeTypes, context) + : undefined, + ExcludeSharedDrives: + output.ExcludeSharedDrives !== undefined && output.ExcludeSharedDrives !== null + ? deserializeAws_json1_1ExcludeSharedDrivesList(output.ExcludeSharedDrives, context) + : undefined, + ExcludeUserAccounts: + output.ExcludeUserAccounts !== undefined && output.ExcludeUserAccounts !== null + ? deserializeAws_json1_1ExcludeUserAccountsList(output.ExcludeUserAccounts, context) + : undefined, + ExclusionPatterns: + output.ExclusionPatterns !== undefined && output.ExclusionPatterns !== null + ? deserializeAws_json1_1DataSourceInclusionsExclusionsStrings(output.ExclusionPatterns, context) + : undefined, + FieldMappings: + output.FieldMappings !== undefined && output.FieldMappings !== null + ? deserializeAws_json1_1DataSourceToIndexFieldMappingList(output.FieldMappings, context) + : undefined, + InclusionPatterns: + output.InclusionPatterns !== undefined && output.InclusionPatterns !== null + ? deserializeAws_json1_1DataSourceInclusionsExclusionsStrings(output.InclusionPatterns, context) + : undefined, + SecretArn: output.SecretArn !== undefined && output.SecretArn !== null ? output.SecretArn : undefined, + } as any; +}; + const deserializeAws_json1_1Highlight = (output: any, context: __SerdeContext): Highlight => { return { BeginOffset: output.BeginOffset !== undefined && output.BeginOffset !== null ? output.BeginOffset : undefined, @@ -5161,6 +5264,8 @@ const deserializeAws_json1_1QueryResultItem = (output: any, context: __SerdeCont ? deserializeAws_json1_1TextWithHighlights(output.DocumentTitle, context) : undefined, DocumentURI: output.DocumentURI !== undefined && output.DocumentURI !== null ? output.DocumentURI : undefined, + FeedbackToken: + output.FeedbackToken !== undefined && output.FeedbackToken !== null ? output.FeedbackToken : undefined, Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined, ScoreAttributes: output.ScoreAttributes !== undefined && output.ScoreAttributes !== null diff --git a/clients/client-lambda/Lambda.ts b/clients/client-lambda/Lambda.ts index 270dc4527d6a3..b6cba4a49d276 100644 --- a/clients/client-lambda/Lambda.ts +++ b/clients/client-lambda/Lambda.ts @@ -489,7 +489,7 @@ export class Lambda extends LambdaClient { /** *

        Creates a Lambda function. To create a function, you need a deployment package and an execution role. The - * deployment package is a ZIP archive or image container that contains your function code. The execution role grants the function permission to use AWS + * deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS * services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

        * *

        When you create a function, Lambda provisions an instance of the function and its supporting resources. If @@ -510,7 +510,7 @@ export class Lambda extends LambdaClient { * to both the unpublished and published versions of the function, and include tags (TagResource) * and per-function concurrency limits (PutFunctionConcurrency).

        * - *

        You can use code signing if your deployment package is a ZIP archive. To enable code signing for this function, + *

        You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, * specify the ARN of a code-signing configuration. When a user * attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code * package has a valid signature from a trusted publisher. The code-signing configuration @@ -2187,6 +2187,10 @@ export class Lambda extends LambdaClient { * *

        The function's code is locked when you publish a version. You can't modify the code of a published version, * only the unpublished version.

        + * + *

        For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if + * you update the image tag to a new image, Lambda does not automatically update the function.

        + *
        */ public updateFunctionCode( args: UpdateFunctionCodeCommandInput, diff --git a/clients/client-lambda/commands/CreateFunctionCommand.ts b/clients/client-lambda/commands/CreateFunctionCommand.ts index 13ea233597cfb..5a3f6398ebc5d 100644 --- a/clients/client-lambda/commands/CreateFunctionCommand.ts +++ b/clients/client-lambda/commands/CreateFunctionCommand.ts @@ -22,7 +22,7 @@ export type CreateFunctionCommandOutput = FunctionConfiguration & __MetadataBear /** *

        Creates a Lambda function. To create a function, you need a deployment package and an execution role. The - * deployment package is a ZIP archive or image container that contains your function code. The execution role grants the function permission to use AWS + * deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS * services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

        * *

        When you create a function, Lambda provisions an instance of the function and its supporting resources. If @@ -43,7 +43,7 @@ export type CreateFunctionCommandOutput = FunctionConfiguration & __MetadataBear * to both the unpublished and published versions of the function, and include tags (TagResource) * and per-function concurrency limits (PutFunctionConcurrency).

        * - *

        You can use code signing if your deployment package is a ZIP archive. To enable code signing for this function, + *

        You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, * specify the ARN of a code-signing configuration. When a user * attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code * package has a valid signature from a trusted publisher. The code-signing configuration diff --git a/clients/client-lambda/commands/UpdateFunctionCodeCommand.ts b/clients/client-lambda/commands/UpdateFunctionCodeCommand.ts index 23655e88db269..bccdb1bca362f 100644 --- a/clients/client-lambda/commands/UpdateFunctionCodeCommand.ts +++ b/clients/client-lambda/commands/UpdateFunctionCodeCommand.ts @@ -26,6 +26,10 @@ export type UpdateFunctionCodeCommandOutput = FunctionConfiguration & __Metadata * *

        The function's code is locked when you publish a version. You can't modify the code of a published version, * only the unpublished version.

        + * + *

        For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if + * you update the image tag to a new image, Lambda does not automatically update the function.

        + *
        */ export class UpdateFunctionCodeCommand extends $Command< UpdateFunctionCodeCommandInput, diff --git a/clients/client-lambda/models/models_0.ts b/clients/client-lambda/models/models_0.ts index e3b0cf88f3d09..0ca8f591486d4 100644 --- a/clients/client-lambda/models/models_0.ts +++ b/clients/client-lambda/models/models_0.ts @@ -1053,7 +1053,7 @@ export namespace CodeVerificationFailedException { } /** - *

        The code for the Lambda function. You can specify either an object in Amazon S3, upload a ZIP archive deployment + *

        The code for the Lambda function. You can specify either an object in Amazon S3, upload a .zip file archive deployment * package directly, or specify the URI of a container image.

        */ export interface FunctionCode { @@ -1307,8 +1307,8 @@ export interface CreateFunctionRequest { Timeout?: number; /** - *

        The amount of memory that your function has access to. Increasing the function's memory also increases its CPU - * allocation. The default value is 128 MB. The value must be a multiple of 64 MB.

        + *

        The amount of memory available to the function at runtime. Increasing the function's memory also increases its CPU + * allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

        */ MemorySize?: number; @@ -1492,6 +1492,7 @@ export enum LastUpdateStatusReasonCode { InsufficientRolePermissions = "InsufficientRolePermissions", InternalError = "InternalError", InvalidConfiguration = "InvalidConfiguration", + InvalidImage = "InvalidImage", InvalidSecurityGroup = "InvalidSecurityGroup", InvalidSubnet = "InvalidSubnet", SubnetOutOfIPAddresses = "SubnetOutOfIPAddresses", @@ -1545,6 +1546,7 @@ export enum StateReasonCode { InsufficientRolePermissions = "InsufficientRolePermissions", InternalError = "InternalError", InvalidConfiguration = "InvalidConfiguration", + InvalidImage = "InvalidImage", InvalidSecurityGroup = "InvalidSecurityGroup", InvalidSubnet = "InvalidSubnet", Restoring = "Restoring", @@ -1638,7 +1640,7 @@ export interface FunctionConfiguration { Timeout?: number; /** - *

        The memory that's allocated to the function.

        + *

        The amount of memory available to the function at runtime.

        */ MemorySize?: number; @@ -1738,7 +1740,7 @@ export interface FunctionConfiguration { FileSystemConfigs?: FileSystemConfig[]; /** - *

        The type of deployment package. Set to Image for container image and set Zip for ZIP archive.

        + *

        The type of deployment package. Set to Image for container image and set Zip for .zip file archive.

        */ PackageType?: PackageType | string; @@ -4963,8 +4965,8 @@ export interface UpdateFunctionConfigurationRequest { Timeout?: number; /** - *

        The amount of memory that your function has access to. Increasing the function's memory also increases its CPU - * allocation. The default value is 128 MB. The value must be a multiple of 64 MB.

        + *

        The amount of memory available to the function at runtime. Increasing the function's memory also increases its CPU + * allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

        */ MemorySize?: number; diff --git a/clients/client-license-manager/LicenseManager.ts b/clients/client-license-manager/LicenseManager.ts index 1ff5dd26ec67f..51aa5b4d518d8 100644 --- a/clients/client-license-manager/LicenseManager.ts +++ b/clients/client-license-manager/LicenseManager.ts @@ -1,19 +1,76 @@ import { LicenseManagerClient } from "./LicenseManagerClient"; +import { AcceptGrantCommand, AcceptGrantCommandInput, AcceptGrantCommandOutput } from "./commands/AcceptGrantCommand"; +import { + CheckInLicenseCommand, + CheckInLicenseCommandInput, + CheckInLicenseCommandOutput, +} from "./commands/CheckInLicenseCommand"; +import { + CheckoutBorrowLicenseCommand, + CheckoutBorrowLicenseCommandInput, + CheckoutBorrowLicenseCommandOutput, +} from "./commands/CheckoutBorrowLicenseCommand"; +import { + CheckoutLicenseCommand, + CheckoutLicenseCommandInput, + CheckoutLicenseCommandOutput, +} from "./commands/CheckoutLicenseCommand"; +import { CreateGrantCommand, CreateGrantCommandInput, CreateGrantCommandOutput } from "./commands/CreateGrantCommand"; +import { + CreateGrantVersionCommand, + CreateGrantVersionCommandInput, + CreateGrantVersionCommandOutput, +} from "./commands/CreateGrantVersionCommand"; +import { + CreateLicenseCommand, + CreateLicenseCommandInput, + CreateLicenseCommandOutput, +} from "./commands/CreateLicenseCommand"; import { CreateLicenseConfigurationCommand, CreateLicenseConfigurationCommandInput, CreateLicenseConfigurationCommandOutput, } from "./commands/CreateLicenseConfigurationCommand"; +import { + CreateLicenseVersionCommand, + CreateLicenseVersionCommandInput, + CreateLicenseVersionCommandOutput, +} from "./commands/CreateLicenseVersionCommand"; +import { CreateTokenCommand, CreateTokenCommandInput, CreateTokenCommandOutput } from "./commands/CreateTokenCommand"; +import { DeleteGrantCommand, DeleteGrantCommandInput, DeleteGrantCommandOutput } from "./commands/DeleteGrantCommand"; +import { + DeleteLicenseCommand, + DeleteLicenseCommandInput, + DeleteLicenseCommandOutput, +} from "./commands/DeleteLicenseCommand"; import { DeleteLicenseConfigurationCommand, DeleteLicenseConfigurationCommandInput, DeleteLicenseConfigurationCommandOutput, } from "./commands/DeleteLicenseConfigurationCommand"; +import { DeleteTokenCommand, DeleteTokenCommandInput, DeleteTokenCommandOutput } from "./commands/DeleteTokenCommand"; +import { + ExtendLicenseConsumptionCommand, + ExtendLicenseConsumptionCommandInput, + ExtendLicenseConsumptionCommandOutput, +} from "./commands/ExtendLicenseConsumptionCommand"; +import { + GetAccessTokenCommand, + GetAccessTokenCommandInput, + GetAccessTokenCommandOutput, +} from "./commands/GetAccessTokenCommand"; +import { GetGrantCommand, GetGrantCommandInput, GetGrantCommandOutput } from "./commands/GetGrantCommand"; +import { GetLicenseCommand, GetLicenseCommandInput, GetLicenseCommandOutput } from "./commands/GetLicenseCommand"; import { GetLicenseConfigurationCommand, GetLicenseConfigurationCommandInput, GetLicenseConfigurationCommandOutput, } from "./commands/GetLicenseConfigurationCommand"; +import { + GetLicenseUsageCommand, + GetLicenseUsageCommandInput, + GetLicenseUsageCommandOutput, +} from "./commands/GetLicenseUsageCommand"; import { GetServiceSettingsCommand, GetServiceSettingsCommandInput, @@ -24,6 +81,11 @@ import { ListAssociationsForLicenseConfigurationCommandInput, ListAssociationsForLicenseConfigurationCommandOutput, } from "./commands/ListAssociationsForLicenseConfigurationCommand"; +import { + ListDistributedGrantsCommand, + ListDistributedGrantsCommandInput, + ListDistributedGrantsCommandOutput, +} from "./commands/ListDistributedGrantsCommand"; import { ListFailuresForLicenseConfigurationOperationsCommand, ListFailuresForLicenseConfigurationOperationsCommandInput, @@ -39,6 +101,26 @@ import { ListLicenseSpecificationsForResourceCommandInput, ListLicenseSpecificationsForResourceCommandOutput, } from "./commands/ListLicenseSpecificationsForResourceCommand"; +import { + ListLicenseVersionsCommand, + ListLicenseVersionsCommandInput, + ListLicenseVersionsCommandOutput, +} from "./commands/ListLicenseVersionsCommand"; +import { + ListLicensesCommand, + ListLicensesCommandInput, + ListLicensesCommandOutput, +} from "./commands/ListLicensesCommand"; +import { + ListReceivedGrantsCommand, + ListReceivedGrantsCommandInput, + ListReceivedGrantsCommandOutput, +} from "./commands/ListReceivedGrantsCommand"; +import { + ListReceivedLicensesCommand, + ListReceivedLicensesCommandInput, + ListReceivedLicensesCommandOutput, +} from "./commands/ListReceivedLicensesCommand"; import { ListResourceInventoryCommand, ListResourceInventoryCommandInput, @@ -49,11 +131,13 @@ import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; +import { ListTokensCommand, ListTokensCommandInput, ListTokensCommandOutput } from "./commands/ListTokensCommand"; import { ListUsageForLicenseConfigurationCommand, ListUsageForLicenseConfigurationCommandInput, ListUsageForLicenseConfigurationCommandOutput, } from "./commands/ListUsageForLicenseConfigurationCommand"; +import { RejectGrantCommand, RejectGrantCommandInput, RejectGrantCommandOutput } from "./commands/RejectGrantCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommand, @@ -83,14 +167,225 @@ import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; * AWS accounts and on-premises servers.

        */ export class LicenseManager extends LicenseManagerClient { + /** + *

        Accepts the specified grant.

        + */ + public acceptGrant(args: AcceptGrantCommandInput, options?: __HttpHandlerOptions): Promise; + public acceptGrant(args: AcceptGrantCommandInput, cb: (err: any, data?: AcceptGrantCommandOutput) => void): void; + public acceptGrant( + args: AcceptGrantCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AcceptGrantCommandOutput) => void + ): void; + public acceptGrant( + args: AcceptGrantCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AcceptGrantCommandOutput) => void), + cb?: (err: any, data?: AcceptGrantCommandOutput) => void + ): Promise | void { + const command = new AcceptGrantCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Checks in the specified license. Check in a license when it is no longer in use.

        + */ + public checkInLicense( + args: CheckInLicenseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public checkInLicense( + args: CheckInLicenseCommandInput, + cb: (err: any, data?: CheckInLicenseCommandOutput) => void + ): void; + public checkInLicense( + args: CheckInLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CheckInLicenseCommandOutput) => void + ): void; + public checkInLicense( + args: CheckInLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CheckInLicenseCommandOutput) => void), + cb?: (err: any, data?: CheckInLicenseCommandOutput) => void + ): Promise | void { + const command = new CheckInLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Checks out the specified license for offline use.

        + */ + public checkoutBorrowLicense( + args: CheckoutBorrowLicenseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public checkoutBorrowLicense( + args: CheckoutBorrowLicenseCommandInput, + cb: (err: any, data?: CheckoutBorrowLicenseCommandOutput) => void + ): void; + public checkoutBorrowLicense( + args: CheckoutBorrowLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CheckoutBorrowLicenseCommandOutput) => void + ): void; + public checkoutBorrowLicense( + args: CheckoutBorrowLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CheckoutBorrowLicenseCommandOutput) => void), + cb?: (err: any, data?: CheckoutBorrowLicenseCommandOutput) => void + ): Promise | void { + const command = new CheckoutBorrowLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Checks out the specified license.

        + */ + public checkoutLicense( + args: CheckoutLicenseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public checkoutLicense( + args: CheckoutLicenseCommandInput, + cb: (err: any, data?: CheckoutLicenseCommandOutput) => void + ): void; + public checkoutLicense( + args: CheckoutLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CheckoutLicenseCommandOutput) => void + ): void; + public checkoutLicense( + args: CheckoutLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CheckoutLicenseCommandOutput) => void), + cb?: (err: any, data?: CheckoutLicenseCommandOutput) => void + ): Promise | void { + const command = new CheckoutLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Creates a grant for the specified license. A grant shares the use of license entitlements with specific AWS accounts.

        + */ + public createGrant(args: CreateGrantCommandInput, options?: __HttpHandlerOptions): Promise; + public createGrant(args: CreateGrantCommandInput, cb: (err: any, data?: CreateGrantCommandOutput) => void): void; + public createGrant( + args: CreateGrantCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateGrantCommandOutput) => void + ): void; + public createGrant( + args: CreateGrantCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateGrantCommandOutput) => void), + cb?: (err: any, data?: CreateGrantCommandOutput) => void + ): Promise | void { + const command = new CreateGrantCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Creates a new version of the specified grant.

        + */ + public createGrantVersion( + args: CreateGrantVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createGrantVersion( + args: CreateGrantVersionCommandInput, + cb: (err: any, data?: CreateGrantVersionCommandOutput) => void + ): void; + public createGrantVersion( + args: CreateGrantVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateGrantVersionCommandOutput) => void + ): void; + public createGrantVersion( + args: CreateGrantVersionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateGrantVersionCommandOutput) => void), + cb?: (err: any, data?: CreateGrantVersionCommandOutput) => void + ): Promise | void { + const command = new CreateGrantVersionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Creates a license.

        + */ + public createLicense( + args: CreateLicenseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createLicense( + args: CreateLicenseCommandInput, + cb: (err: any, data?: CreateLicenseCommandOutput) => void + ): void; + public createLicense( + args: CreateLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateLicenseCommandOutput) => void + ): void; + public createLicense( + args: CreateLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateLicenseCommandOutput) => void), + cb?: (err: any, data?: CreateLicenseCommandOutput) => void + ): Promise | void { + const command = new CreateLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Creates a license configuration.

        *

        A license configuration is an abstraction of a customer license agreement that can be * consumed and enforced by License Manager. Components include specifications for the license * type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, - * Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a - * license must be associated with a host), and the number of licenses purchased and - * used.

        + * Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a + * license must be associated with a host), and the number of licenses purchased and used.

        */ public createLicenseConfiguration( args: CreateLicenseConfigurationCommandInput, @@ -121,6 +416,125 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Creates a new version of the specified license.

        + */ + public createLicenseVersion( + args: CreateLicenseVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createLicenseVersion( + args: CreateLicenseVersionCommandInput, + cb: (err: any, data?: CreateLicenseVersionCommandOutput) => void + ): void; + public createLicenseVersion( + args: CreateLicenseVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateLicenseVersionCommandOutput) => void + ): void; + public createLicenseVersion( + args: CreateLicenseVersionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateLicenseVersionCommandOutput) => void), + cb?: (err: any, data?: CreateLicenseVersionCommandOutput) => void + ): Promise | void { + const command = new CreateLicenseVersionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Creates a long-lived token.

        + *

        A refresh token is a JWT token used to get an access token. With an access token, + * you can call AssumeRoleWithWebIdentity to get role credentials that you can use to + * call License Manager to manage the specified license.

        + */ + public createToken(args: CreateTokenCommandInput, options?: __HttpHandlerOptions): Promise; + public createToken(args: CreateTokenCommandInput, cb: (err: any, data?: CreateTokenCommandOutput) => void): void; + public createToken( + args: CreateTokenCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateTokenCommandOutput) => void + ): void; + public createToken( + args: CreateTokenCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateTokenCommandOutput) => void), + cb?: (err: any, data?: CreateTokenCommandOutput) => void + ): Promise | void { + const command = new CreateTokenCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Deletes the specified grant.

        + */ + public deleteGrant(args: DeleteGrantCommandInput, options?: __HttpHandlerOptions): Promise; + public deleteGrant(args: DeleteGrantCommandInput, cb: (err: any, data?: DeleteGrantCommandOutput) => void): void; + public deleteGrant( + args: DeleteGrantCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteGrantCommandOutput) => void + ): void; + public deleteGrant( + args: DeleteGrantCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteGrantCommandOutput) => void), + cb?: (err: any, data?: DeleteGrantCommandOutput) => void + ): Promise | void { + const command = new DeleteGrantCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Deletes the specified license.

        + */ + public deleteLicense( + args: DeleteLicenseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteLicense( + args: DeleteLicenseCommandInput, + cb: (err: any, data?: DeleteLicenseCommandOutput) => void + ): void; + public deleteLicense( + args: DeleteLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteLicenseCommandOutput) => void + ): void; + public deleteLicense( + args: DeleteLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteLicenseCommandOutput) => void), + cb?: (err: any, data?: DeleteLicenseCommandOutput) => void + ): Promise | void { + const command = new DeleteLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Deletes the specified license configuration.

        *

        You cannot delete a license configuration that is in use.

        @@ -154,6 +568,149 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Deletes the specified token. Must be called in the license home Region.

        + */ + public deleteToken(args: DeleteTokenCommandInput, options?: __HttpHandlerOptions): Promise; + public deleteToken(args: DeleteTokenCommandInput, cb: (err: any, data?: DeleteTokenCommandOutput) => void): void; + public deleteToken( + args: DeleteTokenCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteTokenCommandOutput) => void + ): void; + public deleteToken( + args: DeleteTokenCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteTokenCommandOutput) => void), + cb?: (err: any, data?: DeleteTokenCommandOutput) => void + ): Promise | void { + const command = new DeleteTokenCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Extends the expiration date for license consumption.

        + */ + public extendLicenseConsumption( + args: ExtendLicenseConsumptionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public extendLicenseConsumption( + args: ExtendLicenseConsumptionCommandInput, + cb: (err: any, data?: ExtendLicenseConsumptionCommandOutput) => void + ): void; + public extendLicenseConsumption( + args: ExtendLicenseConsumptionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ExtendLicenseConsumptionCommandOutput) => void + ): void; + public extendLicenseConsumption( + args: ExtendLicenseConsumptionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ExtendLicenseConsumptionCommandOutput) => void), + cb?: (err: any, data?: ExtendLicenseConsumptionCommandOutput) => void + ): Promise | void { + const command = new ExtendLicenseConsumptionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Gets a temporary access token to use with AssumeRoleWithWebIdentity. Access tokens + * are valid for one hour.

        + */ + public getAccessToken( + args: GetAccessTokenCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getAccessToken( + args: GetAccessTokenCommandInput, + cb: (err: any, data?: GetAccessTokenCommandOutput) => void + ): void; + public getAccessToken( + args: GetAccessTokenCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAccessTokenCommandOutput) => void + ): void; + public getAccessToken( + args: GetAccessTokenCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetAccessTokenCommandOutput) => void), + cb?: (err: any, data?: GetAccessTokenCommandOutput) => void + ): Promise | void { + const command = new GetAccessTokenCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Gets detailed information about the specified grant.

        + */ + public getGrant(args: GetGrantCommandInput, options?: __HttpHandlerOptions): Promise; + public getGrant(args: GetGrantCommandInput, cb: (err: any, data?: GetGrantCommandOutput) => void): void; + public getGrant( + args: GetGrantCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetGrantCommandOutput) => void + ): void; + public getGrant( + args: GetGrantCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetGrantCommandOutput) => void), + cb?: (err: any, data?: GetGrantCommandOutput) => void + ): Promise | void { + const command = new GetGrantCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Gets detailed information about the specified license.

        + */ + public getLicense(args: GetLicenseCommandInput, options?: __HttpHandlerOptions): Promise; + public getLicense(args: GetLicenseCommandInput, cb: (err: any, data?: GetLicenseCommandOutput) => void): void; + public getLicense( + args: GetLicenseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetLicenseCommandOutput) => void + ): void; + public getLicense( + args: GetLicenseCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetLicenseCommandOutput) => void), + cb?: (err: any, data?: GetLicenseCommandOutput) => void + ): Promise | void { + const command = new GetLicenseCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Gets detailed information about the specified license configuration.

        */ @@ -186,6 +743,38 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Gets detailed information about the usage of the specified license.

        + */ + public getLicenseUsage( + args: GetLicenseUsageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getLicenseUsage( + args: GetLicenseUsageCommandInput, + cb: (err: any, data?: GetLicenseUsageCommandOutput) => void + ): void; + public getLicenseUsage( + args: GetLicenseUsageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetLicenseUsageCommandOutput) => void + ): void; + public getLicenseUsage( + args: GetLicenseUsageCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetLicenseUsageCommandOutput) => void), + cb?: (err: any, data?: GetLicenseUsageCommandOutput) => void + ): Promise | void { + const command = new GetLicenseUsageCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Gets the License Manager settings for the current Region.

        */ @@ -220,9 +809,9 @@ export class LicenseManager extends LicenseManagerClient { /** *

        Lists the resource associations for the specified license configuration.

        - *

        Resource associations need not consume licenses from a license configuration. For - * example, an AMI or a stopped instance might not consume a license (depending on the license - * rules).

        + *

        Resource associations need not consume licenses from a license configuration. + * For example, an AMI or a stopped instance might not consume a license (depending on + * the license rules).

        */ public listAssociationsForLicenseConfiguration( args: ListAssociationsForLicenseConfigurationCommandInput, @@ -255,6 +844,38 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Lists the grants distributed for the specified license.

        + */ + public listDistributedGrants( + args: ListDistributedGrantsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listDistributedGrants( + args: ListDistributedGrantsCommandInput, + cb: (err: any, data?: ListDistributedGrantsCommandOutput) => void + ): void; + public listDistributedGrants( + args: ListDistributedGrantsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDistributedGrantsCommandOutput) => void + ): void; + public listDistributedGrants( + args: ListDistributedGrantsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDistributedGrantsCommandOutput) => void), + cb?: (err: any, data?: ListDistributedGrantsCommandOutput) => void + ): Promise | void { + const command = new ListDistributedGrantsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Lists the license configuration operations that failed.

        */ @@ -321,6 +942,35 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Lists the licenses for your account.

        + */ + public listLicenses( + args: ListLicensesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listLicenses(args: ListLicensesCommandInput, cb: (err: any, data?: ListLicensesCommandOutput) => void): void; + public listLicenses( + args: ListLicensesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListLicensesCommandOutput) => void + ): void; + public listLicenses( + args: ListLicensesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListLicensesCommandOutput) => void), + cb?: (err: any, data?: ListLicensesCommandOutput) => void + ): Promise | void { + const command = new ListLicensesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Describes the license configurations for the specified resource.

        */ @@ -353,6 +1003,102 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Lists all versions of the specified license.

        + */ + public listLicenseVersions( + args: ListLicenseVersionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listLicenseVersions( + args: ListLicenseVersionsCommandInput, + cb: (err: any, data?: ListLicenseVersionsCommandOutput) => void + ): void; + public listLicenseVersions( + args: ListLicenseVersionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListLicenseVersionsCommandOutput) => void + ): void; + public listLicenseVersions( + args: ListLicenseVersionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListLicenseVersionsCommandOutput) => void), + cb?: (err: any, data?: ListLicenseVersionsCommandOutput) => void + ): Promise | void { + const command = new ListLicenseVersionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Lists grants that are received but not accepted.

        + */ + public listReceivedGrants( + args: ListReceivedGrantsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listReceivedGrants( + args: ListReceivedGrantsCommandInput, + cb: (err: any, data?: ListReceivedGrantsCommandOutput) => void + ): void; + public listReceivedGrants( + args: ListReceivedGrantsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListReceivedGrantsCommandOutput) => void + ): void; + public listReceivedGrants( + args: ListReceivedGrantsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListReceivedGrantsCommandOutput) => void), + cb?: (err: any, data?: ListReceivedGrantsCommandOutput) => void + ): Promise | void { + const command = new ListReceivedGrantsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

        Lists received licenses.

        + */ + public listReceivedLicenses( + args: ListReceivedLicensesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listReceivedLicenses( + args: ListReceivedLicensesCommandInput, + cb: (err: any, data?: ListReceivedLicensesCommandOutput) => void + ): void; + public listReceivedLicenses( + args: ListReceivedLicensesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListReceivedLicensesCommandOutput) => void + ): void; + public listReceivedLicenses( + args: ListReceivedLicensesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListReceivedLicensesCommandOutput) => void), + cb?: (err: any, data?: ListReceivedLicensesCommandOutput) => void + ): Promise | void { + const command = new ListReceivedLicensesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Lists resources managed using Systems Manager inventory.

        */ @@ -417,6 +1163,32 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Lists your tokens.

        + */ + public listTokens(args: ListTokensCommandInput, options?: __HttpHandlerOptions): Promise; + public listTokens(args: ListTokensCommandInput, cb: (err: any, data?: ListTokensCommandOutput) => void): void; + public listTokens( + args: ListTokensCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTokensCommandOutput) => void + ): void; + public listTokens( + args: ListTokensCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTokensCommandOutput) => void), + cb?: (err: any, data?: ListTokensCommandOutput) => void + ): Promise | void { + const command = new ListTokensCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Lists all license usage records for a license configuration, displaying license * consumption details by resource at a selected point in time. Use this action to audit the @@ -451,6 +1223,32 @@ export class LicenseManager extends LicenseManagerClient { } } + /** + *

        Rejects the specified grant.

        + */ + public rejectGrant(args: RejectGrantCommandInput, options?: __HttpHandlerOptions): Promise; + public rejectGrant(args: RejectGrantCommandInput, cb: (err: any, data?: RejectGrantCommandOutput) => void): void; + public rejectGrant( + args: RejectGrantCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RejectGrantCommandOutput) => void + ): void; + public rejectGrant( + args: RejectGrantCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RejectGrantCommandOutput) => void), + cb?: (err: any, data?: RejectGrantCommandOutput) => void + ): Promise | void { + const command = new RejectGrantCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Adds the specified tags to the specified license configuration.

        */ @@ -542,11 +1340,10 @@ export class LicenseManager extends LicenseManagerClient { } /** - *

        Adds or removes the specified license configurations for the specified AWS - * resource.

        - *

        You can update the license specifications of AMIs, instances, and hosts. You cannot - * update the license specifications for launch templates and AWS CloudFormation templates, as - * they send license configurations to the operation that creates the resource.

        + *

        Adds or removes the specified license configurations for the specified AWS resource.

        + *

        You can update the license specifications of AMIs, instances, and hosts. + * You cannot update the license specifications for launch templates and AWS CloudFormation templates, + * as they send license configurations to the operation that creates the resource.

        */ public updateLicenseSpecificationsForResource( args: UpdateLicenseSpecificationsForResourceCommandInput, diff --git a/clients/client-license-manager/LicenseManagerClient.ts b/clients/client-license-manager/LicenseManagerClient.ts index 7a331934e9ca0..08a0dcbecb4ba 100644 --- a/clients/client-license-manager/LicenseManagerClient.ts +++ b/clients/client-license-manager/LicenseManagerClient.ts @@ -1,20 +1,50 @@ +import { AcceptGrantCommandInput, AcceptGrantCommandOutput } from "./commands/AcceptGrantCommand"; +import { CheckInLicenseCommandInput, CheckInLicenseCommandOutput } from "./commands/CheckInLicenseCommand"; +import { + CheckoutBorrowLicenseCommandInput, + CheckoutBorrowLicenseCommandOutput, +} from "./commands/CheckoutBorrowLicenseCommand"; +import { CheckoutLicenseCommandInput, CheckoutLicenseCommandOutput } from "./commands/CheckoutLicenseCommand"; +import { CreateGrantCommandInput, CreateGrantCommandOutput } from "./commands/CreateGrantCommand"; +import { CreateGrantVersionCommandInput, CreateGrantVersionCommandOutput } from "./commands/CreateGrantVersionCommand"; +import { CreateLicenseCommandInput, CreateLicenseCommandOutput } from "./commands/CreateLicenseCommand"; import { CreateLicenseConfigurationCommandInput, CreateLicenseConfigurationCommandOutput, } from "./commands/CreateLicenseConfigurationCommand"; +import { + CreateLicenseVersionCommandInput, + CreateLicenseVersionCommandOutput, +} from "./commands/CreateLicenseVersionCommand"; +import { CreateTokenCommandInput, CreateTokenCommandOutput } from "./commands/CreateTokenCommand"; +import { DeleteGrantCommandInput, DeleteGrantCommandOutput } from "./commands/DeleteGrantCommand"; +import { DeleteLicenseCommandInput, DeleteLicenseCommandOutput } from "./commands/DeleteLicenseCommand"; import { DeleteLicenseConfigurationCommandInput, DeleteLicenseConfigurationCommandOutput, } from "./commands/DeleteLicenseConfigurationCommand"; +import { DeleteTokenCommandInput, DeleteTokenCommandOutput } from "./commands/DeleteTokenCommand"; +import { + ExtendLicenseConsumptionCommandInput, + ExtendLicenseConsumptionCommandOutput, +} from "./commands/ExtendLicenseConsumptionCommand"; +import { GetAccessTokenCommandInput, GetAccessTokenCommandOutput } from "./commands/GetAccessTokenCommand"; +import { GetGrantCommandInput, GetGrantCommandOutput } from "./commands/GetGrantCommand"; +import { GetLicenseCommandInput, GetLicenseCommandOutput } from "./commands/GetLicenseCommand"; import { GetLicenseConfigurationCommandInput, GetLicenseConfigurationCommandOutput, } from "./commands/GetLicenseConfigurationCommand"; +import { GetLicenseUsageCommandInput, GetLicenseUsageCommandOutput } from "./commands/GetLicenseUsageCommand"; import { GetServiceSettingsCommandInput, GetServiceSettingsCommandOutput } from "./commands/GetServiceSettingsCommand"; import { ListAssociationsForLicenseConfigurationCommandInput, ListAssociationsForLicenseConfigurationCommandOutput, } from "./commands/ListAssociationsForLicenseConfigurationCommand"; +import { + ListDistributedGrantsCommandInput, + ListDistributedGrantsCommandOutput, +} from "./commands/ListDistributedGrantsCommand"; import { ListFailuresForLicenseConfigurationOperationsCommandInput, ListFailuresForLicenseConfigurationOperationsCommandOutput, @@ -27,6 +57,16 @@ import { ListLicenseSpecificationsForResourceCommandInput, ListLicenseSpecificationsForResourceCommandOutput, } from "./commands/ListLicenseSpecificationsForResourceCommand"; +import { + ListLicenseVersionsCommandInput, + ListLicenseVersionsCommandOutput, +} from "./commands/ListLicenseVersionsCommand"; +import { ListLicensesCommandInput, ListLicensesCommandOutput } from "./commands/ListLicensesCommand"; +import { ListReceivedGrantsCommandInput, ListReceivedGrantsCommandOutput } from "./commands/ListReceivedGrantsCommand"; +import { + ListReceivedLicensesCommandInput, + ListReceivedLicensesCommandOutput, +} from "./commands/ListReceivedLicensesCommand"; import { ListResourceInventoryCommandInput, ListResourceInventoryCommandOutput, @@ -35,10 +75,12 @@ import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; +import { ListTokensCommandInput, ListTokensCommandOutput } from "./commands/ListTokensCommand"; import { ListUsageForLicenseConfigurationCommandInput, ListUsageForLicenseConfigurationCommandOutput, } from "./commands/ListUsageForLicenseConfigurationCommand"; +import { RejectGrantCommandInput, RejectGrantCommandOutput } from "./commands/RejectGrantCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { @@ -103,17 +145,41 @@ import { } from "@aws-sdk/types"; export type ServiceInputTypes = + | AcceptGrantCommandInput + | CheckInLicenseCommandInput + | CheckoutBorrowLicenseCommandInput + | CheckoutLicenseCommandInput + | CreateGrantCommandInput + | CreateGrantVersionCommandInput + | CreateLicenseCommandInput | CreateLicenseConfigurationCommandInput + | CreateLicenseVersionCommandInput + | CreateTokenCommandInput + | DeleteGrantCommandInput + | DeleteLicenseCommandInput | DeleteLicenseConfigurationCommandInput + | DeleteTokenCommandInput + | ExtendLicenseConsumptionCommandInput + | GetAccessTokenCommandInput + | GetGrantCommandInput + | GetLicenseCommandInput | GetLicenseConfigurationCommandInput + | GetLicenseUsageCommandInput | GetServiceSettingsCommandInput | ListAssociationsForLicenseConfigurationCommandInput + | ListDistributedGrantsCommandInput | ListFailuresForLicenseConfigurationOperationsCommandInput | ListLicenseConfigurationsCommandInput | ListLicenseSpecificationsForResourceCommandInput + | ListLicenseVersionsCommandInput + | ListLicensesCommandInput + | ListReceivedGrantsCommandInput + | ListReceivedLicensesCommandInput | ListResourceInventoryCommandInput | ListTagsForResourceCommandInput + | ListTokensCommandInput | ListUsageForLicenseConfigurationCommandInput + | RejectGrantCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateLicenseConfigurationCommandInput @@ -121,17 +187,41 @@ export type ServiceInputTypes = | UpdateServiceSettingsCommandInput; export type ServiceOutputTypes = + | AcceptGrantCommandOutput + | CheckInLicenseCommandOutput + | CheckoutBorrowLicenseCommandOutput + | CheckoutLicenseCommandOutput + | CreateGrantCommandOutput + | CreateGrantVersionCommandOutput + | CreateLicenseCommandOutput | CreateLicenseConfigurationCommandOutput + | CreateLicenseVersionCommandOutput + | CreateTokenCommandOutput + | DeleteGrantCommandOutput + | DeleteLicenseCommandOutput | DeleteLicenseConfigurationCommandOutput + | DeleteTokenCommandOutput + | ExtendLicenseConsumptionCommandOutput + | GetAccessTokenCommandOutput + | GetGrantCommandOutput + | GetLicenseCommandOutput | GetLicenseConfigurationCommandOutput + | GetLicenseUsageCommandOutput | GetServiceSettingsCommandOutput | ListAssociationsForLicenseConfigurationCommandOutput + | ListDistributedGrantsCommandOutput | ListFailuresForLicenseConfigurationOperationsCommandOutput | ListLicenseConfigurationsCommandOutput | ListLicenseSpecificationsForResourceCommandOutput + | ListLicenseVersionsCommandOutput + | ListLicensesCommandOutput + | ListReceivedGrantsCommandOutput + | ListReceivedLicensesCommandOutput | ListResourceInventoryCommandOutput | ListTagsForResourceCommandOutput + | ListTokensCommandOutput | ListUsageForLicenseConfigurationCommandOutput + | RejectGrantCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateLicenseConfigurationCommandOutput diff --git a/clients/client-license-manager/commands/AcceptGrantCommand.ts b/clients/client-license-manager/commands/AcceptGrantCommand.ts new file mode 100644 index 0000000000000..39d758865d6b1 --- /dev/null +++ b/clients/client-license-manager/commands/AcceptGrantCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { AcceptGrantRequest, AcceptGrantResponse } from "../models/models_0"; +import { + deserializeAws_json1_1AcceptGrantCommand, + serializeAws_json1_1AcceptGrantCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type AcceptGrantCommandInput = AcceptGrantRequest; +export type AcceptGrantCommandOutput = AcceptGrantResponse & __MetadataBearer; + +/** + *

        Accepts the specified grant.

        + */ +export class AcceptGrantCommand extends $Command< + AcceptGrantCommandInput, + AcceptGrantCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AcceptGrantCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "AcceptGrantCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AcceptGrantRequest.filterSensitiveLog, + outputFilterSensitiveLog: AcceptGrantResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AcceptGrantCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1AcceptGrantCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1AcceptGrantCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CheckInLicenseCommand.ts b/clients/client-license-manager/commands/CheckInLicenseCommand.ts new file mode 100644 index 0000000000000..04bd9f415aee2 --- /dev/null +++ b/clients/client-license-manager/commands/CheckInLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CheckInLicenseRequest, CheckInLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CheckInLicenseCommand, + serializeAws_json1_1CheckInLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CheckInLicenseCommandInput = CheckInLicenseRequest; +export type CheckInLicenseCommandOutput = CheckInLicenseResponse & __MetadataBearer; + +/** + *

        Checks in the specified license. Check in a license when it is no longer in use.

        + */ +export class CheckInLicenseCommand extends $Command< + CheckInLicenseCommandInput, + CheckInLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CheckInLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CheckInLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CheckInLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: CheckInLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CheckInLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CheckInLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CheckInLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CheckoutBorrowLicenseCommand.ts b/clients/client-license-manager/commands/CheckoutBorrowLicenseCommand.ts new file mode 100644 index 0000000000000..18ae7f7ff03d0 --- /dev/null +++ b/clients/client-license-manager/commands/CheckoutBorrowLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CheckoutBorrowLicenseRequest, CheckoutBorrowLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CheckoutBorrowLicenseCommand, + serializeAws_json1_1CheckoutBorrowLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CheckoutBorrowLicenseCommandInput = CheckoutBorrowLicenseRequest; +export type CheckoutBorrowLicenseCommandOutput = CheckoutBorrowLicenseResponse & __MetadataBearer; + +/** + *

        Checks out the specified license for offline use.

        + */ +export class CheckoutBorrowLicenseCommand extends $Command< + CheckoutBorrowLicenseCommandInput, + CheckoutBorrowLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CheckoutBorrowLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CheckoutBorrowLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CheckoutBorrowLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: CheckoutBorrowLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CheckoutBorrowLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CheckoutBorrowLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CheckoutBorrowLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CheckoutLicenseCommand.ts b/clients/client-license-manager/commands/CheckoutLicenseCommand.ts new file mode 100644 index 0000000000000..7fc5e83338250 --- /dev/null +++ b/clients/client-license-manager/commands/CheckoutLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CheckoutLicenseRequest, CheckoutLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CheckoutLicenseCommand, + serializeAws_json1_1CheckoutLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CheckoutLicenseCommandInput = CheckoutLicenseRequest; +export type CheckoutLicenseCommandOutput = CheckoutLicenseResponse & __MetadataBearer; + +/** + *

        Checks out the specified license.

        + */ +export class CheckoutLicenseCommand extends $Command< + CheckoutLicenseCommandInput, + CheckoutLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CheckoutLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CheckoutLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CheckoutLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: CheckoutLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CheckoutLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CheckoutLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CheckoutLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CreateGrantCommand.ts b/clients/client-license-manager/commands/CreateGrantCommand.ts new file mode 100644 index 0000000000000..ce0ba9b8a5935 --- /dev/null +++ b/clients/client-license-manager/commands/CreateGrantCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CreateGrantRequest, CreateGrantResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateGrantCommand, + serializeAws_json1_1CreateGrantCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateGrantCommandInput = CreateGrantRequest; +export type CreateGrantCommandOutput = CreateGrantResponse & __MetadataBearer; + +/** + *

        Creates a grant for the specified license. A grant shares the use of license entitlements with specific AWS accounts.

        + */ +export class CreateGrantCommand extends $Command< + CreateGrantCommandInput, + CreateGrantCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateGrantCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CreateGrantCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateGrantRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateGrantResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateGrantCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateGrantCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateGrantCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CreateGrantVersionCommand.ts b/clients/client-license-manager/commands/CreateGrantVersionCommand.ts new file mode 100644 index 0000000000000..6e20580a94492 --- /dev/null +++ b/clients/client-license-manager/commands/CreateGrantVersionCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CreateGrantVersionRequest, CreateGrantVersionResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateGrantVersionCommand, + serializeAws_json1_1CreateGrantVersionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateGrantVersionCommandInput = CreateGrantVersionRequest; +export type CreateGrantVersionCommandOutput = CreateGrantVersionResponse & __MetadataBearer; + +/** + *

        Creates a new version of the specified grant.

        + */ +export class CreateGrantVersionCommand extends $Command< + CreateGrantVersionCommandInput, + CreateGrantVersionCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateGrantVersionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CreateGrantVersionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateGrantVersionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateGrantVersionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateGrantVersionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateGrantVersionCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateGrantVersionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CreateLicenseCommand.ts b/clients/client-license-manager/commands/CreateLicenseCommand.ts new file mode 100644 index 0000000000000..0ae1bfa9bff37 --- /dev/null +++ b/clients/client-license-manager/commands/CreateLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CreateLicenseRequest, CreateLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateLicenseCommand, + serializeAws_json1_1CreateLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateLicenseCommandInput = CreateLicenseRequest; +export type CreateLicenseCommandOutput = CreateLicenseResponse & __MetadataBearer; + +/** + *

        Creates a license.

        + */ +export class CreateLicenseCommand extends $Command< + CreateLicenseCommandInput, + CreateLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CreateLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CreateLicenseConfigurationCommand.ts b/clients/client-license-manager/commands/CreateLicenseConfigurationCommand.ts index bdeaf37816323..d2276b1d7193f 100644 --- a/clients/client-license-manager/commands/CreateLicenseConfigurationCommand.ts +++ b/clients/client-license-manager/commands/CreateLicenseConfigurationCommand.ts @@ -25,9 +25,8 @@ export type CreateLicenseConfigurationCommandOutput = CreateLicenseConfiguration *

        A license configuration is an abstraction of a customer license agreement that can be * consumed and enforced by License Manager. Components include specifications for the license * type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, - * Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a - * license must be associated with a host), and the number of licenses purchased and - * used.

        + * Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a + * license must be associated with a host), and the number of licenses purchased and used.

        */ export class CreateLicenseConfigurationCommand extends $Command< CreateLicenseConfigurationCommandInput, diff --git a/clients/client-license-manager/commands/CreateLicenseVersionCommand.ts b/clients/client-license-manager/commands/CreateLicenseVersionCommand.ts new file mode 100644 index 0000000000000..bc7adbb044360 --- /dev/null +++ b/clients/client-license-manager/commands/CreateLicenseVersionCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CreateLicenseVersionRequest, CreateLicenseVersionResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateLicenseVersionCommand, + serializeAws_json1_1CreateLicenseVersionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateLicenseVersionCommandInput = CreateLicenseVersionRequest; +export type CreateLicenseVersionCommandOutput = CreateLicenseVersionResponse & __MetadataBearer; + +/** + *

        Creates a new version of the specified license.

        + */ +export class CreateLicenseVersionCommand extends $Command< + CreateLicenseVersionCommandInput, + CreateLicenseVersionCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateLicenseVersionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CreateLicenseVersionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateLicenseVersionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateLicenseVersionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateLicenseVersionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateLicenseVersionCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateLicenseVersionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/CreateTokenCommand.ts b/clients/client-license-manager/commands/CreateTokenCommand.ts new file mode 100644 index 0000000000000..0d8a09312d228 --- /dev/null +++ b/clients/client-license-manager/commands/CreateTokenCommand.ts @@ -0,0 +1,91 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { CreateTokenRequest, CreateTokenResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateTokenCommand, + serializeAws_json1_1CreateTokenCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateTokenCommandInput = CreateTokenRequest; +export type CreateTokenCommandOutput = CreateTokenResponse & __MetadataBearer; + +/** + *

        Creates a long-lived token.

        + *

        A refresh token is a JWT token used to get an access token. With an access token, + * you can call AssumeRoleWithWebIdentity to get role credentials that you can use to + * call License Manager to manage the specified license.

        + */ +export class CreateTokenCommand extends $Command< + CreateTokenCommandInput, + CreateTokenCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateTokenCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "CreateTokenCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateTokenRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateTokenResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateTokenCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateTokenCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateTokenCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/DeleteGrantCommand.ts b/clients/client-license-manager/commands/DeleteGrantCommand.ts new file mode 100644 index 0000000000000..ecce80064c0ae --- /dev/null +++ b/clients/client-license-manager/commands/DeleteGrantCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { DeleteGrantRequest, DeleteGrantResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteGrantCommand, + serializeAws_json1_1DeleteGrantCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteGrantCommandInput = DeleteGrantRequest; +export type DeleteGrantCommandOutput = DeleteGrantResponse & __MetadataBearer; + +/** + *

        Deletes the specified grant.

        + */ +export class DeleteGrantCommand extends $Command< + DeleteGrantCommandInput, + DeleteGrantCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteGrantCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "DeleteGrantCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteGrantRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteGrantResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteGrantCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteGrantCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteGrantCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/DeleteLicenseCommand.ts b/clients/client-license-manager/commands/DeleteLicenseCommand.ts new file mode 100644 index 0000000000000..e0b7054677abb --- /dev/null +++ b/clients/client-license-manager/commands/DeleteLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { DeleteLicenseRequest, DeleteLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteLicenseCommand, + serializeAws_json1_1DeleteLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteLicenseCommandInput = DeleteLicenseRequest; +export type DeleteLicenseCommandOutput = DeleteLicenseResponse & __MetadataBearer; + +/** + *

        Deletes the specified license.

        + */ +export class DeleteLicenseCommand extends $Command< + DeleteLicenseCommandInput, + DeleteLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "DeleteLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/DeleteTokenCommand.ts b/clients/client-license-manager/commands/DeleteTokenCommand.ts new file mode 100644 index 0000000000000..dafc54774ef18 --- /dev/null +++ b/clients/client-license-manager/commands/DeleteTokenCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { DeleteTokenRequest, DeleteTokenResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteTokenCommand, + serializeAws_json1_1DeleteTokenCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteTokenCommandInput = DeleteTokenRequest; +export type DeleteTokenCommandOutput = DeleteTokenResponse & __MetadataBearer; + +/** + *

        Deletes the specified token. Must be called in the license home Region.

        + */ +export class DeleteTokenCommand extends $Command< + DeleteTokenCommandInput, + DeleteTokenCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteTokenCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "DeleteTokenCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteTokenRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteTokenResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteTokenCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteTokenCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteTokenCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ExtendLicenseConsumptionCommand.ts b/clients/client-license-manager/commands/ExtendLicenseConsumptionCommand.ts new file mode 100644 index 0000000000000..5f6fc8c64e621 --- /dev/null +++ b/clients/client-license-manager/commands/ExtendLicenseConsumptionCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ExtendLicenseConsumptionRequest, ExtendLicenseConsumptionResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ExtendLicenseConsumptionCommand, + serializeAws_json1_1ExtendLicenseConsumptionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ExtendLicenseConsumptionCommandInput = ExtendLicenseConsumptionRequest; +export type ExtendLicenseConsumptionCommandOutput = ExtendLicenseConsumptionResponse & __MetadataBearer; + +/** + *

        Extends the expiration date for license consumption.

        + */ +export class ExtendLicenseConsumptionCommand extends $Command< + ExtendLicenseConsumptionCommandInput, + ExtendLicenseConsumptionCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ExtendLicenseConsumptionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ExtendLicenseConsumptionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ExtendLicenseConsumptionRequest.filterSensitiveLog, + outputFilterSensitiveLog: ExtendLicenseConsumptionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ExtendLicenseConsumptionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ExtendLicenseConsumptionCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ExtendLicenseConsumptionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/GetAccessTokenCommand.ts b/clients/client-license-manager/commands/GetAccessTokenCommand.ts new file mode 100644 index 0000000000000..ed0b39c2ed795 --- /dev/null +++ b/clients/client-license-manager/commands/GetAccessTokenCommand.ts @@ -0,0 +1,89 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { GetAccessTokenRequest, GetAccessTokenResponse } from "../models/models_0"; +import { + deserializeAws_json1_1GetAccessTokenCommand, + serializeAws_json1_1GetAccessTokenCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetAccessTokenCommandInput = GetAccessTokenRequest; +export type GetAccessTokenCommandOutput = GetAccessTokenResponse & __MetadataBearer; + +/** + *

        Gets a temporary access token to use with AssumeRoleWithWebIdentity. Access tokens + * are valid for one hour.

        + */ +export class GetAccessTokenCommand extends $Command< + GetAccessTokenCommandInput, + GetAccessTokenCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetAccessTokenCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "GetAccessTokenCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetAccessTokenRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetAccessTokenResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetAccessTokenCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetAccessTokenCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetAccessTokenCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/GetGrantCommand.ts b/clients/client-license-manager/commands/GetGrantCommand.ts new file mode 100644 index 0000000000000..0cd14d8bb7866 --- /dev/null +++ b/clients/client-license-manager/commands/GetGrantCommand.ts @@ -0,0 +1,85 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { GetGrantRequest, GetGrantResponse } from "../models/models_0"; +import { deserializeAws_json1_1GetGrantCommand, serializeAws_json1_1GetGrantCommand } from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetGrantCommandInput = GetGrantRequest; +export type GetGrantCommandOutput = GetGrantResponse & __MetadataBearer; + +/** + *

        Gets detailed information about the specified grant.

        + */ +export class GetGrantCommand extends $Command< + GetGrantCommandInput, + GetGrantCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetGrantCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "GetGrantCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetGrantRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetGrantResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetGrantCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetGrantCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetGrantCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/GetLicenseCommand.ts b/clients/client-license-manager/commands/GetLicenseCommand.ts new file mode 100644 index 0000000000000..5b221d38e9fa1 --- /dev/null +++ b/clients/client-license-manager/commands/GetLicenseCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { GetLicenseRequest, GetLicenseResponse } from "../models/models_0"; +import { + deserializeAws_json1_1GetLicenseCommand, + serializeAws_json1_1GetLicenseCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetLicenseCommandInput = GetLicenseRequest; +export type GetLicenseCommandOutput = GetLicenseResponse & __MetadataBearer; + +/** + *

        Gets detailed information about the specified license.

        + */ +export class GetLicenseCommand extends $Command< + GetLicenseCommandInput, + GetLicenseCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetLicenseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "GetLicenseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetLicenseRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetLicenseResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetLicenseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetLicenseCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetLicenseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/GetLicenseUsageCommand.ts b/clients/client-license-manager/commands/GetLicenseUsageCommand.ts new file mode 100644 index 0000000000000..fb2d08b1480cb --- /dev/null +++ b/clients/client-license-manager/commands/GetLicenseUsageCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { GetLicenseUsageRequest, GetLicenseUsageResponse } from "../models/models_0"; +import { + deserializeAws_json1_1GetLicenseUsageCommand, + serializeAws_json1_1GetLicenseUsageCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetLicenseUsageCommandInput = GetLicenseUsageRequest; +export type GetLicenseUsageCommandOutput = GetLicenseUsageResponse & __MetadataBearer; + +/** + *

        Gets detailed information about the usage of the specified license.

        + */ +export class GetLicenseUsageCommand extends $Command< + GetLicenseUsageCommandInput, + GetLicenseUsageCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetLicenseUsageCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "GetLicenseUsageCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetLicenseUsageRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetLicenseUsageResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetLicenseUsageCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetLicenseUsageCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetLicenseUsageCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListAssociationsForLicenseConfigurationCommand.ts b/clients/client-license-manager/commands/ListAssociationsForLicenseConfigurationCommand.ts index 780a750a696ac..3b36074f698ec 100644 --- a/clients/client-license-manager/commands/ListAssociationsForLicenseConfigurationCommand.ts +++ b/clients/client-license-manager/commands/ListAssociationsForLicenseConfigurationCommand.ts @@ -26,9 +26,9 @@ export type ListAssociationsForLicenseConfigurationCommandOutput = ListAssociati /** *

        Lists the resource associations for the specified license configuration.

        - *

        Resource associations need not consume licenses from a license configuration. For - * example, an AMI or a stopped instance might not consume a license (depending on the license - * rules).

        + *

        Resource associations need not consume licenses from a license configuration. + * For example, an AMI or a stopped instance might not consume a license (depending on + * the license rules).

        */ export class ListAssociationsForLicenseConfigurationCommand extends $Command< ListAssociationsForLicenseConfigurationCommandInput, diff --git a/clients/client-license-manager/commands/ListDistributedGrantsCommand.ts b/clients/client-license-manager/commands/ListDistributedGrantsCommand.ts new file mode 100644 index 0000000000000..50b268cd34288 --- /dev/null +++ b/clients/client-license-manager/commands/ListDistributedGrantsCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListDistributedGrantsRequest, ListDistributedGrantsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListDistributedGrantsCommand, + serializeAws_json1_1ListDistributedGrantsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListDistributedGrantsCommandInput = ListDistributedGrantsRequest; +export type ListDistributedGrantsCommandOutput = ListDistributedGrantsResponse & __MetadataBearer; + +/** + *

        Lists the grants distributed for the specified license.

        + */ +export class ListDistributedGrantsCommand extends $Command< + ListDistributedGrantsCommandInput, + ListDistributedGrantsCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDistributedGrantsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListDistributedGrantsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDistributedGrantsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDistributedGrantsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDistributedGrantsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListDistributedGrantsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListDistributedGrantsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListLicenseVersionsCommand.ts b/clients/client-license-manager/commands/ListLicenseVersionsCommand.ts new file mode 100644 index 0000000000000..98780b4c2f788 --- /dev/null +++ b/clients/client-license-manager/commands/ListLicenseVersionsCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListLicenseVersionsRequest, ListLicenseVersionsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListLicenseVersionsCommand, + serializeAws_json1_1ListLicenseVersionsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListLicenseVersionsCommandInput = ListLicenseVersionsRequest; +export type ListLicenseVersionsCommandOutput = ListLicenseVersionsResponse & __MetadataBearer; + +/** + *

        Lists all versions of the specified license.

        + */ +export class ListLicenseVersionsCommand extends $Command< + ListLicenseVersionsCommandInput, + ListLicenseVersionsCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListLicenseVersionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListLicenseVersionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListLicenseVersionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListLicenseVersionsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListLicenseVersionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListLicenseVersionsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListLicenseVersionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListLicensesCommand.ts b/clients/client-license-manager/commands/ListLicensesCommand.ts new file mode 100644 index 0000000000000..d9162e8520497 --- /dev/null +++ b/clients/client-license-manager/commands/ListLicensesCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListLicensesRequest, ListLicensesResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListLicensesCommand, + serializeAws_json1_1ListLicensesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListLicensesCommandInput = ListLicensesRequest; +export type ListLicensesCommandOutput = ListLicensesResponse & __MetadataBearer; + +/** + *

        Lists the licenses for your account.

        + */ +export class ListLicensesCommand extends $Command< + ListLicensesCommandInput, + ListLicensesCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListLicensesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListLicensesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListLicensesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListLicensesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListLicensesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListLicensesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListLicensesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListReceivedGrantsCommand.ts b/clients/client-license-manager/commands/ListReceivedGrantsCommand.ts new file mode 100644 index 0000000000000..80f4e817bfc72 --- /dev/null +++ b/clients/client-license-manager/commands/ListReceivedGrantsCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListReceivedGrantsRequest, ListReceivedGrantsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListReceivedGrantsCommand, + serializeAws_json1_1ListReceivedGrantsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListReceivedGrantsCommandInput = ListReceivedGrantsRequest; +export type ListReceivedGrantsCommandOutput = ListReceivedGrantsResponse & __MetadataBearer; + +/** + *

        Lists grants that are received but not accepted.

        + */ +export class ListReceivedGrantsCommand extends $Command< + ListReceivedGrantsCommandInput, + ListReceivedGrantsCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListReceivedGrantsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListReceivedGrantsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListReceivedGrantsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListReceivedGrantsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListReceivedGrantsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListReceivedGrantsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListReceivedGrantsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListReceivedLicensesCommand.ts b/clients/client-license-manager/commands/ListReceivedLicensesCommand.ts new file mode 100644 index 0000000000000..5678da481c920 --- /dev/null +++ b/clients/client-license-manager/commands/ListReceivedLicensesCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListReceivedLicensesRequest, ListReceivedLicensesResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListReceivedLicensesCommand, + serializeAws_json1_1ListReceivedLicensesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListReceivedLicensesCommandInput = ListReceivedLicensesRequest; +export type ListReceivedLicensesCommandOutput = ListReceivedLicensesResponse & __MetadataBearer; + +/** + *

        Lists received licenses.

        + */ +export class ListReceivedLicensesCommand extends $Command< + ListReceivedLicensesCommandInput, + ListReceivedLicensesCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListReceivedLicensesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListReceivedLicensesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListReceivedLicensesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListReceivedLicensesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListReceivedLicensesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListReceivedLicensesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListReceivedLicensesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/ListTokensCommand.ts b/clients/client-license-manager/commands/ListTokensCommand.ts new file mode 100644 index 0000000000000..24862c1606f06 --- /dev/null +++ b/clients/client-license-manager/commands/ListTokensCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { ListTokensRequest, ListTokensResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListTokensCommand, + serializeAws_json1_1ListTokensCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListTokensCommandInput = ListTokensRequest; +export type ListTokensCommandOutput = ListTokensResponse & __MetadataBearer; + +/** + *

        Lists your tokens.

        + */ +export class ListTokensCommand extends $Command< + ListTokensCommandInput, + ListTokensCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTokensCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "ListTokensCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTokensRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTokensResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTokensCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListTokensCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListTokensCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/RejectGrantCommand.ts b/clients/client-license-manager/commands/RejectGrantCommand.ts new file mode 100644 index 0000000000000..93e82ea5d8d4c --- /dev/null +++ b/clients/client-license-manager/commands/RejectGrantCommand.ts @@ -0,0 +1,88 @@ +import { LicenseManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LicenseManagerClient"; +import { RejectGrantRequest, RejectGrantResponse } from "../models/models_0"; +import { + deserializeAws_json1_1RejectGrantCommand, + serializeAws_json1_1RejectGrantCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type RejectGrantCommandInput = RejectGrantRequest; +export type RejectGrantCommandOutput = RejectGrantResponse & __MetadataBearer; + +/** + *

        Rejects the specified grant.

        + */ +export class RejectGrantCommand extends $Command< + RejectGrantCommandInput, + RejectGrantCommandOutput, + LicenseManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RejectGrantCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LicenseManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LicenseManagerClient"; + const commandName = "RejectGrantCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RejectGrantRequest.filterSensitiveLog, + outputFilterSensitiveLog: RejectGrantResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RejectGrantCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1RejectGrantCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1RejectGrantCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-license-manager/commands/UpdateLicenseSpecificationsForResourceCommand.ts b/clients/client-license-manager/commands/UpdateLicenseSpecificationsForResourceCommand.ts index 74f11d1ee11cb..86c45074ce523 100644 --- a/clients/client-license-manager/commands/UpdateLicenseSpecificationsForResourceCommand.ts +++ b/clients/client-license-manager/commands/UpdateLicenseSpecificationsForResourceCommand.ts @@ -25,11 +25,10 @@ export type UpdateLicenseSpecificationsForResourceCommandOutput = UpdateLicenseS __MetadataBearer; /** - *

        Adds or removes the specified license configurations for the specified AWS - * resource.

        - *

        You can update the license specifications of AMIs, instances, and hosts. You cannot - * update the license specifications for launch templates and AWS CloudFormation templates, as - * they send license configurations to the operation that creates the resource.

        + *

        Adds or removes the specified license configurations for the specified AWS resource.

        + *

        You can update the license specifications of AMIs, instances, and hosts. + * You cannot update the license specifications for launch templates and AWS CloudFormation templates, + * as they send license configurations to the operation that creates the resource.

        */ export class UpdateLicenseSpecificationsForResourceCommand extends $Command< UpdateLicenseSpecificationsForResourceCommandInput, diff --git a/clients/client-license-manager/index.ts b/clients/client-license-manager/index.ts index e3dacf83190dc..ed39638c9cbfa 100644 --- a/clients/client-license-manager/index.ts +++ b/clients/client-license-manager/index.ts @@ -1,16 +1,40 @@ export * from "./LicenseManagerClient"; export * from "./LicenseManager"; +export * from "./commands/AcceptGrantCommand"; +export * from "./commands/CheckInLicenseCommand"; +export * from "./commands/CheckoutBorrowLicenseCommand"; +export * from "./commands/CheckoutLicenseCommand"; +export * from "./commands/CreateGrantCommand"; +export * from "./commands/CreateGrantVersionCommand"; +export * from "./commands/CreateLicenseCommand"; export * from "./commands/CreateLicenseConfigurationCommand"; +export * from "./commands/CreateLicenseVersionCommand"; +export * from "./commands/CreateTokenCommand"; +export * from "./commands/DeleteGrantCommand"; +export * from "./commands/DeleteLicenseCommand"; export * from "./commands/DeleteLicenseConfigurationCommand"; +export * from "./commands/DeleteTokenCommand"; +export * from "./commands/ExtendLicenseConsumptionCommand"; +export * from "./commands/GetAccessTokenCommand"; +export * from "./commands/GetGrantCommand"; +export * from "./commands/GetLicenseCommand"; export * from "./commands/GetLicenseConfigurationCommand"; +export * from "./commands/GetLicenseUsageCommand"; export * from "./commands/GetServiceSettingsCommand"; export * from "./commands/ListAssociationsForLicenseConfigurationCommand"; +export * from "./commands/ListDistributedGrantsCommand"; export * from "./commands/ListFailuresForLicenseConfigurationOperationsCommand"; export * from "./commands/ListLicenseConfigurationsCommand"; +export * from "./commands/ListLicensesCommand"; export * from "./commands/ListLicenseSpecificationsForResourceCommand"; +export * from "./commands/ListLicenseVersionsCommand"; +export * from "./commands/ListReceivedGrantsCommand"; +export * from "./commands/ListReceivedLicensesCommand"; export * from "./commands/ListResourceInventoryCommand"; export * from "./commands/ListTagsForResourceCommand"; +export * from "./commands/ListTokensCommand"; export * from "./commands/ListUsageForLicenseConfigurationCommand"; +export * from "./commands/RejectGrantCommand"; export * from "./commands/TagResourceCommand"; export * from "./commands/UntagResourceCommand"; export * from "./commands/UpdateLicenseConfigurationCommand"; diff --git a/clients/client-license-manager/models/models_0.ts b/clients/client-license-manager/models/models_0.ts index 1c39be9f53ca0..f4dfa608b45dd 100644 --- a/clients/client-license-manager/models/models_0.ts +++ b/clients/client-license-manager/models/models_0.ts @@ -1,278 +1,80 @@ import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; -/** - *

        Access to resource denied.

        - */ -export interface AccessDeniedException extends __SmithyException, $MetadataBearer { - name: "AccessDeniedException"; - $fault: "client"; - Message?: string; -} - -export namespace AccessDeniedException { - export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ - ...obj, - }); -} - -/** - *

        The AWS user account does not have permission to perform the action. Check the IAM - * policy associated with this account.

        - */ -export interface AuthorizationException extends __SmithyException, $MetadataBearer { - name: "AuthorizationException"; - $fault: "client"; - Message?: string; -} - -export namespace AuthorizationException { - export const filterSensitiveLog = (obj: AuthorizationException): any => ({ - ...obj, - }); -} - -/** - *

        Describes automated discovery.

        - */ -export interface AutomatedDiscoveryInformation { +export interface AcceptGrantRequest { /** - *

        Time that automated discovery last ran.

        + *

        Amazon Resource Name (ARN) of the grant.

        */ - LastRunTime?: Date; + GrantArn: string | undefined; } -export namespace AutomatedDiscoveryInformation { - export const filterSensitiveLog = (obj: AutomatedDiscoveryInformation): any => ({ +export namespace AcceptGrantRequest { + export const filterSensitiveLog = (obj: AcceptGrantRequest): any => ({ ...obj, }); } -export enum LicenseCountingType { - CORE = "Core", - INSTANCE = "Instance", - SOCKET = "Socket", - VCPU = "vCPU", +export enum GrantStatus { + ACTIVE = "ACTIVE", + DELETED = "DELETED", + DISABLED = "DISABLED", + FAILED_WORKFLOW = "FAILED_WORKFLOW", + PENDING_ACCEPT = "PENDING_ACCEPT", + PENDING_DELETE = "PENDING_DELETE", + PENDING_WORKFLOW = "PENDING_WORKFLOW", + REJECTED = "REJECTED", } -/** - *

        Describes product information filters.

        - */ -export interface ProductInformationFilter { +export interface AcceptGrantResponse { /** - *

        Filter name.

        + *

        Grant ARN.

        */ - ProductInformationFilterName: string | undefined; + GrantArn?: string; /** - *

        Filter value.

        + *

        Grant status.

        */ - ProductInformationFilterValue: string[] | undefined; + Status?: GrantStatus | string; /** - *

        Logical operator.

        + *

        Grant version.

        */ - ProductInformationFilterComparator: string | undefined; + Version?: string; } -export namespace ProductInformationFilter { - export const filterSensitiveLog = (obj: ProductInformationFilter): any => ({ +export namespace AcceptGrantResponse { + export const filterSensitiveLog = (obj: AcceptGrantResponse): any => ({ ...obj, }); } /** - *

        Describes product information for a license configuration.

        + *

        Access to resource denied.

        */ -export interface ProductInformation { - /** - *

        Resource type. The possible values are SSM_MANAGED | - * RDS.

        - */ - ResourceType: string | undefined; - - /** - *

        Product information filters.

        - *

        The following filters and logical operators are supported when the resource type is - * SSM_MANAGED:

        - *
          - *
        • - *

          - * Application Name - The name of the application. Logical operator is - * EQUALS.

          - *
        • - *
        • - *

          - * Application Publisher - The publisher of the application. Logical - * operator is EQUALS.

          - *
        • - *
        • - *

          - * Application Version - The version of the application. Logical - * operator is EQUALS.

          - *
        • - *
        • - *

          - * Platform Name - The name of the platform. Logical operator is - * EQUALS.

          - *
        • - *
        • - *

          - * Platform Type - The platform type. Logical operator is - * EQUALS.

          - *
        • - *
        • - *

          - * License Included - The type of license included. Logical operators - * are EQUALS and NOT_EQUALS. Possible values are: - * sql-server-enterprise | sql-server-standard | - * sql-server-web | windows-server-datacenter.

          - *
        • - *
        - *

        The following filters and logical operators are supported when the resource type is - * RDS:

        - *
          - *
        • - *

          - * Engine Edition - The edition of the database engine. Logical operator - * is EQUALS. Possible values are: oracle-ee | - * oracle-se | oracle-se1 | oracle-se2.

          - *
        • - *
        • - *

          - * License Pack - The license pack. Logical operator is - * EQUALS. Possible values are: data guard | - * diagnostic pack sqlt | tuning pack sqlt | - * ols | olap.

          - *
        • - *
        - */ - ProductInformationFilterList: ProductInformationFilter[] | undefined; +export interface AccessDeniedException extends __SmithyException, $MetadataBearer { + name: "AccessDeniedException"; + $fault: "client"; + Message?: string; } -export namespace ProductInformation { - export const filterSensitiveLog = (obj: ProductInformation): any => ({ +export namespace AccessDeniedException { + export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ ...obj, }); } /** - *

        Details about a tag for a license configuration.

        + *

        The AWS user account does not have permission to perform the action. Check the IAM + * policy associated with this account.

        */ -export interface Tag { - /** - *

        Tag key.

        - */ - Key?: string; - - /** - *

        Tag value.

        - */ - Value?: string; -} - -export namespace Tag { - export const filterSensitiveLog = (obj: Tag): any => ({ - ...obj, - }); -} - -export interface CreateLicenseConfigurationRequest { - /** - *

        Name of the license configuration.

        - */ - Name: string | undefined; - - /** - *

        Description of the license configuration.

        - */ - Description?: string; - - /** - *

        Dimension used to track the license inventory.

        - */ - LicenseCountingType: LicenseCountingType | string | undefined; - - /** - *

        Number of licenses managed by the license configuration.

        - */ - LicenseCount?: number; - - /** - *

        Indicates whether hard or soft license enforcement is used. Exceeding a hard limit - * blocks the launch of new instances.

        - */ - LicenseCountHardLimit?: boolean; - - /** - *

        License rules. The syntax is #name=value (for example, - * #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as - * follows.

        - *
          - *
        • - *

          - * Cores dimension: allowedTenancy | - * licenseAffinityToHost | maximumCores | - * minimumCores - *

          - *
        • - *
        • - *

          - * Instances dimension: allowedTenancy | - * maximumCores | minimumCores | - * maximumSockets | minimumSockets | - * maximumVcpus | minimumVcpus - *

          - *
        • - *
        • - *

          - * Sockets dimension: allowedTenancy | - * licenseAffinityToHost | maximumSockets | - * minimumSockets - *

          - *
        • - *
        • - *

          - * vCPUs dimension: allowedTenancy | - * honorVcpuOptimization | maximumVcpus | - * minimumVcpus - *

          - *
        • - *
        - *

        The unit for licenseAffinityToHost is days and the range is 1 to 180. The - * possible values for allowedTenancy are EC2-Default, - * EC2-DedicatedHost, and EC2-DedicatedInstance. The possible - * values for honorVcpuOptimization are True and - * False.

        - */ - LicenseRules?: string[]; - - /** - *

        Tags to add to the license configuration.

        - */ - Tags?: Tag[]; - - /** - *

        Product information.

        - */ - ProductInformationList?: ProductInformation[]; -} - -export namespace CreateLicenseConfigurationRequest { - export const filterSensitiveLog = (obj: CreateLicenseConfigurationRequest): any => ({ - ...obj, - }); -} - -export interface CreateLicenseConfigurationResponse { - /** - *

        Amazon Resource Name (ARN) of the license configuration.

        - */ - LicenseConfigurationArn?: string; +export interface AuthorizationException extends __SmithyException, $MetadataBearer { + name: "AuthorizationException"; + $fault: "client"; + Message?: string; } -export namespace CreateLicenseConfigurationResponse { - export const filterSensitiveLog = (obj: CreateLicenseConfigurationResponse): any => ({ +export namespace AuthorizationException { + export const filterSensitiveLog = (obj: AuthorizationException): any => ({ ...obj, }); } @@ -337,93 +139,2260 @@ export namespace ServerInternalException { }); } -export interface DeleteLicenseConfigurationRequest { - /** - *

        ID of the license configuration.

        - */ - LicenseConfigurationArn: string | undefined; +/** + *

        The provided input is not valid. Try your request again.

        + */ +export interface ValidationException extends __SmithyException, $MetadataBearer { + name: "ValidationException"; + $fault: "client"; + Message?: string; } -export namespace DeleteLicenseConfigurationRequest { - export const filterSensitiveLog = (obj: DeleteLicenseConfigurationRequest): any => ({ +export namespace ValidationException { + export const filterSensitiveLog = (obj: ValidationException): any => ({ ...obj, }); } -export interface DeleteLicenseConfigurationResponse {} - -export namespace DeleteLicenseConfigurationResponse { - export const filterSensitiveLog = (obj: DeleteLicenseConfigurationResponse): any => ({ - ...obj, - }); +export enum AllowedOperation { + CHECKOUT_BORROW_LICENSE = "CheckoutBorrowLicense", + CHECKOUT_LICENSE = "CheckoutLicense", + CHECK_IN_LICENSE = "CheckInLicense", + CREATE_GRANT = "CreateGrant", + CREATE_TOKEN = "CreateToken", + EXTEND_CONSUMPTION_LICENSE = "ExtendConsumptionLicense", + LIST_PURCHASED_LICENSES = "ListPurchasedLicenses", } -export interface GetLicenseConfigurationRequest { +/** + *

        Describes automated discovery.

        + */ +export interface AutomatedDiscoveryInformation { /** - *

        Amazon Resource Name (ARN) of the license configuration.

        + *

        Time that automated discovery last ran.

        */ - LicenseConfigurationArn: string | undefined; + LastRunTime?: Date; } -export namespace GetLicenseConfigurationRequest { - export const filterSensitiveLog = (obj: GetLicenseConfigurationRequest): any => ({ +export namespace AutomatedDiscoveryInformation { + export const filterSensitiveLog = (obj: AutomatedDiscoveryInformation): any => ({ ...obj, }); } -export enum ResourceType { - EC2_AMI = "EC2_AMI", - EC2_HOST = "EC2_HOST", - EC2_INSTANCE = "EC2_INSTANCE", - RDS = "RDS", - SYSTEMS_MANAGER_MANAGED_INSTANCE = "SYSTEMS_MANAGER_MANAGED_INSTANCE", -} - -/** - *

        Details about license consumption.

        - */ -export interface ConsumedLicenseSummary { +export interface CheckInLicenseRequest { /** - *

        Resource type of the resource consuming a license.

        + *

        License consumption token.

        */ - ResourceType?: ResourceType | string; + LicenseConsumptionToken: string | undefined; /** - *

        Number of licenses consumed by the resource.

        + *

        License beneficiary.

        */ - ConsumedLicenses?: number; + Beneficiary?: string; } -export namespace ConsumedLicenseSummary { - export const filterSensitiveLog = (obj: ConsumedLicenseSummary): any => ({ +export namespace CheckInLicenseRequest { + export const filterSensitiveLog = (obj: CheckInLicenseRequest): any => ({ + ...obj, + }); +} + +export interface CheckInLicenseResponse {} + +export namespace CheckInLicenseResponse { + export const filterSensitiveLog = (obj: CheckInLicenseResponse): any => ({ + ...obj, + }); +} + +/** + *

        There was a conflict processing the request. Try your request again.

        + */ +export interface ConflictException extends __SmithyException, $MetadataBearer { + name: "ConflictException"; + $fault: "client"; + Message?: string; +} + +export namespace ConflictException { + export const filterSensitiveLog = (obj: ConflictException): any => ({ + ...obj, + }); +} + +/** + *

        The resource cannot be found.

        + */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotFoundException { + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +/** + *

        Describes key/value pairs.

        + */ +export interface Metadata { + /** + *

        The key name.

        + */ + Name?: string; + + /** + *

        The value.

        + */ + Value?: string; +} + +export namespace Metadata { + export const filterSensitiveLog = (obj: Metadata): any => ({ + ...obj, + }); +} + +export enum DigitalSignatureMethod { + JWT_PS384 = "JWT_PS384", +} + +export enum EntitlementDataUnit { + BITS = "Bits", + BITS_PER_SECOND = "Bits/Second", + BYTES = "Bytes", + BYTES_PER_SECOND = "Bytes/Second", + COUNT = "Count", + COUNT_PER_SECOND = "Count/Second", + GIGABITS = "Gigabits", + GIGABITS_PER_SECOND = "Gigabits/Second", + GIGABYTES = "Gigabytes", + GIGABYTES_PER_SECOND = "Gigabytes/Second", + KILOBITS = "Kilobits", + KILOBITS_PER_SECOND = "Kilobits/Second", + KILOBYTES = "Kilobytes", + KILOBYTES_PER_SECOND = "Kilobytes/Second", + MEGABITS = "Megabits", + MEGABITS_PER_SECOND = "Megabits/Second", + MEGABYTES = "Megabytes", + MEGABYTES_PER_SECOND = "Megabytes/Second", + MICROSECONDS = "Microseconds", + MILLISECONDS = "Milliseconds", + NONE = "None", + PERCENT = "Percent", + SECONDS = "Seconds", + TERABITS = "Terabits", + TERABITS_PER_SECOND = "Terabits/Second", + TERABYTES = "Terabytes", + TERABYTES_PER_SECOND = "Terabytes/Second", +} + +/** + *

        Data associated with an entitlement resource.

        + */ +export interface EntitlementData { + /** + *

        Entitlement data name.

        + */ + Name: string | undefined; + + /** + *

        Entitlement data value.

        + */ + Value?: string; + + /** + *

        Entitlement data unit.

        + */ + Unit: EntitlementDataUnit | string | undefined; +} + +export namespace EntitlementData { + export const filterSensitiveLog = (obj: EntitlementData): any => ({ + ...obj, + }); +} + +export interface CheckoutBorrowLicenseRequest { + /** + *

        Amazon Resource Name (ARN) of the license. The license must use the borrow consumption configuration.

        + */ + LicenseArn: string | undefined; + + /** + *

        License entitlements. Partial checkouts are not supported.

        + */ + Entitlements: EntitlementData[] | undefined; + + /** + *

        Digital signature method. The possible value is JSON Web Signature (JWS) algorithm PS384. + * For more information, see RFC 7518 Digital Signature with RSASSA-PSS.

        + */ + DigitalSignatureMethod: DigitalSignatureMethod | string | undefined; + + /** + *

        Node ID.

        + */ + NodeId?: string; + + /** + *

        Information about constraints.

        + */ + CheckoutMetadata?: Metadata[]; + + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; +} + +export namespace CheckoutBorrowLicenseRequest { + export const filterSensitiveLog = (obj: CheckoutBorrowLicenseRequest): any => ({ + ...obj, + }); +} + +export interface CheckoutBorrowLicenseResponse { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn?: string; + + /** + *

        License consumption token.

        + */ + LicenseConsumptionToken?: string; + + /** + *

        Allowed license entitlements.

        + */ + EntitlementsAllowed?: EntitlementData[]; + + /** + *

        Node ID.

        + */ + NodeId?: string; + + /** + *

        Signed token.

        + */ + SignedToken?: string; + + /** + *

        Date and time at which the license checkout is issued.

        + */ + IssuedAt?: string; + + /** + *

        Date and time at which the license checkout expires.

        + */ + Expiration?: string; + + /** + *

        Information about constraints.

        + */ + CheckoutMetadata?: Metadata[]; +} + +export namespace CheckoutBorrowLicenseResponse { + export const filterSensitiveLog = (obj: CheckoutBorrowLicenseResponse): any => ({ + ...obj, + }); +} + +/** + *

        The entitlement is not allowed.

        + */ +export interface EntitlementNotAllowedException extends __SmithyException, $MetadataBearer { + name: "EntitlementNotAllowedException"; + $fault: "client"; + Message?: string; +} + +export namespace EntitlementNotAllowedException { + export const filterSensitiveLog = (obj: EntitlementNotAllowedException): any => ({ + ...obj, + }); +} + +/** + *

        There are no entitlements found for this license, or the entitlement maximum count is reached.

        + */ +export interface NoEntitlementsAllowedException extends __SmithyException, $MetadataBearer { + name: "NoEntitlementsAllowedException"; + $fault: "client"; + Message?: string; +} + +export namespace NoEntitlementsAllowedException { + export const filterSensitiveLog = (obj: NoEntitlementsAllowedException): any => ({ + ...obj, + }); +} + +/** + *

        This is not the correct Region for the resource. Try again.

        + */ +export interface RedirectException extends __SmithyException, $MetadataBearer { + name: "RedirectException"; + $fault: "client"; + Location?: string; + Message?: string; +} + +export namespace RedirectException { + export const filterSensitiveLog = (obj: RedirectException): any => ({ + ...obj, + }); +} + +/** + *

        The digital signature method is unsupported. Try your request again.

        + */ +export interface UnsupportedDigitalSignatureMethodException extends __SmithyException, $MetadataBearer { + name: "UnsupportedDigitalSignatureMethodException"; + $fault: "client"; + Message?: string; +} + +export namespace UnsupportedDigitalSignatureMethodException { + export const filterSensitiveLog = (obj: UnsupportedDigitalSignatureMethodException): any => ({ + ...obj, + }); +} + +export enum CheckoutType { + PROVISIONAL = "PROVISIONAL", +} + +export interface CheckoutLicenseRequest { + /** + *

        Product SKU.

        + */ + ProductSKU: string | undefined; + + /** + *

        Checkout type.

        + */ + CheckoutType: CheckoutType | string | undefined; + + /** + *

        Key fingerprint identifying the license.

        + */ + KeyFingerprint: string | undefined; + + /** + *

        License entitlements.

        + */ + Entitlements: EntitlementData[] | undefined; + + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; + + /** + *

        License beneficiary.

        + */ + Beneficiary?: string; + + /** + *

        Node ID.

        + */ + NodeId?: string; +} + +export namespace CheckoutLicenseRequest { + export const filterSensitiveLog = (obj: CheckoutLicenseRequest): any => ({ + ...obj, + }); +} + +export interface CheckoutLicenseResponse { + /** + *

        Checkout type.

        + */ + CheckoutType?: CheckoutType | string; + + /** + *

        License consumption token.

        + */ + LicenseConsumptionToken?: string; + + /** + *

        Allowed license entitlements.

        + */ + EntitlementsAllowed?: EntitlementData[]; + + /** + *

        Signed token.

        + */ + SignedToken?: string; + + /** + *

        Node ID.

        + */ + NodeId?: string; + + /** + *

        Date and time at which the license checkout is issued.

        + */ + IssuedAt?: string; + + /** + *

        Date and time at which the license checkout expires.

        + */ + Expiration?: string; +} + +export namespace CheckoutLicenseResponse { + export const filterSensitiveLog = (obj: CheckoutLicenseResponse): any => ({ + ...obj, + }); +} + +export interface CreateGrantRequest { + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; + + /** + *

        Grant name.

        + */ + GrantName: string | undefined; + + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn: string | undefined; + + /** + *

        The grant principals.

        + */ + Principals: string[] | undefined; + + /** + *

        Home Region of the grant.

        + */ + HomeRegion: string | undefined; + + /** + *

        Allowed operations for the grant.

        + */ + AllowedOperations: (AllowedOperation | string)[] | undefined; +} + +export namespace CreateGrantRequest { + export const filterSensitiveLog = (obj: CreateGrantRequest): any => ({ + ...obj, + }); +} + +export interface CreateGrantResponse { + /** + *

        Grant ARN.

        + */ + GrantArn?: string; + + /** + *

        Grant status.

        + */ + Status?: GrantStatus | string; + + /** + *

        Grant version.

        + */ + Version?: string; +} + +export namespace CreateGrantResponse { + export const filterSensitiveLog = (obj: CreateGrantResponse): any => ({ + ...obj, + }); +} + +export interface CreateGrantVersionRequest { + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; + + /** + *

        Amazon Resource Name (ARN) of the grant.

        + */ + GrantArn: string | undefined; + + /** + *

        Grant name.

        + */ + GrantName?: string; + + /** + *

        Allowed operations for the grant.

        + */ + AllowedOperations?: (AllowedOperation | string)[]; + + /** + *

        Grant status.

        + */ + Status?: GrantStatus | string; + + /** + *

        Current version of the grant.

        + */ + SourceVersion?: string; +} + +export namespace CreateGrantVersionRequest { + export const filterSensitiveLog = (obj: CreateGrantVersionRequest): any => ({ + ...obj, + }); +} + +export interface CreateGrantVersionResponse { + /** + *

        Grant ARN.

        + */ + GrantArn?: string; + + /** + *

        Grant status.

        + */ + Status?: GrantStatus | string; + + /** + *

        New version of the grant.

        + */ + Version?: string; +} + +export namespace CreateGrantVersionResponse { + export const filterSensitiveLog = (obj: CreateGrantVersionResponse): any => ({ + ...obj, + }); +} + +/** + *

        Details about a borrow configuration.

        + */ +export interface BorrowConfiguration { + /** + *

        Indicates whether early check-ins are allowed.

        + */ + AllowEarlyCheckIn: boolean | undefined; + + /** + *

        Maximum time for the borrow configuration, in minutes.

        + */ + MaxTimeToLiveInMinutes: number | undefined; +} + +export namespace BorrowConfiguration { + export const filterSensitiveLog = (obj: BorrowConfiguration): any => ({ + ...obj, + }); +} + +/** + *

        Details about a provisional configuration.

        + */ +export interface ProvisionalConfiguration { + /** + *

        Maximum time for the provisional configuration, in minutes.

        + */ + MaxTimeToLiveInMinutes: number | undefined; +} + +export namespace ProvisionalConfiguration { + export const filterSensitiveLog = (obj: ProvisionalConfiguration): any => ({ + ...obj, + }); +} + +export enum RenewType { + MONTHLY = "Monthly", + NONE = "None", + WEEKLY = "Weekly", +} + +/** + *

        Details about a consumption configuration.

        + */ +export interface ConsumptionConfiguration { + /** + *

        Renewal frequency.

        + */ + RenewType?: RenewType | string; + + /** + *

        Details about a provisional configuration.

        + */ + ProvisionalConfiguration?: ProvisionalConfiguration; + + /** + *

        Details about a borrow configuration.

        + */ + BorrowConfiguration?: BorrowConfiguration; +} + +export namespace ConsumptionConfiguration { + export const filterSensitiveLog = (obj: ConsumptionConfiguration): any => ({ + ...obj, + }); +} + +export enum EntitlementUnit { + BITS = "Bits", + BITS_PER_SECOND = "Bits/Second", + BYTES = "Bytes", + BYTES_PER_SECOND = "Bytes/Second", + COUNT = "Count", + COUNT_PER_SECOND = "Count/Second", + GIGABITS = "Gigabits", + GIGABITS_PER_SECOND = "Gigabits/Second", + GIGABYTES = "Gigabytes", + GIGABYTES_PER_SECOND = "Gigabytes/Second", + KILOBITS = "Kilobits", + KILOBITS_PER_SECOND = "Kilobits/Second", + KILOBYTES = "Kilobytes", + KILOBYTES_PER_SECOND = "Kilobytes/Second", + MEGABITS = "Megabits", + MEGABITS_PER_SECOND = "Megabits/Second", + MEGABYTES = "Megabytes", + MEGABYTES_PER_SECOND = "Megabytes/Second", + MICROSECONDS = "Microseconds", + MILLISECONDS = "Milliseconds", + NONE = "None", + PERCENT = "Percent", + SECONDS = "Seconds", + TERABITS = "Terabits", + TERABITS_PER_SECOND = "Terabits/Second", + TERABYTES = "Terabytes", + TERABYTES_PER_SECOND = "Terabytes/Second", +} + +/** + *

        Describes a resource entitled for use with a license.

        + */ +export interface Entitlement { + /** + *

        Entitlement name.

        + */ + Name: string | undefined; + + /** + *

        Entitlement resource. Use only if the unit is None.

        + */ + Value?: string; + + /** + *

        Maximum entitlement count. Use if the unit is not None.

        + */ + MaxCount?: number; + + /** + *

        Indicates whether overages are allowed.

        + */ + Overage?: boolean; + + /** + *

        Entitlement unit.

        + */ + Unit: EntitlementUnit | string | undefined; + + /** + *

        Indicates whether check-ins are allowed.

        + */ + AllowCheckIn?: boolean; +} + +export namespace Entitlement { + export const filterSensitiveLog = (obj: Entitlement): any => ({ + ...obj, + }); +} + +/** + *

        Details about the issuer of a license.

        + */ +export interface Issuer { + /** + *

        Issuer name.

        + */ + Name: string | undefined; + + /** + *

        Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, + * and support the RSASSA-PSS SHA-256 signing algorithm.

        + */ + SignKey?: string; +} + +export namespace Issuer { + export const filterSensitiveLog = (obj: Issuer): any => ({ + ...obj, + }); +} + +/** + *

        Describes a time range, in ISO8601-UTC format.

        + */ +export interface DatetimeRange { + /** + *

        Start of the time range.

        + */ + Begin: string | undefined; + + /** + *

        End of the time range.

        + */ + End?: string; +} + +export namespace DatetimeRange { + export const filterSensitiveLog = (obj: DatetimeRange): any => ({ + ...obj, + }); +} + +export interface CreateLicenseRequest { + /** + *

        License name.

        + */ + LicenseName: string | undefined; + + /** + *

        Product name.

        + */ + ProductName: string | undefined; + + /** + *

        Product SKU.

        + */ + ProductSKU: string | undefined; + + /** + *

        License issuer.

        + */ + Issuer: Issuer | undefined; + + /** + *

        Home Region for the license.

        + */ + HomeRegion: string | undefined; + + /** + *

        Date and time range during which the license is valid, in ISO8601-UTC format.

        + */ + Validity: DatetimeRange | undefined; + + /** + *

        License entitlements.

        + */ + Entitlements: Entitlement[] | undefined; + + /** + *

        License beneficiary.

        + */ + Beneficiary: string | undefined; + + /** + *

        Configuration for consumption of the license. Choose a provisional configuration for workloads + * running with continuous connectivity. Choose a borrow configuration for workloads with offline + * usage.

        + */ + ConsumptionConfiguration: ConsumptionConfiguration | undefined; + + /** + *

        Information about the license.

        + */ + LicenseMetadata?: Metadata[]; + + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; +} + +export namespace CreateLicenseRequest { + export const filterSensitiveLog = (obj: CreateLicenseRequest): any => ({ + ...obj, + }); +} + +export enum LicenseStatus { + AVAILABLE = "AVAILABLE", + DEACTIVATED = "DEACTIVATED", + DELETED = "DELETED", + EXPIRED = "EXPIRED", + PENDING_AVAILABLE = "PENDING_AVAILABLE", + PENDING_DELETE = "PENDING_DELETE", + SUSPENDED = "SUSPENDED", +} + +export interface CreateLicenseResponse { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn?: string; + + /** + *

        License status.

        + */ + Status?: LicenseStatus | string; + + /** + *

        License version.

        + */ + Version?: string; +} + +export namespace CreateLicenseResponse { + export const filterSensitiveLog = (obj: CreateLicenseResponse): any => ({ + ...obj, + }); +} + +export enum LicenseCountingType { + CORE = "Core", + INSTANCE = "Instance", + SOCKET = "Socket", + VCPU = "vCPU", +} + +/** + *

        Describes product information filters.

        + */ +export interface ProductInformationFilter { + /** + *

        Filter name.

        + */ + ProductInformationFilterName: string | undefined; + + /** + *

        Filter value.

        + */ + ProductInformationFilterValue: string[] | undefined; + + /** + *

        Logical operator.

        + */ + ProductInformationFilterComparator: string | undefined; +} + +export namespace ProductInformationFilter { + export const filterSensitiveLog = (obj: ProductInformationFilter): any => ({ + ...obj, + }); +} + +/** + *

        Describes product information for a license configuration.

        + */ +export interface ProductInformation { + /** + *

        Resource type. The possible values are SSM_MANAGED | RDS.

        + */ + ResourceType: string | undefined; + + /** + *

        Product information filters.

        + *

        The following filters and logical operators are supported when the resource type + * is SSM_MANAGED:

        + *
          + *
        • + *

          + * Application Name - The name of the application. + * Logical operator is EQUALS.

          + *
        • + *
        • + *

          + * Application Publisher - The publisher of the application. + * Logical operator is EQUALS.

          + *
        • + *
        • + *

          + * Application Version - The version of the application. + * Logical operator is EQUALS.

          + *
        • + *
        • + *

          + * Platform Name - The name of the platform. + * Logical operator is EQUALS.

          + *
        • + *
        • + *

          + * Platform Type - The platform type. + * Logical operator is EQUALS.

          + *
        • + *
        • + *

          + * License Included - The type of license included. + * Logical operators are EQUALS and NOT_EQUALS. + * Possible values are: sql-server-enterprise | + * sql-server-standard | + * sql-server-web | + * windows-server-datacenter.

          + *
        • + *
        + *

        The following filters and logical operators are supported when the resource type + * is RDS:

        + *
          + *
        • + *

          + * Engine Edition - The edition of the database engine. + * Logical operator is EQUALS. + * Possible values are: oracle-ee | oracle-se | oracle-se1 | oracle-se2.

          + *
        • + *
        • + *

          + * License Pack - The license pack. + * Logical operator is EQUALS. + * Possible values are: data guard | + * diagnostic pack sqlt | + * tuning pack sqlt | + * ols | + * olap.

          + *
        • + *
        + */ + ProductInformationFilterList: ProductInformationFilter[] | undefined; +} + +export namespace ProductInformation { + export const filterSensitiveLog = (obj: ProductInformation): any => ({ + ...obj, + }); +} + +/** + *

        Details about a tag for a license configuration.

        + */ +export interface Tag { + /** + *

        Tag key.

        + */ + Key?: string; + + /** + *

        Tag value.

        + */ + Value?: string; +} + +export namespace Tag { + export const filterSensitiveLog = (obj: Tag): any => ({ + ...obj, + }); +} + +export interface CreateLicenseConfigurationRequest { + /** + *

        Name of the license configuration.

        + */ + Name: string | undefined; + + /** + *

        Description of the license configuration.

        + */ + Description?: string; + + /** + *

        Dimension used to track the license inventory.

        + */ + LicenseCountingType: LicenseCountingType | string | undefined; + + /** + *

        Number of licenses managed by the license configuration.

        + */ + LicenseCount?: number; + + /** + *

        Indicates whether hard or soft license enforcement is used. Exceeding a hard limit + * blocks the launch of new instances.

        + */ + LicenseCountHardLimit?: boolean; + + /** + *

        License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules + * vary by dimension, as follows.

        + *
          + *
        • + *

          + * Cores dimension: allowedTenancy | + * licenseAffinityToHost | + * maximumCores | minimumCores + *

          + *
        • + *
        • + *

          + * Instances dimension: allowedTenancy | + * maximumCores | minimumCores | + * maximumSockets | minimumSockets | + * maximumVcpus | minimumVcpus + *

          + *
        • + *
        • + *

          + * Sockets dimension: allowedTenancy | + * licenseAffinityToHost | + * maximumSockets | minimumSockets + *

          + *
        • + *
        • + *

          + * vCPUs dimension: allowedTenancy | + * honorVcpuOptimization | + * maximumVcpus | minimumVcpus + *

          + *
        • + *
        + *

        The unit for licenseAffinityToHost is days and the range is 1 to 180. The possible + * values for allowedTenancy are EC2-Default, EC2-DedicatedHost, and + * EC2-DedicatedInstance. The possible values for honorVcpuOptimization are + * True and False.

        + */ + LicenseRules?: string[]; + + /** + *

        Tags to add to the license configuration.

        + */ + Tags?: Tag[]; + + /** + *

        When true, disassociates a resource when software is uninstalled.

        + */ + DisassociateWhenNotFound?: boolean; + + /** + *

        Product information.

        + */ + ProductInformationList?: ProductInformation[]; +} + +export namespace CreateLicenseConfigurationRequest { + export const filterSensitiveLog = (obj: CreateLicenseConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface CreateLicenseConfigurationResponse { + /** + *

        Amazon Resource Name (ARN) of the license configuration.

        + */ + LicenseConfigurationArn?: string; +} + +export namespace CreateLicenseConfigurationResponse { + export const filterSensitiveLog = (obj: CreateLicenseConfigurationResponse): any => ({ + ...obj, + }); +} + +export interface CreateLicenseVersionRequest { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn: string | undefined; + + /** + *

        License name.

        + */ + LicenseName: string | undefined; + + /** + *

        Product name.

        + */ + ProductName: string | undefined; + + /** + *

        License issuer.

        + */ + Issuer: Issuer | undefined; + + /** + *

        Home Region of the license.

        + */ + HomeRegion: string | undefined; + + /** + *

        Date and time range during which the license is valid, in ISO8601-UTC format.

        + */ + Validity: DatetimeRange | undefined; + + /** + *

        Information about the license.

        + */ + LicenseMetadata?: Metadata[]; + + /** + *

        License entitlements.

        + */ + Entitlements: Entitlement[] | undefined; + + /** + *

        Configuration for consumption of the license. Choose a provisional configuration for workloads + * running with continuous connectivity. Choose a borrow configuration for workloads with offline + * usage.

        + */ + ConsumptionConfiguration: ConsumptionConfiguration | undefined; + + /** + *

        License status.

        + */ + Status: LicenseStatus | string | undefined; + + /** + *

        Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

        + */ + ClientToken: string | undefined; + + /** + *

        Current version of the license.

        + */ + SourceVersion?: string; +} + +export namespace CreateLicenseVersionRequest { + export const filterSensitiveLog = (obj: CreateLicenseVersionRequest): any => ({ + ...obj, + }); +} + +export interface CreateLicenseVersionResponse { + /** + *

        License ARN.

        + */ + LicenseArn?: string; + + /** + *

        New version of the license.

        + */ + Version?: string; + + /** + *

        License status.

        + */ + Status?: LicenseStatus | string; +} + +export namespace CreateLicenseVersionResponse { + export const filterSensitiveLog = (obj: CreateLicenseVersionResponse): any => ({ + ...obj, + }); +} + +export interface CreateTokenRequest { + /** + *

        Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud claim of the + * JWT token.

        + */ + LicenseArn: string | undefined; + + /** + *

        Amazon Resource Name (ARN) of the IAM roles to embed in the token. + * License Manager does not check whether the roles are in use.

        + */ + RoleArns?: string[]; + + /** + *

        Token expiration, in days, counted from token creation. The default is 365 days.

        + */ + ExpirationInDays?: number; + + /** + *

        Data specified by the caller to be included in the JWT token. The data is mapped + * to the amr claim of the JWT token.

        + */ + TokenProperties?: string[]; + + /** + *

        Idempotency token, valid for 10 minutes.

        + */ + ClientToken: string | undefined; +} + +export namespace CreateTokenRequest { + export const filterSensitiveLog = (obj: CreateTokenRequest): any => ({ + ...obj, + }); +} + +export enum TokenType { + REFRESH_TOKEN = "REFRESH_TOKEN", +} + +export interface CreateTokenResponse { + /** + *

        Token ID.

        + */ + TokenId?: string; + + /** + *

        Token type.

        + */ + TokenType?: TokenType | string; + + /** + *

        Refresh token, encoded as a JWT token.

        + */ + Token?: string; +} + +export namespace CreateTokenResponse { + export const filterSensitiveLog = (obj: CreateTokenResponse): any => ({ + ...obj, + }); +} + +export interface DeleteGrantRequest { + /** + *

        Amazon Resource Name (ARN) of the grant.

        + */ + GrantArn: string | undefined; + + /** + *

        Current version of the grant.

        + */ + Version: string | undefined; +} + +export namespace DeleteGrantRequest { + export const filterSensitiveLog = (obj: DeleteGrantRequest): any => ({ + ...obj, + }); +} + +export interface DeleteGrantResponse { + /** + *

        Grant ARN.

        + */ + GrantArn?: string; + + /** + *

        Grant status.

        + */ + Status?: GrantStatus | string; + + /** + *

        Grant version.

        + */ + Version?: string; +} + +export namespace DeleteGrantResponse { + export const filterSensitiveLog = (obj: DeleteGrantResponse): any => ({ + ...obj, + }); +} + +export interface DeleteLicenseRequest { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn: string | undefined; + + /** + *

        Current version of the license.

        + */ + SourceVersion: string | undefined; +} + +export namespace DeleteLicenseRequest { + export const filterSensitiveLog = (obj: DeleteLicenseRequest): any => ({ + ...obj, + }); +} + +export enum LicenseDeletionStatus { + DELETED = "DELETED", + PENDING_DELETE = "PENDING_DELETE", +} + +export interface DeleteLicenseResponse { + /** + *

        License status.

        + */ + Status?: LicenseDeletionStatus | string; + + /** + *

        Date on which the license is deleted.

        + */ + DeletionDate?: string; +} + +export namespace DeleteLicenseResponse { + export const filterSensitiveLog = (obj: DeleteLicenseResponse): any => ({ + ...obj, + }); +} + +export interface DeleteLicenseConfigurationRequest { + /** + *

        ID of the license configuration.

        + */ + LicenseConfigurationArn: string | undefined; +} + +export namespace DeleteLicenseConfigurationRequest { + export const filterSensitiveLog = (obj: DeleteLicenseConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface DeleteLicenseConfigurationResponse {} + +export namespace DeleteLicenseConfigurationResponse { + export const filterSensitiveLog = (obj: DeleteLicenseConfigurationResponse): any => ({ + ...obj, + }); +} + +export interface DeleteTokenRequest { + /** + *

        Token ID.

        + */ + TokenId: string | undefined; +} + +export namespace DeleteTokenRequest { + export const filterSensitiveLog = (obj: DeleteTokenRequest): any => ({ + ...obj, + }); +} + +export interface DeleteTokenResponse {} + +export namespace DeleteTokenResponse { + export const filterSensitiveLog = (obj: DeleteTokenResponse): any => ({ + ...obj, + }); +} + +export interface ExtendLicenseConsumptionRequest { + /** + *

        License consumption token.

        + */ + LicenseConsumptionToken: string | undefined; + + /** + *

        Checks whether you have the required permissions for the action, without actually making the request. Provides an error response if you do not have the required permissions.

        + */ + DryRun?: boolean; +} + +export namespace ExtendLicenseConsumptionRequest { + export const filterSensitiveLog = (obj: ExtendLicenseConsumptionRequest): any => ({ + ...obj, + }); +} + +export interface ExtendLicenseConsumptionResponse { + /** + *

        License consumption token.

        + */ + LicenseConsumptionToken?: string; + + /** + *

        Date and time at which the license consumption expires.

        + */ + Expiration?: string; +} + +export namespace ExtendLicenseConsumptionResponse { + export const filterSensitiveLog = (obj: ExtendLicenseConsumptionResponse): any => ({ + ...obj, + }); +} + +export interface GetAccessTokenRequest { + /** + *

        Refresh token, encoded as a JWT token.

        + */ + Token: string | undefined; + + /** + *

        Token properties to validate against those present in the JWT token.

        + */ + TokenProperties?: string[]; +} + +export namespace GetAccessTokenRequest { + export const filterSensitiveLog = (obj: GetAccessTokenRequest): any => ({ + ...obj, + }); +} + +export interface GetAccessTokenResponse { + /** + *

        Temporary access token.

        + */ + AccessToken?: string; +} + +export namespace GetAccessTokenResponse { + export const filterSensitiveLog = (obj: GetAccessTokenResponse): any => ({ + ...obj, + }); +} + +export interface GetGrantRequest { + /** + *

        Amazon Resource Name (ARN) of the grant.

        + */ + GrantArn: string | undefined; + + /** + *

        Grant version.

        + */ + Version?: string; +} + +export namespace GetGrantRequest { + export const filterSensitiveLog = (obj: GetGrantRequest): any => ({ + ...obj, + }); +} + +/** + *

        Describes a grant.

        + */ +export interface Grant { + /** + *

        Amazon Resource Name (ARN) of the grant.

        + */ + GrantArn: string | undefined; + + /** + *

        Grant name.

        + */ + GrantName: string | undefined; + + /** + *

        Parent ARN.

        + */ + ParentArn: string | undefined; + + /** + *

        License ARN.

        + */ + LicenseArn: string | undefined; + + /** + *

        The grantee principal ARN.

        + */ + GranteePrincipalArn: string | undefined; + + /** + *

        Home Region of the grant.

        + */ + HomeRegion: string | undefined; + + /** + *

        Grant status.

        + */ + GrantStatus: GrantStatus | string | undefined; + + /** + *

        Grant status reason.

        + */ + StatusReason?: string; + + /** + *

        Grant version.

        + */ + Version: string | undefined; + + /** + *

        Granted operations.

        + */ + GrantedOperations: (AllowedOperation | string)[] | undefined; +} + +export namespace Grant { + export const filterSensitiveLog = (obj: Grant): any => ({ + ...obj, + }); +} + +export interface GetGrantResponse { + /** + *

        Grant details.

        + */ + Grant?: Grant; +} + +export namespace GetGrantResponse { + export const filterSensitiveLog = (obj: GetGrantResponse): any => ({ + ...obj, + }); +} + +export interface GetLicenseRequest { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn: string | undefined; + + /** + *

        License version.

        + */ + Version?: string; +} + +export namespace GetLicenseRequest { + export const filterSensitiveLog = (obj: GetLicenseRequest): any => ({ + ...obj, + }); +} + +/** + *

        Details associated with the issuer of a license.

        + */ +export interface IssuerDetails { + /** + *

        Issuer name.

        + */ + Name?: string; + + /** + *

        Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, + * and support the RSASSA-PSS SHA-256 signing algorithm.

        + */ + SignKey?: string; + + /** + *

        Issuer key fingerprint.

        + */ + KeyFingerprint?: string; +} + +export namespace IssuerDetails { + export const filterSensitiveLog = (obj: IssuerDetails): any => ({ + ...obj, + }); +} + +/** + *

        Software license that is managed in AWS License Manager.

        + */ +export interface License { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn?: string; + + /** + *

        License name.

        + */ + LicenseName?: string; + + /** + *

        Product name.

        + */ + ProductName?: string; + + /** + *

        Product SKU.

        + */ + ProductSKU?: string; + + /** + *

        License issuer.

        + */ + Issuer?: IssuerDetails; + + /** + *

        Home Region of the license.

        + */ + HomeRegion?: string; + + /** + *

        License status.

        + */ + Status?: LicenseStatus | string; + + /** + *

        Date and time range during which the license is valid, in ISO8601-UTC format.

        + */ + Validity?: DatetimeRange; + + /** + *

        License beneficiary.

        + */ + Beneficiary?: string; + + /** + *

        License entitlements.

        + */ + Entitlements?: Entitlement[]; + + /** + *

        Configuration for consumption of the license.

        + */ + ConsumptionConfiguration?: ConsumptionConfiguration; + + /** + *

        License metadata.

        + */ + LicenseMetadata?: Metadata[]; + + /** + *

        License creation time.

        + */ + CreateTime?: string; + + /** + *

        License version.

        + */ + Version?: string; +} + +export namespace License { + export const filterSensitiveLog = (obj: License): any => ({ + ...obj, + }); +} + +export interface GetLicenseResponse { + /** + *

        License details.

        + */ + License?: License; +} + +export namespace GetLicenseResponse { + export const filterSensitiveLog = (obj: GetLicenseResponse): any => ({ + ...obj, + }); +} + +export interface GetLicenseConfigurationRequest { + /** + *

        Amazon Resource Name (ARN) of the license configuration.

        + */ + LicenseConfigurationArn: string | undefined; +} + +export namespace GetLicenseConfigurationRequest { + export const filterSensitiveLog = (obj: GetLicenseConfigurationRequest): any => ({ + ...obj, + }); +} + +export enum ResourceType { + EC2_AMI = "EC2_AMI", + EC2_HOST = "EC2_HOST", + EC2_INSTANCE = "EC2_INSTANCE", + RDS = "RDS", + SYSTEMS_MANAGER_MANAGED_INSTANCE = "SYSTEMS_MANAGER_MANAGED_INSTANCE", +} + +/** + *

        Details about license consumption.

        + */ +export interface ConsumedLicenseSummary { + /** + *

        Resource type of the resource consuming a license.

        + */ + ResourceType?: ResourceType | string; + + /** + *

        Number of licenses consumed by the resource.

        + */ + ConsumedLicenses?: number; +} + +export namespace ConsumedLicenseSummary { + export const filterSensitiveLog = (obj: ConsumedLicenseSummary): any => ({ + ...obj, + }); +} + +/** + *

        Summary information about a managed resource.

        + */ +export interface ManagedResourceSummary { + /** + *

        Type of resource associated with a license.

        + */ + ResourceType?: ResourceType | string; + + /** + *

        Number of resources associated with licenses.

        + */ + AssociationCount?: number; +} + +export namespace ManagedResourceSummary { + export const filterSensitiveLog = (obj: ManagedResourceSummary): any => ({ + ...obj, + }); +} + +export interface GetLicenseConfigurationResponse { + /** + *

        Unique ID for the license configuration.

        + */ + LicenseConfigurationId?: string; + + /** + *

        Amazon Resource Name (ARN) of the license configuration.

        + */ + LicenseConfigurationArn?: string; + + /** + *

        Name of the license configuration.

        + */ + Name?: string; + + /** + *

        Description of the license configuration.

        + */ + Description?: string; + + /** + *

        Dimension on which the licenses are counted.

        + */ + LicenseCountingType?: LicenseCountingType | string; + + /** + *

        License rules.

        + */ + LicenseRules?: string[]; + + /** + *

        Number of available licenses.

        + */ + LicenseCount?: number; + + /** + *

        Sets the number of available licenses as a hard limit.

        + */ + LicenseCountHardLimit?: boolean; + + /** + *

        Number of licenses assigned to resources.

        + */ + ConsumedLicenses?: number; + + /** + *

        License configuration status.

        + */ + Status?: string; + + /** + *

        Account ID of the owner of the license configuration.

        + */ + OwnerAccountId?: string; + + /** + *

        Summaries of the licenses consumed by resources.

        + */ + ConsumedLicenseSummaryList?: ConsumedLicenseSummary[]; + + /** + *

        Summaries of the managed resources.

        + */ + ManagedResourceSummaryList?: ManagedResourceSummary[]; + + /** + *

        Tags for the license configuration.

        + */ + Tags?: Tag[]; + + /** + *

        Product information.

        + */ + ProductInformationList?: ProductInformation[]; + + /** + *

        Automated discovery information.

        + */ + AutomatedDiscoveryInformation?: AutomatedDiscoveryInformation; + + /** + *

        When true, disassociates a resource when software is uninstalled.

        + */ + DisassociateWhenNotFound?: boolean; +} + +export namespace GetLicenseConfigurationResponse { + export const filterSensitiveLog = (obj: GetLicenseConfigurationResponse): any => ({ + ...obj, + }); +} + +export interface GetLicenseUsageRequest { + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn: string | undefined; +} + +export namespace GetLicenseUsageRequest { + export const filterSensitiveLog = (obj: GetLicenseUsageRequest): any => ({ + ...obj, + }); +} + +/** + *

        Usage associated with an entitlement resource.

        + */ +export interface EntitlementUsage { + /** + *

        Entitlement usage name.

        + */ + Name: string | undefined; + + /** + *

        Resource usage consumed.

        + */ + ConsumedValue: string | undefined; + + /** + *

        Maximum entitlement usage count.

        + */ + MaxCount?: string; + + /** + *

        Entitlement usage unit.

        + */ + Unit: EntitlementDataUnit | string | undefined; +} + +export namespace EntitlementUsage { + export const filterSensitiveLog = (obj: EntitlementUsage): any => ({ + ...obj, + }); +} + +/** + *

        Describes the entitlement usage associated with a license.

        + */ +export interface LicenseUsage { + /** + *

        License entitlement usages.

        + */ + EntitlementUsages?: EntitlementUsage[]; +} + +export namespace LicenseUsage { + export const filterSensitiveLog = (obj: LicenseUsage): any => ({ + ...obj, + }); +} + +export interface GetLicenseUsageResponse { + /** + *

        License usage details.

        + */ + LicenseUsage?: LicenseUsage; +} + +export namespace GetLicenseUsageResponse { + export const filterSensitiveLog = (obj: GetLicenseUsageResponse): any => ({ + ...obj, + }); +} + +export interface GetServiceSettingsRequest {} + +export namespace GetServiceSettingsRequest { + export const filterSensitiveLog = (obj: GetServiceSettingsRequest): any => ({ + ...obj, + }); +} + +/** + *

        Configuration information for AWS Organizations.

        + */ +export interface OrganizationConfiguration { + /** + *

        Enables AWS Organization integration.

        + */ + EnableIntegration: boolean | undefined; +} + +export namespace OrganizationConfiguration { + export const filterSensitiveLog = (obj: OrganizationConfiguration): any => ({ + ...obj, + }); +} + +export interface GetServiceSettingsResponse { + /** + *

        Regional S3 bucket path for storing reports, license trail event data, discovery data, + * and so on.

        + */ + S3BucketArn?: string; + + /** + *

        SNS topic configured to receive notifications from License Manager.

        + */ + SnsTopicArn?: string; + + /** + *

        Indicates whether AWS Organizations is integrated with License Manager for + * cross-account discovery.

        + */ + OrganizationConfiguration?: OrganizationConfiguration; + + /** + *

        Indicates whether cross-account discovery is enabled.

        + */ + EnableCrossAccountsDiscovery?: boolean; + + /** + *

        Amazon Resource Name (ARN) of the AWS resource share. The License Manager master account will provide member + * accounts with access to this share.

        + */ + LicenseManagerResourceShareArn?: string; +} + +export namespace GetServiceSettingsResponse { + export const filterSensitiveLog = (obj: GetServiceSettingsResponse): any => ({ + ...obj, + }); +} + +/** + *

        The request uses too many filters or too many filter values.

        + */ +export interface FilterLimitExceededException extends __SmithyException, $MetadataBearer { + name: "FilterLimitExceededException"; + $fault: "client"; + Message?: string; +} + +export namespace FilterLimitExceededException { + export const filterSensitiveLog = (obj: FilterLimitExceededException): any => ({ + ...obj, + }); +} + +export interface ListAssociationsForLicenseConfigurationRequest { + /** + *

        Amazon Resource Name (ARN) of a license configuration.

        + */ + LicenseConfigurationArn: string | undefined; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListAssociationsForLicenseConfigurationRequest { + export const filterSensitiveLog = (obj: ListAssociationsForLicenseConfigurationRequest): any => ({ ...obj, }); } /** - *

        Summary information about a managed resource.

        + *

        Describes an association with a license configuration.

        */ -export interface ManagedResourceSummary { +export interface LicenseConfigurationAssociation { /** - *

        Type of resource associated with a license.

        + *

        Amazon Resource Name (ARN) of the resource.

        + */ + ResourceArn?: string; + + /** + *

        Type of server resource.

        */ ResourceType?: ResourceType | string; /** - *

        Number of resources associated with licenses.

        + *

        ID of the AWS account that owns the resource consuming licenses.

        + */ + ResourceOwnerId?: string; + + /** + *

        Time when the license configuration was associated with the resource.

        + */ + AssociationTime?: Date; + + /** + *

        Scope of AMI associations. The possible value is cross-account.

        + */ + AmiAssociationScope?: string; +} + +export namespace LicenseConfigurationAssociation { + export const filterSensitiveLog = (obj: LicenseConfigurationAssociation): any => ({ + ...obj, + }); +} + +export interface ListAssociationsForLicenseConfigurationResponse { + /** + *

        Information about the associations for the license configuration.

        + */ + LicenseConfigurationAssociations?: LicenseConfigurationAssociation[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListAssociationsForLicenseConfigurationResponse { + export const filterSensitiveLog = (obj: ListAssociationsForLicenseConfigurationResponse): any => ({ + ...obj, + }); +} + +/** + *

        A filter name and value pair that is used to return more specific results from a + * describe operation. Filters can be used to match a set of resources by specific criteria, + * such as tags, attributes, or IDs.

        + */ +export interface Filter { + /** + *

        Name of the filter. Filter names are case-sensitive.

        + */ + Name?: string; + + /** + *

        Filter values. Filter values are case-sensitive.

        + */ + Values?: string[]; +} + +export namespace Filter { + export const filterSensitiveLog = (obj: Filter): any => ({ + ...obj, + }); +} + +export interface ListDistributedGrantsRequest { + /** + *

        Amazon Resource Names (ARNs) of the grants.

        + */ + GrantArns?: string[]; + + /** + *

        Filters to scope the results. The following filters are supported:

        + *
          + *
        • + *

          + * LicenseARN + *

          + *
        • + *
        • + *

          + * Status + *

          + *
        • + *
        • + *

          + * PrincipalARN + *

          + *
        • + *
        • + *

          + * ParentARN + *

          + *
        • + *
        + */ + Filters?: Filter[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; +} + +export namespace ListDistributedGrantsRequest { + export const filterSensitiveLog = (obj: ListDistributedGrantsRequest): any => ({ + ...obj, + }); +} + +export interface ListDistributedGrantsResponse { + /** + *

        Distributed grant details.

        + */ + Grants?: Grant[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListDistributedGrantsResponse { + export const filterSensitiveLog = (obj: ListDistributedGrantsResponse): any => ({ + ...obj, + }); +} + +export interface ListFailuresForLicenseConfigurationOperationsRequest { + /** + *

        Amazon Resource Name of the license configuration.

        + */ + LicenseConfigurationArn: string | undefined; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListFailuresForLicenseConfigurationOperationsRequest { + export const filterSensitiveLog = (obj: ListFailuresForLicenseConfigurationOperationsRequest): any => ({ + ...obj, + }); +} + +/** + *

        Describes the failure of a license operation.

        + */ +export interface LicenseOperationFailure { + /** + *

        Amazon Resource Name (ARN) of the resource.

        + */ + ResourceArn?: string; + + /** + *

        Resource type.

        + */ + ResourceType?: ResourceType | string; + + /** + *

        Error message.

        + */ + ErrorMessage?: string; + + /** + *

        Failure time.

        + */ + FailureTime?: Date; + + /** + *

        Name of the operation.

        + */ + OperationName?: string; + + /** + *

        ID of the AWS account that owns the resource.

        + */ + ResourceOwnerId?: string; + + /** + *

        The requester is "License Manager Automated Discovery".

        + */ + OperationRequestedBy?: string; + + /** + *

        Reserved.

        + */ + MetadataList?: Metadata[]; +} + +export namespace LicenseOperationFailure { + export const filterSensitiveLog = (obj: LicenseOperationFailure): any => ({ + ...obj, + }); +} + +export interface ListFailuresForLicenseConfigurationOperationsResponse { + /** + *

        License configuration operations that failed.

        + */ + LicenseOperationFailureList?: LicenseOperationFailure[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListFailuresForLicenseConfigurationOperationsResponse { + export const filterSensitiveLog = (obj: ListFailuresForLicenseConfigurationOperationsResponse): any => ({ + ...obj, + }); +} + +export interface ListLicenseConfigurationsRequest { + /** + *

        Amazon Resource Names (ARN) of the license configurations.

        + */ + LicenseConfigurationArns?: string[]; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; + + /** + *

        Filters to scope the results. The following filters and logical operators + * are supported:

        + *
          + *
        • + *

          + * licenseCountingType - The dimension on which licenses are counted. + * Possible values are vCPU | Instance | Core | Socket. + * Logical operators are EQUALS | NOT_EQUALS.

          + *
        • + *
        • + *

          + * enforceLicenseCount - A Boolean value that indicates whether hard license enforcement is used. + * Logical operators are EQUALS | NOT_EQUALS.

          + *
        • + *
        • + *

          + * usagelimitExceeded - A Boolean value that indicates whether the available licenses have been exceeded. + * Logical operators are EQUALS | NOT_EQUALS.

          + *
        • + *
        */ - AssociationCount?: number; + Filters?: Filter[]; } -export namespace ManagedResourceSummary { - export const filterSensitiveLog = (obj: ManagedResourceSummary): any => ({ +export namespace ListLicenseConfigurationsRequest { + export const filterSensitiveLog = (obj: ListLicenseConfigurationsRequest): any => ({ ...obj, }); } -export interface GetLicenseConfigurationResponse { +/** + *

        A license configuration is an abstraction of a customer license agreement that can be + * consumed and enforced by License Manager. Components include specifications for the license + * type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, + * Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM + * must be associated with a host), and the number of licenses purchased and used.

        + */ +export interface LicenseConfiguration { /** - *

        Unique ID for the license configuration.

        + *

        Unique ID of the license configuration.

        */ LicenseConfigurationId?: string; @@ -443,7 +2412,7 @@ export interface GetLicenseConfigurationResponse { Description?: string; /** - *

        Dimension on which the licenses are counted.

        + *

        Dimension to use to track the license inventory.

        */ LicenseCountingType?: LicenseCountingType | string; @@ -453,45 +2422,45 @@ export interface GetLicenseConfigurationResponse { LicenseRules?: string[]; /** - *

        Number of available licenses.

        + *

        Number of licenses managed by the license configuration.

        */ LicenseCount?: number; /** - *

        Sets the number of available licenses as a hard limit.

        + *

        Number of available licenses as a hard limit.

        */ LicenseCountHardLimit?: boolean; /** - *

        Number of licenses assigned to resources.

        + *

        When true, disassociates a resource when software is uninstalled.

        + */ + DisassociateWhenNotFound?: boolean; + + /** + *

        Number of licenses consumed.

        */ ConsumedLicenses?: number; /** - *

        License configuration status.

        + *

        Status of the license configuration.

        */ Status?: string; /** - *

        Account ID of the owner of the license configuration.

        + *

        Account ID of the license configuration's owner.

        */ OwnerAccountId?: string; /** - *

        Summaries of the licenses consumed by resources.

        + *

        Summaries for licenses consumed by various resources.

        */ ConsumedLicenseSummaryList?: ConsumedLicenseSummary[]; /** - *

        Summaries of the managed resources.

        + *

        Summaries for managed resources.

        */ ManagedResourceSummaryList?: ManagedResourceSummary[]; - /** - *

        Tags for the license configuration.

        - */ - Tags?: Tag[]; - /** *

        Product information.

        */ @@ -503,92 +2472,103 @@ export interface GetLicenseConfigurationResponse { AutomatedDiscoveryInformation?: AutomatedDiscoveryInformation; } -export namespace GetLicenseConfigurationResponse { - export const filterSensitiveLog = (obj: GetLicenseConfigurationResponse): any => ({ +export namespace LicenseConfiguration { + export const filterSensitiveLog = (obj: LicenseConfiguration): any => ({ ...obj, }); } -export interface GetServiceSettingsRequest {} - -export namespace GetServiceSettingsRequest { - export const filterSensitiveLog = (obj: GetServiceSettingsRequest): any => ({ - ...obj, - }); -} +export interface ListLicenseConfigurationsResponse { + /** + *

        Information about the license configurations.

        + */ + LicenseConfigurations?: LicenseConfiguration[]; -/** - *

        Configuration information for AWS Organizations.

        - */ -export interface OrganizationConfiguration { /** - *

        Enables AWS Organization integration.

        + *

        Token for the next set of results.

        */ - EnableIntegration: boolean | undefined; + NextToken?: string; } -export namespace OrganizationConfiguration { - export const filterSensitiveLog = (obj: OrganizationConfiguration): any => ({ +export namespace ListLicenseConfigurationsResponse { + export const filterSensitiveLog = (obj: ListLicenseConfigurationsResponse): any => ({ ...obj, }); } -export interface GetServiceSettingsResponse { - /** - *

        Regional S3 bucket path for storing reports, license trail event data, discovery data, - * and so on.

        - */ - S3BucketArn?: string; - +export interface ListLicensesRequest { /** - *

        SNS topic configured to receive notifications from License Manager.

        + *

        Amazon Resource Names (ARNs) of the licenses.

        */ - SnsTopicArn?: string; + LicenseArns?: string[]; /** - *

        Indicates whether AWS Organizations has been integrated with License Manager for - * cross-account discovery.

        + *

        Filters to scope the results. The following filters are supported:

        + *
          + *
        • + *

          + * Beneficiary + *

          + *
        • + *
        • + *

          + * ProductSKU + *

          + *
        • + *
        • + *

          + * KeyFingerprint + *

          + *
        • + *
        • + *

          + * Status + *

          + *
        • + *
        */ - OrganizationConfiguration?: OrganizationConfiguration; + Filters?: Filter[]; /** - *

        Indicates whether cross-account discovery has been enabled.

        + *

        Token for the next set of results.

        */ - EnableCrossAccountsDiscovery?: boolean; + NextToken?: string; /** - *

        Amazon Resource Name (ARN) of the AWS resource share. The License Manager master account - * will provide member accounts with access to this share.

        + *

        Maximum number of results to return in a single call.

        */ - LicenseManagerResourceShareArn?: string; + MaxResults?: number; } -export namespace GetServiceSettingsResponse { - export const filterSensitiveLog = (obj: GetServiceSettingsResponse): any => ({ +export namespace ListLicensesRequest { + export const filterSensitiveLog = (obj: ListLicensesRequest): any => ({ ...obj, }); } -/** - *

        The request uses too many filters or too many filter values.

        - */ -export interface FilterLimitExceededException extends __SmithyException, $MetadataBearer { - name: "FilterLimitExceededException"; - $fault: "client"; - Message?: string; +export interface ListLicensesResponse { + /** + *

        License details.

        + */ + Licenses?: License[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; } -export namespace FilterLimitExceededException { - export const filterSensitiveLog = (obj: FilterLimitExceededException): any => ({ +export namespace ListLicensesResponse { + export const filterSensitiveLog = (obj: ListLicensesResponse): any => ({ ...obj, }); } -export interface ListAssociationsForLicenseConfigurationRequest { +export interface ListLicenseSpecificationsForResourceRequest { /** - *

        Amazon Resource Name (ARN) of a license configuration.

        + *

        Amazon Resource Name (ARN) of a resource that has an associated license configuration.

        */ - LicenseConfigurationArn: string | undefined; + ResourceArn: string | undefined; /** *

        Maximum number of results to return in a single call.

        @@ -601,53 +2581,38 @@ export interface ListAssociationsForLicenseConfigurationRequest { NextToken?: string; } -export namespace ListAssociationsForLicenseConfigurationRequest { - export const filterSensitiveLog = (obj: ListAssociationsForLicenseConfigurationRequest): any => ({ +export namespace ListLicenseSpecificationsForResourceRequest { + export const filterSensitiveLog = (obj: ListLicenseSpecificationsForResourceRequest): any => ({ ...obj, }); } /** - *

        Describes an association with a license configuration.

        + *

        Details for associating a license configuration with a resource.

        */ -export interface LicenseConfigurationAssociation { - /** - *

        Amazon Resource Name (ARN) of the resource.

        - */ - ResourceArn?: string; - - /** - *

        Type of server resource.

        - */ - ResourceType?: ResourceType | string; - - /** - *

        ID of the AWS account that owns the resource consuming licenses.

        - */ - ResourceOwnerId?: string; - +export interface LicenseSpecification { /** - *

        Time when the license configuration was associated with the resource.

        + *

        Amazon Resource Name (ARN) of the license configuration.

        */ - AssociationTime?: Date; + LicenseConfigurationArn: string | undefined; /** - *

        Scope of AMI associations.

        + *

        Scope of AMI associations. The possible value is cross-account.

        */ AmiAssociationScope?: string; } -export namespace LicenseConfigurationAssociation { - export const filterSensitiveLog = (obj: LicenseConfigurationAssociation): any => ({ +export namespace LicenseSpecification { + export const filterSensitiveLog = (obj: LicenseSpecification): any => ({ ...obj, }); } -export interface ListAssociationsForLicenseConfigurationResponse { +export interface ListLicenseSpecificationsForResourceResponse { /** - *

        Information about the associations for the license configuration.

        + *

        License configurations associated with a resource.

        */ - LicenseConfigurationAssociations?: LicenseConfigurationAssociation[]; + LicenseSpecifications?: LicenseSpecification[]; /** *

        Token for the next set of results.

        @@ -655,356 +2620,283 @@ export interface ListAssociationsForLicenseConfigurationResponse { NextToken?: string; } -export namespace ListAssociationsForLicenseConfigurationResponse { - export const filterSensitiveLog = (obj: ListAssociationsForLicenseConfigurationResponse): any => ({ +export namespace ListLicenseSpecificationsForResourceResponse { + export const filterSensitiveLog = (obj: ListLicenseSpecificationsForResourceResponse): any => ({ ...obj, }); } -export interface ListFailuresForLicenseConfigurationOperationsRequest { +export interface ListLicenseVersionsRequest { /** - *

        Amazon Resource Name of the license configuration.

        + *

        Amazon Resource Name (ARN) of the license.

        */ - LicenseConfigurationArn: string | undefined; + LicenseArn: string | undefined; /** - *

        Maximum number of results to return in a single call.

        + *

        Token for the next set of results.

        */ - MaxResults?: number; + NextToken?: string; /** - *

        Token for the next set of results.

        + *

        Maximum number of results to return in a single call.

        */ - NextToken?: string; + MaxResults?: number; } -export namespace ListFailuresForLicenseConfigurationOperationsRequest { - export const filterSensitiveLog = (obj: ListFailuresForLicenseConfigurationOperationsRequest): any => ({ +export namespace ListLicenseVersionsRequest { + export const filterSensitiveLog = (obj: ListLicenseVersionsRequest): any => ({ ...obj, }); } -/** - *

        Reserved.

        - */ -export interface Metadata { +export interface ListLicenseVersionsResponse { /** - *

        Reserved.

        + *

        License details.

        */ - Name?: string; + Licenses?: License[]; /** - *

        Reserved.

        + *

        Token for the next set of results.

        */ - Value?: string; + NextToken?: string; } -export namespace Metadata { - export const filterSensitiveLog = (obj: Metadata): any => ({ +export namespace ListLicenseVersionsResponse { + export const filterSensitiveLog = (obj: ListLicenseVersionsResponse): any => ({ ...obj, }); } -/** - *

        Describes the failure of a license operation.

        - */ -export interface LicenseOperationFailure { - /** - *

        Amazon Resource Name (ARN) of the resource.

        - */ - ResourceArn?: string; - - /** - *

        Resource type.

        - */ - ResourceType?: ResourceType | string; - - /** - *

        Error message.

        - */ - ErrorMessage?: string; - - /** - *

        Failure time.

        - */ - FailureTime?: Date; - - /** - *

        Name of the operation.

        - */ - OperationName?: string; - - /** - *

        ID of the AWS account that owns the resource.

        - */ - ResourceOwnerId?: string; - - /** - *

        The requester is "License Manager Automated Discovery".

        - */ - OperationRequestedBy?: string; - +export interface ListReceivedGrantsRequest { /** - *

        Reserved.

        + *

        Amazon Resource Names (ARNs) of the grants.

        */ - MetadataList?: Metadata[]; -} - -export namespace LicenseOperationFailure { - export const filterSensitiveLog = (obj: LicenseOperationFailure): any => ({ - ...obj, - }); -} + GrantArns?: string[]; -export interface ListFailuresForLicenseConfigurationOperationsResponse { /** - *

        License configuration operations that failed.

        + *

        Filters to scope the results. The following filters are supported:

        + *
          + *
        • + *

          + * LicenseARN + *

          + *
        • + *
        • + *

          + * Status + *

          + *
        • + *
        */ - LicenseOperationFailureList?: LicenseOperationFailure[]; + Filters?: Filter[]; /** *

        Token for the next set of results.

        */ NextToken?: string; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; } -export namespace ListFailuresForLicenseConfigurationOperationsResponse { - export const filterSensitiveLog = (obj: ListFailuresForLicenseConfigurationOperationsResponse): any => ({ +export namespace ListReceivedGrantsRequest { + export const filterSensitiveLog = (obj: ListReceivedGrantsRequest): any => ({ ...obj, }); } -/** - *

        A filter name and value pair that is used to return more specific results from a - * describe operation. Filters can be used to match a set of resources by specific criteria, - * such as tags, attributes, or IDs.

        - */ -export interface Filter { +export interface ListReceivedGrantsResponse { /** - *

        Name of the filter. Filter names are case-sensitive.

        + *

        Received grant details.

        */ - Name?: string; + Grants?: Grant[]; /** - *

        Filter values. Filter values are case-sensitive.

        + *

        Token for the next set of results.

        */ - Values?: string[]; + NextToken?: string; } -export namespace Filter { - export const filterSensitiveLog = (obj: Filter): any => ({ +export namespace ListReceivedGrantsResponse { + export const filterSensitiveLog = (obj: ListReceivedGrantsResponse): any => ({ ...obj, }); } -export interface ListLicenseConfigurationsRequest { - /** - *

        Amazon Resource Names (ARN) of the license configurations.

        - */ - LicenseConfigurationArns?: string[]; - - /** - *

        Maximum number of results to return in a single call.

        - */ - MaxResults?: number; - +export interface ListReceivedLicensesRequest { /** - *

        Token for the next set of results.

        + *

        Amazon Resource Names (ARNs) of the licenses.

        */ - NextToken?: string; + LicenseArns?: string[]; /** - *

        Filters to scope the results. The following filters and logical operators are - * supported:

        + *

        Filters to scope the results. The following filters are supported:

        *
          *
        • *

          - * licenseCountingType - The dimension on which licenses are counted. - * Possible values are vCPU | Instance | Core | - * Socket. Logical operators are EQUALS | - * NOT_EQUALS.

          + * ProductSKU + *

          + *
        • + *
        • + *

          + * Status + *

          *
        • *
        • *

          - * enforceLicenseCount - A Boolean value that indicates whether hard - * license enforcement is used. Logical operators are EQUALS | - * NOT_EQUALS.

          + * KeyFingerprint + *

          *
        • *
        • *

          - * usagelimitExceeded - A Boolean value that indicates whether the - * available licenses have been exceeded. Logical operators are EQUALS | - * NOT_EQUALS.

          + * Issuer + *

          *
        • *
        */ Filters?: Filter[]; -} - -export namespace ListLicenseConfigurationsRequest { - export const filterSensitiveLog = (obj: ListLicenseConfigurationsRequest): any => ({ - ...obj, - }); -} -/** - *

        A license configuration is an abstraction of a customer license agreement that can be - * consumed and enforced by License Manager. Components include specifications for the license - * type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, - * Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM must be - * associated with a host), and the number of licenses purchased and used.

        - */ -export interface LicenseConfiguration { /** - *

        Unique ID of the license configuration.

        + *

        Token for the next set of results.

        */ - LicenseConfigurationId?: string; + NextToken?: string; /** - *

        Amazon Resource Name (ARN) of the license configuration.

        + *

        Maximum number of results to return in a single call.

        */ - LicenseConfigurationArn?: string; + MaxResults?: number; +} - /** - *

        Name of the license configuration.

        - */ - Name?: string; +export namespace ListReceivedLicensesRequest { + export const filterSensitiveLog = (obj: ListReceivedLicensesRequest): any => ({ + ...obj, + }); +} - /** - *

        Description of the license configuration.

        - */ - Description?: string; +export enum ReceivedStatus { + ACTIVE = "ACTIVE", + DELETED = "DELETED", + DISABLED = "DISABLED", + FAILED_WORKFLOW = "FAILED_WORKFLOW", + PENDING_ACCEPT = "PENDING_ACCEPT", + PENDING_WORKFLOW = "PENDING_WORKFLOW", + REJECTED = "REJECTED", +} +/** + *

        Metadata associated with received licenses and grants.

        + */ +export interface ReceivedMetadata { /** - *

        Dimension to use to track the license inventory.

        + *

        Received status.

        */ - LicenseCountingType?: LicenseCountingType | string; + ReceivedStatus?: ReceivedStatus | string; /** - *

        License rules.

        + *

        Allowed operations.

        */ - LicenseRules?: string[]; + AllowedOperations?: (AllowedOperation | string)[]; +} - /** - *

        Number of licenses managed by the license configuration.

        - */ - LicenseCount?: number; +export namespace ReceivedMetadata { + export const filterSensitiveLog = (obj: ReceivedMetadata): any => ({ + ...obj, + }); +} +/** + *

        Describes a license that is granted to a grantee.

        + */ +export interface GrantedLicense { /** - *

        Number of available licenses as a hard limit.

        + *

        Amazon Resource Name (ARN) of the license.

        */ - LicenseCountHardLimit?: boolean; + LicenseArn?: string; /** - *

        Number of licenses consumed.

        + *

        License name.

        */ - ConsumedLicenses?: number; + LicenseName?: string; /** - *

        Status of the license configuration.

        + *

        Product name.

        */ - Status?: string; + ProductName?: string; /** - *

        Account ID of the license configuration's owner.

        + *

        Product SKU.

        */ - OwnerAccountId?: string; + ProductSKU?: string; /** - *

        Summaries for licenses consumed by various resources.

        + *

        Granted license issuer.

        */ - ConsumedLicenseSummaryList?: ConsumedLicenseSummary[]; + Issuer?: IssuerDetails; /** - *

        Summaries for managed resources.

        + *

        Home Region of the granted license.

        */ - ManagedResourceSummaryList?: ManagedResourceSummary[]; + HomeRegion?: string; /** - *

        Product information.

        + *

        Granted license status.

        */ - ProductInformationList?: ProductInformation[]; + Status?: LicenseStatus | string; /** - *

        Automated discovery information.

        + *

        Date and time range during which the granted license is valid, in ISO8601-UTC format.

        */ - AutomatedDiscoveryInformation?: AutomatedDiscoveryInformation; -} - -export namespace LicenseConfiguration { - export const filterSensitiveLog = (obj: LicenseConfiguration): any => ({ - ...obj, - }); -} + Validity?: DatetimeRange; -export interface ListLicenseConfigurationsResponse { /** - *

        Information about the license configurations.

        + *

        Granted license beneficiary.

        */ - LicenseConfigurations?: LicenseConfiguration[]; + Beneficiary?: string; /** - *

        Token for the next set of results.

        + *

        License entitlements.

        */ - NextToken?: string; -} - -export namespace ListLicenseConfigurationsResponse { - export const filterSensitiveLog = (obj: ListLicenseConfigurationsResponse): any => ({ - ...obj, - }); -} + Entitlements?: Entitlement[]; -export interface ListLicenseSpecificationsForResourceRequest { /** - *

        Amazon Resource Name (ARN) of a resource that has an associated license - * configuration.

        + *

        Configuration for consumption of the license.

        */ - ResourceArn: string | undefined; + ConsumptionConfiguration?: ConsumptionConfiguration; /** - *

        Maximum number of results to return in a single call.

        + *

        Granted license metadata.

        */ - MaxResults?: number; + LicenseMetadata?: Metadata[]; /** - *

        Token for the next set of results.

        + *

        Creation time of the granted license.

        */ - NextToken?: string; -} - -export namespace ListLicenseSpecificationsForResourceRequest { - export const filterSensitiveLog = (obj: ListLicenseSpecificationsForResourceRequest): any => ({ - ...obj, - }); -} + CreateTime?: string; -/** - *

        Details for associating a license configuration with a resource.

        - */ -export interface LicenseSpecification { /** - *

        Amazon Resource Name (ARN) of the license configuration.

        + *

        Version of the granted license.

        */ - LicenseConfigurationArn: string | undefined; + Version?: string; /** - *

        Scope of AMI associations.

        + *

        Granted license received metadata.

        */ - AmiAssociationScope?: string; + ReceivedMetadata?: ReceivedMetadata; } -export namespace LicenseSpecification { - export const filterSensitiveLog = (obj: LicenseSpecification): any => ({ +export namespace GrantedLicense { + export const filterSensitiveLog = (obj: GrantedLicense): any => ({ ...obj, }); } -export interface ListLicenseSpecificationsForResourceResponse { +export interface ListReceivedLicensesResponse { /** - *

        License configurations associated with a resource.

        + *

        Received license details.

        */ - LicenseSpecifications?: LicenseSpecification[]; + Licenses?: GrantedLicense[]; /** *

        Token for the next set of results.

        @@ -1012,8 +2904,8 @@ export interface ListLicenseSpecificationsForResourceResponse { NextToken?: string; } -export namespace ListLicenseSpecificationsForResourceResponse { - export const filterSensitiveLog = (obj: ListLicenseSpecificationsForResourceResponse): any => ({ +export namespace ListReceivedLicensesResponse { + export const filterSensitiveLog = (obj: ListReceivedLicensesResponse): any => ({ ...obj, }); } @@ -1025,6 +2917,7 @@ export interface FailedDependencyException extends __SmithyException, $MetadataB name: "FailedDependencyException"; $fault: "client"; Message?: string; + ErrorCode?: string; } export namespace FailedDependencyException { @@ -1078,8 +2971,8 @@ export interface ListResourceInventoryRequest { NextToken?: string; /** - *

        Filters to scope the results. The following filters and logical operators are - * supported:

        + *

        Filters to scope the results. The following filters and logical operators + * are supported:

        *
          *
        • *

          @@ -1088,25 +2981,33 @@ export interface ListResourceInventoryRequest { *

        • *
        • *

          - * application_name - The name of the application. Logical operators are - * EQUALS | BEGINS_WITH.

          + * application_name - The name of the application. + * Logical operators are EQUALS | BEGINS_WITH.

          + *
        • + *
        • + *

          + * license_included - The type of license included. + * Logical operators are EQUALS | NOT_EQUALS. + * Possible values are sql-server-enterprise | + * sql-server-standard | + * sql-server-web | + * windows-server-datacenter.

          *
        • *
        • *

          - * license_included - The type of license included. Logical operators - * are EQUALS | NOT_EQUALS. Possible values are - * sql-server-enterprise | sql-server-standard | - * sql-server-web | windows-server-datacenter.

          + * platform - The platform of the resource. + * Logical operators are EQUALS | BEGINS_WITH.

          *
        • *
        • *

          - * platform - The platform of the resource. Logical operators are - * EQUALS | BEGINS_WITH.

          + * resource_id - The ID of the resource. + * Logical operators are EQUALS | NOT_EQUALS.

          *
        • *
        • *

          - * resource_id - The ID of the resource. Logical operators are - * EQUALS | NOT_EQUALS.

          + * tag: - The key/value combination of a tag assigned + * to the resource. Logical operators are EQUALS (single account) or + * EQUALS | NOT_EQUALS (cross account).

          *
        • *
        */ @@ -1204,6 +3105,105 @@ export namespace ListTagsForResourceResponse { }); } +export interface ListTokensRequest { + /** + *

        Token IDs.

        + */ + TokenIds?: string[]; + + /** + *

        Filters to scope the results. The following filter is supported:

        + *
          + *
        • + *

          + * licenseArns + *

          + *
        • + *
        + */ + Filters?: Filter[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; + + /** + *

        Maximum number of results to return in a single call.

        + */ + MaxResults?: number; +} + +export namespace ListTokensRequest { + export const filterSensitiveLog = (obj: ListTokensRequest): any => ({ + ...obj, + }); +} + +/** + *

        Describes a token.

        + */ +export interface TokenData { + /** + *

        Token ID.

        + */ + TokenId?: string; + + /** + *

        Type of token generated. The supported value is REFRESH_TOKEN.

        + */ + TokenType?: string; + + /** + *

        Amazon Resource Name (ARN) of the license.

        + */ + LicenseArn?: string; + + /** + *

        Token expiration time, in ISO8601-UTC format.

        + */ + ExpirationTime?: string; + + /** + *

        Data specified by the caller.

        + */ + TokenProperties?: string[]; + + /** + *

        Amazon Resource Names (ARN) of the roles included in the token.

        + */ + RoleArns?: string[]; + + /** + *

        Token status. The possible values are AVAILABLE and DELETED.

        + */ + Status?: string; +} + +export namespace TokenData { + export const filterSensitiveLog = (obj: TokenData): any => ({ + ...obj, + }); +} + +export interface ListTokensResponse { + /** + *

        Received token details.

        + */ + Tokens?: TokenData[]; + + /** + *

        Token for the next set of results.

        + */ + NextToken?: string; +} + +export namespace ListTokensResponse { + export const filterSensitiveLog = (obj: ListTokensResponse): any => ({ + ...obj, + }); +} + export interface ListUsageForLicenseConfigurationRequest { /** *

        Amazon Resource Name (ARN) of the license configuration.

        @@ -1221,19 +3221,18 @@ export interface ListUsageForLicenseConfigurationRequest { NextToken?: string; /** - *

        Filters to scope the results. The following filters and logical operators are - * supported:

        + *

        Filters to scope the results. The following filters and logical operators + * are supported:

        *
          *
        • *

          - * resourceArn - The ARN of the license configuration resource. Logical - * operators are EQUALS | NOT_EQUALS.

          + * resourceArn - The ARN of the license configuration resource. + * Logical operators are EQUALS | NOT_EQUALS.

          *
        • *
        • *

          - * resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI | - * SYSTEMS_MANAGER_MANAGED_INSTANCE). Logical operators are EQUALS | - * NOT_EQUALS.

          + * resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI | SYSTEMS_MANAGER_MANAGED_INSTANCE). + * Logical operators are EQUALS | NOT_EQUALS.

          *
        • *
        • *

          @@ -1310,6 +3309,42 @@ export namespace ListUsageForLicenseConfigurationResponse { }); } +export interface RejectGrantRequest { + /** + *

          Amazon Resource Name (ARN) of the grant.

          + */ + GrantArn: string | undefined; +} + +export namespace RejectGrantRequest { + export const filterSensitiveLog = (obj: RejectGrantRequest): any => ({ + ...obj, + }); +} + +export interface RejectGrantResponse { + /** + *

          Grant ARN.

          + */ + GrantArn?: string; + + /** + *

          Grant status.

          + */ + Status?: GrantStatus | string; + + /** + *

          Grant version.

          + */ + Version?: string; +} + +export namespace RejectGrantResponse { + export const filterSensitiveLog = (obj: RejectGrantResponse): any => ({ + ...obj, + }); +} + export interface TagResourceRequest { /** *

          Amazon Resource Name (ARN) of the license configuration.

          @@ -1380,7 +3415,7 @@ export interface UpdateLicenseConfigurationRequest { /** *

          New license rule. The only rule that you can add after you create a license - * configuration is licenseAffinityToHost.

          + * configuration is licenseAffinityToHost.

          */ LicenseRules?: string[]; @@ -1408,6 +3443,11 @@ export interface UpdateLicenseConfigurationRequest { *

          New product information.

          */ ProductInformationList?: ProductInformation[]; + + /** + *

          When true, disassociates a resource when software is uninstalled.

          + */ + DisassociateWhenNotFound?: boolean; } export namespace UpdateLicenseConfigurationRequest { @@ -1489,8 +3529,7 @@ export namespace UpdateLicenseSpecificationsForResourceResponse { export interface UpdateServiceSettingsRequest { /** - *

          Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is - * stored.

          + *

          Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is stored.

          */ S3BucketArn?: string; diff --git a/clients/client-license-manager/protocols/Aws_json1_1.ts b/clients/client-license-manager/protocols/Aws_json1_1.ts index 6a24b29358c91..f5a18a1f20504 100644 --- a/clients/client-license-manager/protocols/Aws_json1_1.ts +++ b/clients/client-license-manager/protocols/Aws_json1_1.ts @@ -1,20 +1,50 @@ +import { AcceptGrantCommandInput, AcceptGrantCommandOutput } from "../commands/AcceptGrantCommand"; +import { CheckInLicenseCommandInput, CheckInLicenseCommandOutput } from "../commands/CheckInLicenseCommand"; +import { + CheckoutBorrowLicenseCommandInput, + CheckoutBorrowLicenseCommandOutput, +} from "../commands/CheckoutBorrowLicenseCommand"; +import { CheckoutLicenseCommandInput, CheckoutLicenseCommandOutput } from "../commands/CheckoutLicenseCommand"; +import { CreateGrantCommandInput, CreateGrantCommandOutput } from "../commands/CreateGrantCommand"; +import { CreateGrantVersionCommandInput, CreateGrantVersionCommandOutput } from "../commands/CreateGrantVersionCommand"; +import { CreateLicenseCommandInput, CreateLicenseCommandOutput } from "../commands/CreateLicenseCommand"; import { CreateLicenseConfigurationCommandInput, CreateLicenseConfigurationCommandOutput, } from "../commands/CreateLicenseConfigurationCommand"; +import { + CreateLicenseVersionCommandInput, + CreateLicenseVersionCommandOutput, +} from "../commands/CreateLicenseVersionCommand"; +import { CreateTokenCommandInput, CreateTokenCommandOutput } from "../commands/CreateTokenCommand"; +import { DeleteGrantCommandInput, DeleteGrantCommandOutput } from "../commands/DeleteGrantCommand"; +import { DeleteLicenseCommandInput, DeleteLicenseCommandOutput } from "../commands/DeleteLicenseCommand"; import { DeleteLicenseConfigurationCommandInput, DeleteLicenseConfigurationCommandOutput, } from "../commands/DeleteLicenseConfigurationCommand"; +import { DeleteTokenCommandInput, DeleteTokenCommandOutput } from "../commands/DeleteTokenCommand"; +import { + ExtendLicenseConsumptionCommandInput, + ExtendLicenseConsumptionCommandOutput, +} from "../commands/ExtendLicenseConsumptionCommand"; +import { GetAccessTokenCommandInput, GetAccessTokenCommandOutput } from "../commands/GetAccessTokenCommand"; +import { GetGrantCommandInput, GetGrantCommandOutput } from "../commands/GetGrantCommand"; +import { GetLicenseCommandInput, GetLicenseCommandOutput } from "../commands/GetLicenseCommand"; import { GetLicenseConfigurationCommandInput, GetLicenseConfigurationCommandOutput, } from "../commands/GetLicenseConfigurationCommand"; +import { GetLicenseUsageCommandInput, GetLicenseUsageCommandOutput } from "../commands/GetLicenseUsageCommand"; import { GetServiceSettingsCommandInput, GetServiceSettingsCommandOutput } from "../commands/GetServiceSettingsCommand"; import { ListAssociationsForLicenseConfigurationCommandInput, ListAssociationsForLicenseConfigurationCommandOutput, } from "../commands/ListAssociationsForLicenseConfigurationCommand"; +import { + ListDistributedGrantsCommandInput, + ListDistributedGrantsCommandOutput, +} from "../commands/ListDistributedGrantsCommand"; import { ListFailuresForLicenseConfigurationOperationsCommandInput, ListFailuresForLicenseConfigurationOperationsCommandOutput, @@ -27,6 +57,16 @@ import { ListLicenseSpecificationsForResourceCommandInput, ListLicenseSpecificationsForResourceCommandOutput, } from "../commands/ListLicenseSpecificationsForResourceCommand"; +import { + ListLicenseVersionsCommandInput, + ListLicenseVersionsCommandOutput, +} from "../commands/ListLicenseVersionsCommand"; +import { ListLicensesCommandInput, ListLicensesCommandOutput } from "../commands/ListLicensesCommand"; +import { ListReceivedGrantsCommandInput, ListReceivedGrantsCommandOutput } from "../commands/ListReceivedGrantsCommand"; +import { + ListReceivedLicensesCommandInput, + ListReceivedLicensesCommandOutput, +} from "../commands/ListReceivedLicensesCommand"; import { ListResourceInventoryCommandInput, ListResourceInventoryCommandOutput, @@ -35,10 +75,12 @@ import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "../commands/ListTagsForResourceCommand"; +import { ListTokensCommandInput, ListTokensCommandOutput } from "../commands/ListTokensCommand"; import { ListUsageForLicenseConfigurationCommandInput, ListUsageForLicenseConfigurationCommandOutput, } from "../commands/ListUsageForLicenseConfigurationCommand"; +import { RejectGrantCommandInput, RejectGrantCommandOutput } from "../commands/RejectGrantCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { @@ -54,56 +96,126 @@ import { UpdateServiceSettingsCommandOutput, } from "../commands/UpdateServiceSettingsCommand"; import { + AcceptGrantRequest, + AcceptGrantResponse, AccessDeniedException, + AllowedOperation, AuthorizationException, AutomatedDiscoveryInformation, + BorrowConfiguration, + CheckInLicenseRequest, + CheckInLicenseResponse, + CheckoutBorrowLicenseRequest, + CheckoutBorrowLicenseResponse, + CheckoutLicenseRequest, + CheckoutLicenseResponse, + ConflictException, ConsumedLicenseSummary, + ConsumptionConfiguration, + CreateGrantRequest, + CreateGrantResponse, + CreateGrantVersionRequest, + CreateGrantVersionResponse, CreateLicenseConfigurationRequest, CreateLicenseConfigurationResponse, + CreateLicenseRequest, + CreateLicenseResponse, + CreateLicenseVersionRequest, + CreateLicenseVersionResponse, + CreateTokenRequest, + CreateTokenResponse, + DatetimeRange, + DeleteGrantRequest, + DeleteGrantResponse, DeleteLicenseConfigurationRequest, DeleteLicenseConfigurationResponse, + DeleteLicenseRequest, + DeleteLicenseResponse, + DeleteTokenRequest, + DeleteTokenResponse, + Entitlement, + EntitlementData, + EntitlementNotAllowedException, + EntitlementUsage, + ExtendLicenseConsumptionRequest, + ExtendLicenseConsumptionResponse, FailedDependencyException, Filter, FilterLimitExceededException, + GetAccessTokenRequest, + GetAccessTokenResponse, + GetGrantRequest, + GetGrantResponse, GetLicenseConfigurationRequest, GetLicenseConfigurationResponse, + GetLicenseRequest, + GetLicenseResponse, + GetLicenseUsageRequest, + GetLicenseUsageResponse, GetServiceSettingsRequest, GetServiceSettingsResponse, + Grant, + GrantedLicense, InvalidParameterValueException, InvalidResourceStateException, InventoryFilter, + Issuer, + IssuerDetails, + License, LicenseConfiguration, LicenseConfigurationAssociation, LicenseConfigurationUsage, LicenseOperationFailure, LicenseSpecification, + LicenseUsage, LicenseUsageException, ListAssociationsForLicenseConfigurationRequest, ListAssociationsForLicenseConfigurationResponse, + ListDistributedGrantsRequest, + ListDistributedGrantsResponse, ListFailuresForLicenseConfigurationOperationsRequest, ListFailuresForLicenseConfigurationOperationsResponse, ListLicenseConfigurationsRequest, ListLicenseConfigurationsResponse, ListLicenseSpecificationsForResourceRequest, ListLicenseSpecificationsForResourceResponse, + ListLicenseVersionsRequest, + ListLicenseVersionsResponse, + ListLicensesRequest, + ListLicensesResponse, + ListReceivedGrantsRequest, + ListReceivedGrantsResponse, + ListReceivedLicensesRequest, + ListReceivedLicensesResponse, ListResourceInventoryRequest, ListResourceInventoryResponse, ListTagsForResourceRequest, ListTagsForResourceResponse, + ListTokensRequest, + ListTokensResponse, ListUsageForLicenseConfigurationRequest, ListUsageForLicenseConfigurationResponse, ManagedResourceSummary, Metadata, + NoEntitlementsAllowedException, OrganizationConfiguration, ProductInformation, ProductInformationFilter, + ProvisionalConfiguration, RateLimitExceededException, + ReceivedMetadata, + RedirectException, + RejectGrantRequest, + RejectGrantResponse, ResourceInventory, ResourceLimitExceededException, + ResourceNotFoundException, ServerInternalException, Tag, TagResourceRequest, TagResourceResponse, + TokenData, + UnsupportedDigitalSignatureMethodException, UntagResourceRequest, UntagResourceResponse, UpdateLicenseConfigurationRequest, @@ -112,6 +224,7 @@ import { UpdateLicenseSpecificationsForResourceResponse, UpdateServiceSettingsRequest, UpdateServiceSettingsResponse, + ValidationException, } from "../models/models_0"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; @@ -123,6 +236,97 @@ import { SerdeContext as __SerdeContext, } from "@aws-sdk/types"; +export const serializeAws_json1_1AcceptGrantCommand = async ( + input: AcceptGrantCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.AcceptGrant", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1AcceptGrantRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CheckInLicenseCommand = async ( + input: CheckInLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CheckInLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CheckInLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CheckoutBorrowLicenseCommand = async ( + input: CheckoutBorrowLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CheckoutBorrowLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CheckoutBorrowLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CheckoutLicenseCommand = async ( + input: CheckoutLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CheckoutLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CheckoutLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateGrantCommand = async ( + input: CreateGrantCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CreateGrant", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateGrantRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateGrantVersionCommand = async ( + input: CreateGrantVersionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CreateGrantVersion", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateGrantVersionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateLicenseCommand = async ( + input: CreateLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CreateLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateLicenseConfigurationCommand = async ( input: CreateLicenseConfigurationCommandInput, context: __SerdeContext @@ -136,6 +340,58 @@ export const serializeAws_json1_1CreateLicenseConfigurationCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateLicenseVersionCommand = async ( + input: CreateLicenseVersionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CreateLicenseVersion", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateLicenseVersionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateTokenCommand = async ( + input: CreateTokenCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.CreateToken", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateTokenRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteGrantCommand = async ( + input: DeleteGrantCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.DeleteGrant", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteGrantRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteLicenseCommand = async ( + input: DeleteLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.DeleteLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteLicenseConfigurationCommand = async ( input: DeleteLicenseConfigurationCommandInput, context: __SerdeContext @@ -149,6 +405,71 @@ export const serializeAws_json1_1DeleteLicenseConfigurationCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteTokenCommand = async ( + input: DeleteTokenCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.DeleteToken", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteTokenRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ExtendLicenseConsumptionCommand = async ( + input: ExtendLicenseConsumptionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ExtendLicenseConsumption", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ExtendLicenseConsumptionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1GetAccessTokenCommand = async ( + input: GetAccessTokenCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.GetAccessToken", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetAccessTokenRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1GetGrantCommand = async ( + input: GetGrantCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.GetGrant", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetGrantRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1GetLicenseCommand = async ( + input: GetLicenseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.GetLicense", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetLicenseRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1GetLicenseConfigurationCommand = async ( input: GetLicenseConfigurationCommandInput, context: __SerdeContext @@ -162,6 +483,19 @@ export const serializeAws_json1_1GetLicenseConfigurationCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1GetLicenseUsageCommand = async ( + input: GetLicenseUsageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.GetLicenseUsage", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetLicenseUsageRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1GetServiceSettingsCommand = async ( input: GetServiceSettingsCommandInput, context: __SerdeContext @@ -188,6 +522,19 @@ export const serializeAws_json1_1ListAssociationsForLicenseConfigurationCommand return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListDistributedGrantsCommand = async ( + input: ListDistributedGrantsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListDistributedGrants", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListDistributedGrantsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand = async ( input: ListFailuresForLicenseConfigurationOperationsCommandInput, context: __SerdeContext @@ -214,6 +561,19 @@ export const serializeAws_json1_1ListLicenseConfigurationsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListLicensesCommand = async ( + input: ListLicensesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListLicenses", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListLicensesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListLicenseSpecificationsForResourceCommand = async ( input: ListLicenseSpecificationsForResourceCommandInput, context: __SerdeContext @@ -227,6 +587,45 @@ export const serializeAws_json1_1ListLicenseSpecificationsForResourceCommand = a return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListLicenseVersionsCommand = async ( + input: ListLicenseVersionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListLicenseVersions", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListLicenseVersionsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListReceivedGrantsCommand = async ( + input: ListReceivedGrantsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListReceivedGrants", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListReceivedGrantsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListReceivedLicensesCommand = async ( + input: ListReceivedLicensesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListReceivedLicenses", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListReceivedLicensesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListResourceInventoryCommand = async ( input: ListResourceInventoryCommandInput, context: __SerdeContext @@ -253,6 +652,19 @@ export const serializeAws_json1_1ListTagsForResourceCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListTokensCommand = async ( + input: ListTokensCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.ListTokens", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListTokensRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListUsageForLicenseConfigurationCommand = async ( input: ListUsageForLicenseConfigurationCommandInput, context: __SerdeContext @@ -266,6 +678,19 @@ export const serializeAws_json1_1ListUsageForLicenseConfigurationCommand = async return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1RejectGrantCommand = async ( + input: RejectGrantCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AWSLicenseManager.RejectGrant", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1RejectGrantRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1TagResourceCommand = async ( input: TagResourceCommandInput, context: __SerdeContext @@ -331,27 +756,27 @@ export const serializeAws_json1_1UpdateServiceSettingsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; -export const deserializeAws_json1_1CreateLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1AcceptGrantCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1AcceptGrantCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateLicenseConfigurationResponse(data, context); - const response: CreateLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1AcceptGrantResponse(data, context); + const response: AcceptGrantCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1AcceptGrantCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -409,6 +834,14 @@ const deserializeAws_json1_1CreateLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -426,27 +859,27 @@ const deserializeAws_json1_1CreateLicenseConfigurationCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1CheckInLicenseCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1CheckInLicenseCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DeleteLicenseConfigurationResponse(data, context); - const response: DeleteLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1CheckInLicenseResponse(data, context); + const response: CheckInLicenseCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1CheckInLicenseCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -472,10 +905,10 @@ const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidParameterValueException": - case "com.amazonaws.licensemanager#InvalidParameterValueException": + case "ConflictException": + case "com.amazonaws.licensemanager#ConflictException": response = { - ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -488,6 +921,14 @@ const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -496,6 +937,14 @@ const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -513,27 +962,27 @@ const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1GetLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1CheckoutBorrowLicenseCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1GetLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1CheckoutBorrowLicenseCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1GetLicenseConfigurationResponse(data, context); - const response: GetLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1CheckoutBorrowLicenseResponse(data, context); + const response: CheckoutBorrowLicenseCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1CheckoutBorrowLicenseCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -559,10 +1008,18 @@ const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidParameterValueException": - case "com.amazonaws.licensemanager#InvalidParameterValueException": + case "EntitlementNotAllowedException": + case "com.amazonaws.licensemanager#EntitlementNotAllowedException": response = { - ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1EntitlementNotAllowedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NoEntitlementsAllowedException": + case "com.amazonaws.licensemanager#NoEntitlementsAllowedException": + response = { + ...(await deserializeAws_json1_1NoEntitlementsAllowedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -575,6 +1032,22 @@ const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": + response = { + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -583,6 +1056,22 @@ const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "UnsupportedDigitalSignatureMethodException": + case "com.amazonaws.licensemanager#UnsupportedDigitalSignatureMethodException": + response = { + ...(await deserializeAws_json1_1UnsupportedDigitalSignatureMethodExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -600,27 +1089,27 @@ const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1GetServiceSettingsCommand = async ( +export const deserializeAws_json1_1CheckoutLicenseCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1GetServiceSettingsCommandError(output, context); + return deserializeAws_json1_1CheckoutLicenseCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1GetServiceSettingsResponse(data, context); - const response: GetServiceSettingsCommandOutput = { + contents = deserializeAws_json1_1CheckoutLicenseResponse(data, context); + const response: CheckoutLicenseCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1GetServiceSettingsCommandError = async ( +const deserializeAws_json1_1CheckoutLicenseCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -646,6 +1135,14 @@ const deserializeAws_json1_1GetServiceSettingsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "NoEntitlementsAllowedException": + case "com.amazonaws.licensemanager#NoEntitlementsAllowedException": + response = { + ...(await deserializeAws_json1_1NoEntitlementsAllowedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "RateLimitExceededException": case "com.amazonaws.licensemanager#RateLimitExceededException": response = { @@ -654,6 +1151,22 @@ const deserializeAws_json1_1GetServiceSettingsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": + response = { + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -662,6 +1175,22 @@ const deserializeAws_json1_1GetServiceSettingsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "UnsupportedDigitalSignatureMethodException": + case "com.amazonaws.licensemanager#UnsupportedDigitalSignatureMethodException": + response = { + ...(await deserializeAws_json1_1UnsupportedDigitalSignatureMethodExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -679,27 +1208,27 @@ const deserializeAws_json1_1GetServiceSettingsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1CreateGrantCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1CreateGrantCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListAssociationsForLicenseConfigurationResponse(data, context); - const response: ListAssociationsForLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1CreateGrantResponse(data, context); + const response: CreateGrantCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1CreateGrantCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -725,14 +1254,6 @@ const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError $metadata: deserializeMetadata(output), }; break; - case "FilterLimitExceededException": - case "com.amazonaws.licensemanager#FilterLimitExceededException": - response = { - ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InvalidParameterValueException": case "com.amazonaws.licensemanager#InvalidParameterValueException": response = { @@ -749,6 +1270,14 @@ const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError $metadata: deserializeMetadata(output), }; break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -757,6 +1286,14 @@ const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -774,27 +1311,27 @@ const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand = async ( +export const deserializeAws_json1_1CreateGrantVersionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommandError(output, context); + return deserializeAws_json1_1CreateGrantVersionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsResponse(data, context); - const response: ListFailuresForLicenseConfigurationOperationsCommandOutput = { + contents = deserializeAws_json1_1CreateGrantVersionResponse(data, context); + const response: CreateGrantVersionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommandError = async ( +const deserializeAws_json1_1CreateGrantVersionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -836,6 +1373,14 @@ const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand $metadata: deserializeMetadata(output), }; break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -844,6 +1389,14 @@ const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -861,27 +1414,27 @@ const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListLicenseConfigurationsCommand = async ( +export const deserializeAws_json1_1CreateLicenseCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListLicenseConfigurationsCommandError(output, context); + return deserializeAws_json1_1CreateLicenseCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListLicenseConfigurationsResponse(data, context); - const response: ListLicenseConfigurationsCommandOutput = { + contents = deserializeAws_json1_1CreateLicenseResponse(data, context); + const response: CreateLicenseCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( +const deserializeAws_json1_1CreateLicenseCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -907,14 +1460,6 @@ const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "FilterLimitExceededException": - case "com.amazonaws.licensemanager#FilterLimitExceededException": - response = { - ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InvalidParameterValueException": case "com.amazonaws.licensemanager#InvalidParameterValueException": response = { @@ -931,6 +1476,14 @@ const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": + response = { + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -939,6 +1492,14 @@ const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -956,27 +1517,27 @@ const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommand = async ( +export const deserializeAws_json1_1CreateLicenseConfigurationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError(output, context); + return deserializeAws_json1_1CreateLicenseConfigurationCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListLicenseSpecificationsForResourceResponse(data, context); - const response: ListLicenseSpecificationsForResourceCommandOutput = { + contents = deserializeAws_json1_1CreateLicenseConfigurationResponse(data, context); + const response: CreateLicenseConfigurationCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError = async ( +const deserializeAws_json1_1CreateLicenseConfigurationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1018,6 +1579,14 @@ const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError = a $metadata: deserializeMetadata(output), }; break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -1043,27 +1612,27 @@ const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError = a return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListResourceInventoryCommand = async ( +export const deserializeAws_json1_1CreateLicenseVersionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListResourceInventoryCommandError(output, context); + return deserializeAws_json1_1CreateLicenseVersionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListResourceInventoryResponse(data, context); - const response: ListResourceInventoryCommandOutput = { + contents = deserializeAws_json1_1CreateLicenseVersionResponse(data, context); + const response: CreateLicenseVersionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListResourceInventoryCommandError = async ( +const deserializeAws_json1_1CreateLicenseVersionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1089,34 +1658,34 @@ const deserializeAws_json1_1ListResourceInventoryCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "FailedDependencyException": - case "com.amazonaws.licensemanager#FailedDependencyException": + case "ConflictException": + case "com.amazonaws.licensemanager#ConflictException": response = { - ...(await deserializeAws_json1_1FailedDependencyExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "FilterLimitExceededException": - case "com.amazonaws.licensemanager#FilterLimitExceededException": + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": response = { - ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "InvalidParameterValueException": - case "com.amazonaws.licensemanager#InvalidParameterValueException": + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": response = { - ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "RateLimitExceededException": - case "com.amazonaws.licensemanager#RateLimitExceededException": + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": response = { - ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1129,6 +1698,14 @@ const deserializeAws_json1_1ListResourceInventoryCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1146,27 +1723,27 @@ const deserializeAws_json1_1ListResourceInventoryCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListTagsForResourceCommand = async ( +export const deserializeAws_json1_1CreateTokenCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + return deserializeAws_json1_1CreateTokenCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); - const response: ListTagsForResourceCommandOutput = { + contents = deserializeAws_json1_1CreateTokenResponse(data, context); + const response: CreateTokenCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListTagsForResourceCommandError = async ( +const deserializeAws_json1_1CreateTokenCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1192,18 +1769,34 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidParameterValueException": - case "com.amazonaws.licensemanager#InvalidParameterValueException": + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": response = { - ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "RateLimitExceededException": - case "com.amazonaws.licensemanager#RateLimitExceededException": + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": response = { - ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1216,6 +1809,14 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1233,27 +1834,27 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListUsageForLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1DeleteGrantCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1DeleteGrantCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListUsageForLicenseConfigurationResponse(data, context); - const response: ListUsageForLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1DeleteGrantResponse(data, context); + const response: DeleteGrantCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1DeleteGrantCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1279,14 +1880,6 @@ const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async $metadata: deserializeMetadata(output), }; break; - case "FilterLimitExceededException": - case "com.amazonaws.licensemanager#FilterLimitExceededException": - response = { - ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InvalidParameterValueException": case "com.amazonaws.licensemanager#InvalidParameterValueException": response = { @@ -1303,6 +1896,14 @@ const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async $metadata: deserializeMetadata(output), }; break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -1311,6 +1912,14 @@ const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1328,27 +1937,27 @@ const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1TagResourceCommand = async ( +export const deserializeAws_json1_1DeleteLicenseCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1TagResourceCommandError(output, context); + return deserializeAws_json1_1DeleteLicenseCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1TagResourceResponse(data, context); - const response: TagResourceCommandOutput = { + contents = deserializeAws_json1_1DeleteLicenseResponse(data, context); + const response: DeleteLicenseCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1TagResourceCommandError = async ( +const deserializeAws_json1_1DeleteLicenseCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1374,6 +1983,14 @@ const deserializeAws_json1_1TagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.licensemanager#ConflictException": + response = { + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidParameterValueException": case "com.amazonaws.licensemanager#InvalidParameterValueException": response = { @@ -1390,6 +2007,14 @@ const deserializeAws_json1_1TagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": + response = { + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -1398,6 +2023,14 @@ const deserializeAws_json1_1TagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1415,27 +2048,27 @@ const deserializeAws_json1_1TagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UntagResourceCommand = async ( +export const deserializeAws_json1_1DeleteLicenseConfigurationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UntagResourceCommandError(output, context); + return deserializeAws_json1_1DeleteLicenseConfigurationCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UntagResourceResponse(data, context); - const response: UntagResourceCommandOutput = { + contents = deserializeAws_json1_1DeleteLicenseConfigurationResponse(data, context); + const response: DeleteLicenseConfigurationCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UntagResourceCommandError = async ( +const deserializeAws_json1_1DeleteLicenseConfigurationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1502,27 +2135,27 @@ const deserializeAws_json1_1UntagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateLicenseConfigurationCommand = async ( +export const deserializeAws_json1_1DeleteTokenCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateLicenseConfigurationCommandError(output, context); + return deserializeAws_json1_1DeleteTokenCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateLicenseConfigurationResponse(data, context); - const response: UpdateLicenseConfigurationCommandOutput = { + contents = deserializeAws_json1_1DeleteTokenResponse(data, context); + const response: DeleteTokenCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateLicenseConfigurationCommandError = async ( +const deserializeAws_json1_1DeleteTokenCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1548,18 +2181,26 @@ const deserializeAws_json1_1UpdateLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "InvalidParameterValueException": - case "com.amazonaws.licensemanager#InvalidParameterValueException": + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": response = { - ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "RateLimitExceededException": - case "com.amazonaws.licensemanager#RateLimitExceededException": + case "RedirectException": + case "com.amazonaws.licensemanager#RedirectException": response = { - ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RedirectExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1572,6 +2213,14 @@ const deserializeAws_json1_1UpdateLicenseConfigurationCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1589,27 +2238,27 @@ const deserializeAws_json1_1UpdateLicenseConfigurationCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommand = async ( +export const deserializeAws_json1_1ExtendLicenseConsumptionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError(output, context); + return deserializeAws_json1_1ExtendLicenseConsumptionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateLicenseSpecificationsForResourceResponse(data, context); - const response: UpdateLicenseSpecificationsForResourceCommandOutput = { + contents = deserializeAws_json1_1ExtendLicenseConsumptionResponse(data, context); + const response: ExtendLicenseConsumptionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError = async ( +const deserializeAws_json1_1ExtendLicenseConsumptionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1643,18 +2292,97 @@ const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError = $metadata: deserializeMetadata(output), }; break; - case "InvalidResourceStateException": - case "com.amazonaws.licensemanager#InvalidResourceStateException": + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": response = { - ...(await deserializeAws_json1_1InvalidResourceStateExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "LicenseUsageException": - case "com.amazonaws.licensemanager#LicenseUsageException": + case "ResourceNotFoundException": + case "com.amazonaws.licensemanager#ResourceNotFoundException": response = { - ...(await deserializeAws_json1_1LicenseUsageExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1GetAccessTokenCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetAccessTokenCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetAccessTokenResponse(data, context); + const response: GetAccessTokenCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetAccessTokenCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1675,6 +2403,14 @@ const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError = $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1692,27 +2428,27 @@ const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError = return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateServiceSettingsCommand = async ( +export const deserializeAws_json1_1GetGrantCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateServiceSettingsCommandError(output, context); + return deserializeAws_json1_1GetGrantCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateServiceSettingsResponse(data, context); - const response: UpdateServiceSettingsCommandOutput = { + contents = deserializeAws_json1_1GetGrantResponse(data, context); + const response: GetGrantCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateServiceSettingsCommandError = async ( +const deserializeAws_json1_1GetGrantCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1754,6 +2490,14 @@ const deserializeAws_json1_1UpdateServiceSettingsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ServerInternalException": case "com.amazonaws.licensemanager#ServerInternalException": response = { @@ -1762,6 +2506,14 @@ const deserializeAws_json1_1UpdateServiceSettingsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -1779,91 +2531,2266 @@ const deserializeAws_json1_1UpdateServiceSettingsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -const deserializeAws_json1_1AccessDeniedExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1AccessDeniedException(body, context); - const contents: AccessDeniedException = { - name: "AccessDeniedException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - ...deserialized, - }; - return contents; -}; - -const deserializeAws_json1_1AuthorizationExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1AuthorizationException(body, context); - const contents: AuthorizationException = { - name: "AuthorizationException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - ...deserialized, - }; - return contents; -}; - -const deserializeAws_json1_1FailedDependencyExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1FailedDependencyException(body, context); - const contents: FailedDependencyException = { - name: "FailedDependencyException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - ...deserialized, - }; - return contents; -}; - -const deserializeAws_json1_1FilterLimitExceededExceptionResponse = async ( - parsedOutput: any, +export const deserializeAws_json1_1GetLicenseCommand = async ( + output: __HttpResponse, context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1FilterLimitExceededException(body, context); - const contents: FilterLimitExceededException = { - name: "FilterLimitExceededException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - ...deserialized, +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetLicenseCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetLicenseResponse(data, context); + const response: GetLicenseCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, }; - return contents; + return Promise.resolve(response); }; -const deserializeAws_json1_1InvalidParameterValueExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_json1_1GetLicenseCommandError = async ( + output: __HttpResponse, context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1InvalidParameterValueException(body, context); - const contents: InvalidParameterValueException = { - name: "InvalidParameterValueException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - ...deserialized, +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), }; - return contents; -}; - -const deserializeAws_json1_1InvalidResourceStateExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const body = parsedOutput.body; - const deserialized: any = deserializeAws_json1_1InvalidResourceStateException(body, context); - const contents: InvalidResourceStateException = { - name: "InvalidResourceStateException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1GetLicenseConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetLicenseConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetLicenseConfigurationResponse(data, context); + const response: GetLicenseConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetLicenseConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1GetLicenseUsageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetLicenseUsageCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetLicenseUsageResponse(data, context); + const response: GetLicenseUsageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetLicenseUsageCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1GetServiceSettingsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetServiceSettingsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetServiceSettingsResponse(data, context); + const response: GetServiceSettingsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetServiceSettingsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAssociationsForLicenseConfigurationResponse(data, context); + const response: ListAssociationsForLicenseConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAssociationsForLicenseConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "FilterLimitExceededException": + case "com.amazonaws.licensemanager#FilterLimitExceededException": + response = { + ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListDistributedGrantsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListDistributedGrantsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListDistributedGrantsResponse(data, context); + const response: ListDistributedGrantsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListDistributedGrantsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsResponse(data, context); + const response: ListFailuresForLicenseConfigurationOperationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListLicenseConfigurationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListLicenseConfigurationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListLicenseConfigurationsResponse(data, context); + const response: ListLicenseConfigurationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListLicenseConfigurationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "FilterLimitExceededException": + case "com.amazonaws.licensemanager#FilterLimitExceededException": + response = { + ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListLicensesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListLicensesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListLicensesResponse(data, context); + const response: ListLicensesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListLicensesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListLicenseSpecificationsForResourceResponse(data, context); + const response: ListLicenseSpecificationsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListLicenseSpecificationsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListLicenseVersionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListLicenseVersionsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListLicenseVersionsResponse(data, context); + const response: ListLicenseVersionsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListLicenseVersionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListReceivedGrantsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListReceivedGrantsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListReceivedGrantsResponse(data, context); + const response: ListReceivedGrantsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListReceivedGrantsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListReceivedLicensesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListReceivedLicensesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListReceivedLicensesResponse(data, context); + const response: ListReceivedLicensesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListReceivedLicensesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListResourceInventoryCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListResourceInventoryCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListResourceInventoryResponse(data, context); + const response: ListResourceInventoryCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListResourceInventoryCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "FailedDependencyException": + case "com.amazonaws.licensemanager#FailedDependencyException": + response = { + ...(await deserializeAws_json1_1FailedDependencyExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "FilterLimitExceededException": + case "com.amazonaws.licensemanager#FilterLimitExceededException": + response = { + ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); + const response: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListTokensCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListTokensCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListTokensResponse(data, context); + const response: ListTokensCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListTokensCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListUsageForLicenseConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListUsageForLicenseConfigurationResponse(data, context); + const response: ListUsageForLicenseConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListUsageForLicenseConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "FilterLimitExceededException": + case "com.amazonaws.licensemanager#FilterLimitExceededException": + response = { + ...(await deserializeAws_json1_1FilterLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1RejectGrantCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1RejectGrantCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1RejectGrantResponse(data, context); + const response: RejectGrantCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1RejectGrantCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.licensemanager#ValidationException": + response = { + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1TagResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1TagResourceResponse(data, context); + const response: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UntagResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UntagResourceResponse(data, context); + const response: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateLicenseConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateLicenseConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateLicenseConfigurationResponse(data, context); + const response: UpdateLicenseConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateLicenseConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceededException": + case "com.amazonaws.licensemanager#ResourceLimitExceededException": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateLicenseSpecificationsForResourceResponse(data, context); + const response: UpdateLicenseSpecificationsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateLicenseSpecificationsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidResourceStateException": + case "com.amazonaws.licensemanager#InvalidResourceStateException": + response = { + ...(await deserializeAws_json1_1InvalidResourceStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "LicenseUsageException": + case "com.amazonaws.licensemanager#LicenseUsageException": + response = { + ...(await deserializeAws_json1_1LicenseUsageExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateServiceSettingsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateServiceSettingsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateServiceSettingsResponse(data, context); + const response: UpdateServiceSettingsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateServiceSettingsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.licensemanager#AccessDeniedException": + response = { + ...(await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "AuthorizationException": + case "com.amazonaws.licensemanager#AuthorizationException": + response = { + ...(await deserializeAws_json1_1AuthorizationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterValueException": + case "com.amazonaws.licensemanager#InvalidParameterValueException": + response = { + ...(await deserializeAws_json1_1InvalidParameterValueExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "RateLimitExceededException": + case "com.amazonaws.licensemanager#RateLimitExceededException": + response = { + ...(await deserializeAws_json1_1RateLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServerInternalException": + case "com.amazonaws.licensemanager#ServerInternalException": + response = { + ...(await deserializeAws_json1_1ServerInternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_json1_1AccessDeniedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1AccessDeniedException(body, context); + const contents: AccessDeniedException = { + name: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1AuthorizationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1AuthorizationException(body, context); + const contents: AuthorizationException = { + name: "AuthorizationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1ConflictExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1ConflictException(body, context); + const contents: ConflictException = { + name: "ConflictException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1EntitlementNotAllowedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1EntitlementNotAllowedException(body, context); + const contents: EntitlementNotAllowedException = { + name: "EntitlementNotAllowedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1FailedDependencyExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1FailedDependencyException(body, context); + const contents: FailedDependencyException = { + name: "FailedDependencyException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1FilterLimitExceededExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1FilterLimitExceededException(body, context); + const contents: FilterLimitExceededException = { + name: "FilterLimitExceededException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1InvalidParameterValueExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1InvalidParameterValueException(body, context); + const contents: InvalidParameterValueException = { + name: "InvalidParameterValueException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1InvalidResourceStateExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1InvalidResourceStateException(body, context); + const contents: InvalidResourceStateException = { + name: "InvalidResourceStateException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), ...deserialized, }; return contents; @@ -1884,6 +4811,21 @@ const deserializeAws_json1_1LicenseUsageExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1NoEntitlementsAllowedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1NoEntitlementsAllowedException(body, context); + const contents: NoEntitlementsAllowedException = { + name: "NoEntitlementsAllowedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1RateLimitExceededExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -1899,6 +4841,21 @@ const deserializeAws_json1_1RateLimitExceededExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1RedirectExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1RedirectException(body, context); + const contents: RedirectException = { + name: "RedirectException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1ResourceLimitExceededExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -1914,6 +4871,21 @@ const deserializeAws_json1_1ResourceLimitExceededExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1ResourceNotFoundException(body, context); + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1ServerInternalExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -1926,35 +4898,299 @@ const deserializeAws_json1_1ServerInternalExceptionResponse = async ( $metadata: deserializeMetadata(parsedOutput), ...deserialized, }; - return contents; + return contents; +}; + +const deserializeAws_json1_1UnsupportedDigitalSignatureMethodExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1UnsupportedDigitalSignatureMethodException(body, context); + const contents: UnsupportedDigitalSignatureMethodException = { + name: "UnsupportedDigitalSignatureMethodException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1ValidationException(body, context); + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const serializeAws_json1_1AcceptGrantRequest = (input: AcceptGrantRequest, context: __SerdeContext): any => { + return { + ...(input.GrantArn !== undefined && { GrantArn: input.GrantArn }), + }; +}; + +const serializeAws_json1_1AllowedOperationList = ( + input: (AllowedOperation | string)[], + context: __SerdeContext +): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1ArnList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1BorrowConfiguration = (input: BorrowConfiguration, context: __SerdeContext): any => { + return { + ...(input.AllowEarlyCheckIn !== undefined && { AllowEarlyCheckIn: input.AllowEarlyCheckIn }), + ...(input.MaxTimeToLiveInMinutes !== undefined && { MaxTimeToLiveInMinutes: input.MaxTimeToLiveInMinutes }), + }; +}; + +const serializeAws_json1_1CheckInLicenseRequest = (input: CheckInLicenseRequest, context: __SerdeContext): any => { + return { + ...(input.Beneficiary !== undefined && { Beneficiary: input.Beneficiary }), + ...(input.LicenseConsumptionToken !== undefined && { LicenseConsumptionToken: input.LicenseConsumptionToken }), + }; +}; + +const serializeAws_json1_1CheckoutBorrowLicenseRequest = ( + input: CheckoutBorrowLicenseRequest, + context: __SerdeContext +): any => { + return { + ...(input.CheckoutMetadata !== undefined && { + CheckoutMetadata: serializeAws_json1_1MetadataList(input.CheckoutMetadata, context), + }), + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.DigitalSignatureMethod !== undefined && { DigitalSignatureMethod: input.DigitalSignatureMethod }), + ...(input.Entitlements !== undefined && { + Entitlements: serializeAws_json1_1EntitlementDataList(input.Entitlements, context), + }), + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.NodeId !== undefined && { NodeId: input.NodeId }), + }; +}; + +const serializeAws_json1_1CheckoutLicenseRequest = (input: CheckoutLicenseRequest, context: __SerdeContext): any => { + return { + ...(input.Beneficiary !== undefined && { Beneficiary: input.Beneficiary }), + ...(input.CheckoutType !== undefined && { CheckoutType: input.CheckoutType }), + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.Entitlements !== undefined && { + Entitlements: serializeAws_json1_1EntitlementDataList(input.Entitlements, context), + }), + ...(input.KeyFingerprint !== undefined && { KeyFingerprint: input.KeyFingerprint }), + ...(input.NodeId !== undefined && { NodeId: input.NodeId }), + ...(input.ProductSKU !== undefined && { ProductSKU: input.ProductSKU }), + }; +}; + +const serializeAws_json1_1ConsumptionConfiguration = ( + input: ConsumptionConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.BorrowConfiguration !== undefined && { + BorrowConfiguration: serializeAws_json1_1BorrowConfiguration(input.BorrowConfiguration, context), + }), + ...(input.ProvisionalConfiguration !== undefined && { + ProvisionalConfiguration: serializeAws_json1_1ProvisionalConfiguration(input.ProvisionalConfiguration, context), + }), + ...(input.RenewType !== undefined && { RenewType: input.RenewType }), + }; +}; + +const serializeAws_json1_1CreateGrantRequest = (input: CreateGrantRequest, context: __SerdeContext): any => { + return { + ...(input.AllowedOperations !== undefined && { + AllowedOperations: serializeAws_json1_1AllowedOperationList(input.AllowedOperations, context), + }), + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.GrantName !== undefined && { GrantName: input.GrantName }), + ...(input.HomeRegion !== undefined && { HomeRegion: input.HomeRegion }), + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.Principals !== undefined && { + Principals: serializeAws_json1_1PrincipalArnList(input.Principals, context), + }), + }; +}; + +const serializeAws_json1_1CreateGrantVersionRequest = ( + input: CreateGrantVersionRequest, + context: __SerdeContext +): any => { + return { + ...(input.AllowedOperations !== undefined && { + AllowedOperations: serializeAws_json1_1AllowedOperationList(input.AllowedOperations, context), + }), + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.GrantArn !== undefined && { GrantArn: input.GrantArn }), + ...(input.GrantName !== undefined && { GrantName: input.GrantName }), + ...(input.SourceVersion !== undefined && { SourceVersion: input.SourceVersion }), + ...(input.Status !== undefined && { Status: input.Status }), + }; +}; + +const serializeAws_json1_1CreateLicenseConfigurationRequest = ( + input: CreateLicenseConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.Description !== undefined && { Description: input.Description }), + ...(input.DisassociateWhenNotFound !== undefined && { DisassociateWhenNotFound: input.DisassociateWhenNotFound }), + ...(input.LicenseCount !== undefined && { LicenseCount: input.LicenseCount }), + ...(input.LicenseCountHardLimit !== undefined && { LicenseCountHardLimit: input.LicenseCountHardLimit }), + ...(input.LicenseCountingType !== undefined && { LicenseCountingType: input.LicenseCountingType }), + ...(input.LicenseRules !== undefined && { + LicenseRules: serializeAws_json1_1StringList(input.LicenseRules, context), + }), + ...(input.Name !== undefined && { Name: input.Name }), + ...(input.ProductInformationList !== undefined && { + ProductInformationList: serializeAws_json1_1ProductInformationList(input.ProductInformationList, context), + }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + +const serializeAws_json1_1CreateLicenseRequest = (input: CreateLicenseRequest, context: __SerdeContext): any => { + return { + ...(input.Beneficiary !== undefined && { Beneficiary: input.Beneficiary }), + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.ConsumptionConfiguration !== undefined && { + ConsumptionConfiguration: serializeAws_json1_1ConsumptionConfiguration(input.ConsumptionConfiguration, context), + }), + ...(input.Entitlements !== undefined && { + Entitlements: serializeAws_json1_1EntitlementList(input.Entitlements, context), + }), + ...(input.HomeRegion !== undefined && { HomeRegion: input.HomeRegion }), + ...(input.Issuer !== undefined && { Issuer: serializeAws_json1_1Issuer(input.Issuer, context) }), + ...(input.LicenseMetadata !== undefined && { + LicenseMetadata: serializeAws_json1_1MetadataList(input.LicenseMetadata, context), + }), + ...(input.LicenseName !== undefined && { LicenseName: input.LicenseName }), + ...(input.ProductName !== undefined && { ProductName: input.ProductName }), + ...(input.ProductSKU !== undefined && { ProductSKU: input.ProductSKU }), + ...(input.Validity !== undefined && { Validity: serializeAws_json1_1DatetimeRange(input.Validity, context) }), + }; +}; + +const serializeAws_json1_1CreateLicenseVersionRequest = ( + input: CreateLicenseVersionRequest, + context: __SerdeContext +): any => { + return { + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.ConsumptionConfiguration !== undefined && { + ConsumptionConfiguration: serializeAws_json1_1ConsumptionConfiguration(input.ConsumptionConfiguration, context), + }), + ...(input.Entitlements !== undefined && { + Entitlements: serializeAws_json1_1EntitlementList(input.Entitlements, context), + }), + ...(input.HomeRegion !== undefined && { HomeRegion: input.HomeRegion }), + ...(input.Issuer !== undefined && { Issuer: serializeAws_json1_1Issuer(input.Issuer, context) }), + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.LicenseMetadata !== undefined && { + LicenseMetadata: serializeAws_json1_1MetadataList(input.LicenseMetadata, context), + }), + ...(input.LicenseName !== undefined && { LicenseName: input.LicenseName }), + ...(input.ProductName !== undefined && { ProductName: input.ProductName }), + ...(input.SourceVersion !== undefined && { SourceVersion: input.SourceVersion }), + ...(input.Status !== undefined && { Status: input.Status }), + ...(input.Validity !== undefined && { Validity: serializeAws_json1_1DatetimeRange(input.Validity, context) }), + }; +}; + +const serializeAws_json1_1CreateTokenRequest = (input: CreateTokenRequest, context: __SerdeContext): any => { + return { + ...(input.ClientToken !== undefined && { ClientToken: input.ClientToken }), + ...(input.ExpirationInDays !== undefined && { ExpirationInDays: input.ExpirationInDays }), + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.RoleArns !== undefined && { RoleArns: serializeAws_json1_1ArnList(input.RoleArns, context) }), + ...(input.TokenProperties !== undefined && { + TokenProperties: serializeAws_json1_1MaxSize3StringList(input.TokenProperties, context), + }), + }; +}; + +const serializeAws_json1_1DatetimeRange = (input: DatetimeRange, context: __SerdeContext): any => { + return { + ...(input.Begin !== undefined && { Begin: input.Begin }), + ...(input.End !== undefined && { End: input.End }), + }; +}; + +const serializeAws_json1_1DeleteGrantRequest = (input: DeleteGrantRequest, context: __SerdeContext): any => { + return { + ...(input.GrantArn !== undefined && { GrantArn: input.GrantArn }), + ...(input.Version !== undefined && { Version: input.Version }), + }; +}; + +const serializeAws_json1_1DeleteLicenseConfigurationRequest = ( + input: DeleteLicenseConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.LicenseConfigurationArn !== undefined && { LicenseConfigurationArn: input.LicenseConfigurationArn }), + }; +}; + +const serializeAws_json1_1DeleteLicenseRequest = (input: DeleteLicenseRequest, context: __SerdeContext): any => { + return { + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.SourceVersion !== undefined && { SourceVersion: input.SourceVersion }), + }; +}; + +const serializeAws_json1_1DeleteTokenRequest = (input: DeleteTokenRequest, context: __SerdeContext): any => { + return { + ...(input.TokenId !== undefined && { TokenId: input.TokenId }), + }; +}; + +const serializeAws_json1_1Entitlement = (input: Entitlement, context: __SerdeContext): any => { + return { + ...(input.AllowCheckIn !== undefined && { AllowCheckIn: input.AllowCheckIn }), + ...(input.MaxCount !== undefined && { MaxCount: input.MaxCount }), + ...(input.Name !== undefined && { Name: input.Name }), + ...(input.Overage !== undefined && { Overage: input.Overage }), + ...(input.Unit !== undefined && { Unit: input.Unit }), + ...(input.Value !== undefined && { Value: input.Value }), + }; }; -const serializeAws_json1_1CreateLicenseConfigurationRequest = ( - input: CreateLicenseConfigurationRequest, - context: __SerdeContext -): any => { +const serializeAws_json1_1EntitlementData = (input: EntitlementData, context: __SerdeContext): any => { return { - ...(input.Description !== undefined && { Description: input.Description }), - ...(input.LicenseCount !== undefined && { LicenseCount: input.LicenseCount }), - ...(input.LicenseCountHardLimit !== undefined && { LicenseCountHardLimit: input.LicenseCountHardLimit }), - ...(input.LicenseCountingType !== undefined && { LicenseCountingType: input.LicenseCountingType }), - ...(input.LicenseRules !== undefined && { - LicenseRules: serializeAws_json1_1StringList(input.LicenseRules, context), - }), ...(input.Name !== undefined && { Name: input.Name }), - ...(input.ProductInformationList !== undefined && { - ProductInformationList: serializeAws_json1_1ProductInformationList(input.ProductInformationList, context), - }), - ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + ...(input.Unit !== undefined && { Unit: input.Unit }), + ...(input.Value !== undefined && { Value: input.Value }), }; }; -const serializeAws_json1_1DeleteLicenseConfigurationRequest = ( - input: DeleteLicenseConfigurationRequest, +const serializeAws_json1_1EntitlementDataList = (input: EntitlementData[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1EntitlementData(entry, context)); +}; + +const serializeAws_json1_1EntitlementList = (input: Entitlement[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1Entitlement(entry, context)); +}; + +const serializeAws_json1_1ExtendLicenseConsumptionRequest = ( + input: ExtendLicenseConsumptionRequest, context: __SerdeContext ): any => { return { - ...(input.LicenseConfigurationArn !== undefined && { LicenseConfigurationArn: input.LicenseConfigurationArn }), + ...(input.DryRun !== undefined && { DryRun: input.DryRun }), + ...(input.LicenseConsumptionToken !== undefined && { LicenseConsumptionToken: input.LicenseConsumptionToken }), }; }; @@ -1965,6 +5201,10 @@ const serializeAws_json1_1Filter = (input: Filter, context: __SerdeContext): any }; }; +const serializeAws_json1_1FilterList = (input: Filter[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1Filter(entry, context)); +}; + const serializeAws_json1_1Filters = (input: Filter[], context: __SerdeContext): any => { return input.map((entry) => serializeAws_json1_1Filter(entry, context)); }; @@ -1973,6 +5213,22 @@ const serializeAws_json1_1FilterValues = (input: string[], context: __SerdeConte return input.map((entry) => entry); }; +const serializeAws_json1_1GetAccessTokenRequest = (input: GetAccessTokenRequest, context: __SerdeContext): any => { + return { + ...(input.Token !== undefined && { Token: input.Token }), + ...(input.TokenProperties !== undefined && { + TokenProperties: serializeAws_json1_1MaxSize3StringList(input.TokenProperties, context), + }), + }; +}; + +const serializeAws_json1_1GetGrantRequest = (input: GetGrantRequest, context: __SerdeContext): any => { + return { + ...(input.GrantArn !== undefined && { GrantArn: input.GrantArn }), + ...(input.Version !== undefined && { Version: input.Version }), + }; +}; + const serializeAws_json1_1GetLicenseConfigurationRequest = ( input: GetLicenseConfigurationRequest, context: __SerdeContext @@ -1982,6 +5238,19 @@ const serializeAws_json1_1GetLicenseConfigurationRequest = ( }; }; +const serializeAws_json1_1GetLicenseRequest = (input: GetLicenseRequest, context: __SerdeContext): any => { + return { + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.Version !== undefined && { Version: input.Version }), + }; +}; + +const serializeAws_json1_1GetLicenseUsageRequest = (input: GetLicenseUsageRequest, context: __SerdeContext): any => { + return { + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + }; +}; + const serializeAws_json1_1GetServiceSettingsRequest = ( input: GetServiceSettingsRequest, context: __SerdeContext @@ -2001,6 +5270,13 @@ const serializeAws_json1_1InventoryFilterList = (input: InventoryFilter[], conte return input.map((entry) => serializeAws_json1_1InventoryFilter(entry, context)); }; +const serializeAws_json1_1Issuer = (input: Issuer, context: __SerdeContext): any => { + return { + ...(input.Name !== undefined && { Name: input.Name }), + ...(input.SignKey !== undefined && { SignKey: input.SignKey }), + }; +}; + const serializeAws_json1_1LicenseSpecification = (input: LicenseSpecification, context: __SerdeContext): any => { return { ...(input.AmiAssociationScope !== undefined && { AmiAssociationScope: input.AmiAssociationScope }), @@ -2023,6 +5299,18 @@ const serializeAws_json1_1ListAssociationsForLicenseConfigurationRequest = ( }; }; +const serializeAws_json1_1ListDistributedGrantsRequest = ( + input: ListDistributedGrantsRequest, + context: __SerdeContext +): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1FilterList(input.Filters, context) }), + ...(input.GrantArns !== undefined && { GrantArns: serializeAws_json1_1ArnList(input.GrantArns, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListFailuresForLicenseConfigurationOperationsRequest = ( input: ListFailuresForLicenseConfigurationOperationsRequest, context: __SerdeContext @@ -2059,6 +5347,50 @@ const serializeAws_json1_1ListLicenseSpecificationsForResourceRequest = ( }; }; +const serializeAws_json1_1ListLicensesRequest = (input: ListLicensesRequest, context: __SerdeContext): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1FilterList(input.Filters, context) }), + ...(input.LicenseArns !== undefined && { LicenseArns: serializeAws_json1_1ArnList(input.LicenseArns, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListLicenseVersionsRequest = ( + input: ListLicenseVersionsRequest, + context: __SerdeContext +): any => { + return { + ...(input.LicenseArn !== undefined && { LicenseArn: input.LicenseArn }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListReceivedGrantsRequest = ( + input: ListReceivedGrantsRequest, + context: __SerdeContext +): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1FilterList(input.Filters, context) }), + ...(input.GrantArns !== undefined && { GrantArns: serializeAws_json1_1ArnList(input.GrantArns, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListReceivedLicensesRequest = ( + input: ListReceivedLicensesRequest, + context: __SerdeContext +): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1FilterList(input.Filters, context) }), + ...(input.LicenseArns !== undefined && { LicenseArns: serializeAws_json1_1ArnList(input.LicenseArns, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListResourceInventoryRequest = ( input: ListResourceInventoryRequest, context: __SerdeContext @@ -2079,6 +5411,15 @@ const serializeAws_json1_1ListTagsForResourceRequest = ( }; }; +const serializeAws_json1_1ListTokensRequest = (input: ListTokensRequest, context: __SerdeContext): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1FilterList(input.Filters, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.TokenIds !== undefined && { TokenIds: serializeAws_json1_1StringList(input.TokenIds, context) }), + }; +}; + const serializeAws_json1_1ListUsageForLicenseConfigurationRequest = ( input: ListUsageForLicenseConfigurationRequest, context: __SerdeContext @@ -2091,6 +5432,21 @@ const serializeAws_json1_1ListUsageForLicenseConfigurationRequest = ( }; }; +const serializeAws_json1_1MaxSize3StringList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1Metadata = (input: Metadata, context: __SerdeContext): any => { + return { + ...(input.Name !== undefined && { Name: input.Name }), + ...(input.Value !== undefined && { Value: input.Value }), + }; +}; + +const serializeAws_json1_1MetadataList = (input: Metadata[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1Metadata(entry, context)); +}; + const serializeAws_json1_1OrganizationConfiguration = ( input: OrganizationConfiguration, context: __SerdeContext @@ -2100,6 +5456,10 @@ const serializeAws_json1_1OrganizationConfiguration = ( }; }; +const serializeAws_json1_1PrincipalArnList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1ProductInformation = (input: ProductInformation, context: __SerdeContext): any => { return { ...(input.ProductInformationFilterList !== undefined && { @@ -2140,6 +5500,21 @@ const serializeAws_json1_1ProductInformationList = (input: ProductInformation[], return input.map((entry) => serializeAws_json1_1ProductInformation(entry, context)); }; +const serializeAws_json1_1ProvisionalConfiguration = ( + input: ProvisionalConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.MaxTimeToLiveInMinutes !== undefined && { MaxTimeToLiveInMinutes: input.MaxTimeToLiveInMinutes }), + }; +}; + +const serializeAws_json1_1RejectGrantRequest = (input: RejectGrantRequest, context: __SerdeContext): any => { + return { + ...(input.GrantArn !== undefined && { GrantArn: input.GrantArn }), + }; +}; + const serializeAws_json1_1StringList = (input: string[], context: __SerdeContext): any => { return input.map((entry) => entry); }; @@ -2179,6 +5554,7 @@ const serializeAws_json1_1UpdateLicenseConfigurationRequest = ( ): any => { return { ...(input.Description !== undefined && { Description: input.Description }), + ...(input.DisassociateWhenNotFound !== undefined && { DisassociateWhenNotFound: input.DisassociateWhenNotFound }), ...(input.LicenseConfigurationArn !== undefined && { LicenseConfigurationArn: input.LicenseConfigurationArn }), ...(input.LicenseConfigurationStatus !== undefined && { LicenseConfigurationStatus: input.LicenseConfigurationStatus, @@ -2213,81 +5589,321 @@ const serializeAws_json1_1UpdateLicenseSpecificationsForResourceRequest = ( }; }; -const serializeAws_json1_1UpdateServiceSettingsRequest = ( - input: UpdateServiceSettingsRequest, +const serializeAws_json1_1UpdateServiceSettingsRequest = ( + input: UpdateServiceSettingsRequest, + context: __SerdeContext +): any => { + return { + ...(input.EnableCrossAccountsDiscovery !== undefined && { + EnableCrossAccountsDiscovery: input.EnableCrossAccountsDiscovery, + }), + ...(input.OrganizationConfiguration !== undefined && { + OrganizationConfiguration: serializeAws_json1_1OrganizationConfiguration( + input.OrganizationConfiguration, + context + ), + }), + ...(input.S3BucketArn !== undefined && { S3BucketArn: input.S3BucketArn }), + ...(input.SnsTopicArn !== undefined && { SnsTopicArn: input.SnsTopicArn }), + }; +}; + +const deserializeAws_json1_1AcceptGrantResponse = (output: any, context: __SerdeContext): AcceptGrantResponse => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1AccessDeniedException = (output: any, context: __SerdeContext): AccessDeniedException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1AllowedOperationList = ( + output: any, + context: __SerdeContext +): (AllowedOperation | string)[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_json1_1ArnList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeAws_json1_1AuthorizationException = (output: any, context: __SerdeContext): AuthorizationException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1AutomatedDiscoveryInformation = ( + output: any, + context: __SerdeContext +): AutomatedDiscoveryInformation => { + return { + LastRunTime: + output.LastRunTime !== undefined && output.LastRunTime !== null + ? new Date(Math.round(output.LastRunTime * 1000)) + : undefined, + } as any; +}; + +const deserializeAws_json1_1BorrowConfiguration = (output: any, context: __SerdeContext): BorrowConfiguration => { + return { + AllowEarlyCheckIn: + output.AllowEarlyCheckIn !== undefined && output.AllowEarlyCheckIn !== null + ? output.AllowEarlyCheckIn + : undefined, + MaxTimeToLiveInMinutes: + output.MaxTimeToLiveInMinutes !== undefined && output.MaxTimeToLiveInMinutes !== null + ? output.MaxTimeToLiveInMinutes + : undefined, + } as any; +}; + +const deserializeAws_json1_1CheckInLicenseResponse = (output: any, context: __SerdeContext): CheckInLicenseResponse => { + return {} as any; +}; + +const deserializeAws_json1_1CheckoutBorrowLicenseResponse = ( + output: any, + context: __SerdeContext +): CheckoutBorrowLicenseResponse => { + return { + CheckoutMetadata: + output.CheckoutMetadata !== undefined && output.CheckoutMetadata !== null + ? deserializeAws_json1_1MetadataList(output.CheckoutMetadata, context) + : undefined, + EntitlementsAllowed: + output.EntitlementsAllowed !== undefined && output.EntitlementsAllowed !== null + ? deserializeAws_json1_1EntitlementDataList(output.EntitlementsAllowed, context) + : undefined, + Expiration: output.Expiration !== undefined && output.Expiration !== null ? output.Expiration : undefined, + IssuedAt: output.IssuedAt !== undefined && output.IssuedAt !== null ? output.IssuedAt : undefined, + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + LicenseConsumptionToken: + output.LicenseConsumptionToken !== undefined && output.LicenseConsumptionToken !== null + ? output.LicenseConsumptionToken + : undefined, + NodeId: output.NodeId !== undefined && output.NodeId !== null ? output.NodeId : undefined, + SignedToken: output.SignedToken !== undefined && output.SignedToken !== null ? output.SignedToken : undefined, + } as any; +}; + +const deserializeAws_json1_1CheckoutLicenseResponse = ( + output: any, + context: __SerdeContext +): CheckoutLicenseResponse => { + return { + CheckoutType: output.CheckoutType !== undefined && output.CheckoutType !== null ? output.CheckoutType : undefined, + EntitlementsAllowed: + output.EntitlementsAllowed !== undefined && output.EntitlementsAllowed !== null + ? deserializeAws_json1_1EntitlementDataList(output.EntitlementsAllowed, context) + : undefined, + Expiration: output.Expiration !== undefined && output.Expiration !== null ? output.Expiration : undefined, + IssuedAt: output.IssuedAt !== undefined && output.IssuedAt !== null ? output.IssuedAt : undefined, + LicenseConsumptionToken: + output.LicenseConsumptionToken !== undefined && output.LicenseConsumptionToken !== null + ? output.LicenseConsumptionToken + : undefined, + NodeId: output.NodeId !== undefined && output.NodeId !== null ? output.NodeId : undefined, + SignedToken: output.SignedToken !== undefined && output.SignedToken !== null ? output.SignedToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ConflictException = (output: any, context: __SerdeContext): ConflictException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1ConsumedLicenseSummary = (output: any, context: __SerdeContext): ConsumedLicenseSummary => { + return { + ConsumedLicenses: + output.ConsumedLicenses !== undefined && output.ConsumedLicenses !== null ? output.ConsumedLicenses : undefined, + ResourceType: output.ResourceType !== undefined && output.ResourceType !== null ? output.ResourceType : undefined, + } as any; +}; + +const deserializeAws_json1_1ConsumedLicenseSummaryList = ( + output: any, + context: __SerdeContext +): ConsumedLicenseSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ConsumedLicenseSummary(entry, context)); +}; + +const deserializeAws_json1_1ConsumptionConfiguration = ( + output: any, + context: __SerdeContext +): ConsumptionConfiguration => { + return { + BorrowConfiguration: + output.BorrowConfiguration !== undefined && output.BorrowConfiguration !== null + ? deserializeAws_json1_1BorrowConfiguration(output.BorrowConfiguration, context) + : undefined, + ProvisionalConfiguration: + output.ProvisionalConfiguration !== undefined && output.ProvisionalConfiguration !== null + ? deserializeAws_json1_1ProvisionalConfiguration(output.ProvisionalConfiguration, context) + : undefined, + RenewType: output.RenewType !== undefined && output.RenewType !== null ? output.RenewType : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateGrantResponse = (output: any, context: __SerdeContext): CreateGrantResponse => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateGrantVersionResponse = ( + output: any, + context: __SerdeContext +): CreateGrantVersionResponse => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateLicenseConfigurationResponse = ( + output: any, + context: __SerdeContext +): CreateLicenseConfigurationResponse => { + return { + LicenseConfigurationArn: + output.LicenseConfigurationArn !== undefined && output.LicenseConfigurationArn !== null + ? output.LicenseConfigurationArn + : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateLicenseResponse = (output: any, context: __SerdeContext): CreateLicenseResponse => { + return { + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateLicenseVersionResponse = ( + output: any, context: __SerdeContext -): any => { +): CreateLicenseVersionResponse => { return { - ...(input.EnableCrossAccountsDiscovery !== undefined && { - EnableCrossAccountsDiscovery: input.EnableCrossAccountsDiscovery, - }), - ...(input.OrganizationConfiguration !== undefined && { - OrganizationConfiguration: serializeAws_json1_1OrganizationConfiguration( - input.OrganizationConfiguration, - context - ), - }), - ...(input.S3BucketArn !== undefined && { S3BucketArn: input.S3BucketArn }), - ...(input.SnsTopicArn !== undefined && { SnsTopicArn: input.SnsTopicArn }), - }; + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; }; -const deserializeAws_json1_1AccessDeniedException = (output: any, context: __SerdeContext): AccessDeniedException => { +const deserializeAws_json1_1CreateTokenResponse = (output: any, context: __SerdeContext): CreateTokenResponse => { return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined, + TokenId: output.TokenId !== undefined && output.TokenId !== null ? output.TokenId : undefined, + TokenType: output.TokenType !== undefined && output.TokenType !== null ? output.TokenType : undefined, } as any; }; -const deserializeAws_json1_1AuthorizationException = (output: any, context: __SerdeContext): AuthorizationException => { +const deserializeAws_json1_1DatetimeRange = (output: any, context: __SerdeContext): DatetimeRange => { return { - Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + Begin: output.Begin !== undefined && output.Begin !== null ? output.Begin : undefined, + End: output.End !== undefined && output.End !== null ? output.End : undefined, } as any; }; -const deserializeAws_json1_1AutomatedDiscoveryInformation = ( +const deserializeAws_json1_1DeleteGrantResponse = (output: any, context: __SerdeContext): DeleteGrantResponse => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1DeleteLicenseConfigurationResponse = ( output: any, context: __SerdeContext -): AutomatedDiscoveryInformation => { +): DeleteLicenseConfigurationResponse => { + return {} as any; +}; + +const deserializeAws_json1_1DeleteLicenseResponse = (output: any, context: __SerdeContext): DeleteLicenseResponse => { return { - LastRunTime: - output.LastRunTime !== undefined && output.LastRunTime !== null - ? new Date(Math.round(output.LastRunTime * 1000)) - : undefined, + DeletionDate: output.DeletionDate !== undefined && output.DeletionDate !== null ? output.DeletionDate : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, } as any; }; -const deserializeAws_json1_1ConsumedLicenseSummary = (output: any, context: __SerdeContext): ConsumedLicenseSummary => { +const deserializeAws_json1_1DeleteTokenResponse = (output: any, context: __SerdeContext): DeleteTokenResponse => { + return {} as any; +}; + +const deserializeAws_json1_1Entitlement = (output: any, context: __SerdeContext): Entitlement => { return { - ConsumedLicenses: - output.ConsumedLicenses !== undefined && output.ConsumedLicenses !== null ? output.ConsumedLicenses : undefined, - ResourceType: output.ResourceType !== undefined && output.ResourceType !== null ? output.ResourceType : undefined, + AllowCheckIn: output.AllowCheckIn !== undefined && output.AllowCheckIn !== null ? output.AllowCheckIn : undefined, + MaxCount: output.MaxCount !== undefined && output.MaxCount !== null ? output.MaxCount : undefined, + Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, + Overage: output.Overage !== undefined && output.Overage !== null ? output.Overage : undefined, + Unit: output.Unit !== undefined && output.Unit !== null ? output.Unit : undefined, + Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined, } as any; }; -const deserializeAws_json1_1ConsumedLicenseSummaryList = ( - output: any, - context: __SerdeContext -): ConsumedLicenseSummary[] => { - return (output || []).map((entry: any) => deserializeAws_json1_1ConsumedLicenseSummary(entry, context)); +const deserializeAws_json1_1EntitlementData = (output: any, context: __SerdeContext): EntitlementData => { + return { + Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, + Unit: output.Unit !== undefined && output.Unit !== null ? output.Unit : undefined, + Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined, + } as any; }; -const deserializeAws_json1_1CreateLicenseConfigurationResponse = ( +const deserializeAws_json1_1EntitlementDataList = (output: any, context: __SerdeContext): EntitlementData[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EntitlementData(entry, context)); +}; + +const deserializeAws_json1_1EntitlementList = (output: any, context: __SerdeContext): Entitlement[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1Entitlement(entry, context)); +}; + +const deserializeAws_json1_1EntitlementNotAllowedException = ( output: any, context: __SerdeContext -): CreateLicenseConfigurationResponse => { +): EntitlementNotAllowedException => { return { - LicenseConfigurationArn: - output.LicenseConfigurationArn !== undefined && output.LicenseConfigurationArn !== null - ? output.LicenseConfigurationArn - : undefined, + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, } as any; }; -const deserializeAws_json1_1DeleteLicenseConfigurationResponse = ( +const deserializeAws_json1_1EntitlementUsage = (output: any, context: __SerdeContext): EntitlementUsage => { + return { + ConsumedValue: + output.ConsumedValue !== undefined && output.ConsumedValue !== null ? output.ConsumedValue : undefined, + MaxCount: output.MaxCount !== undefined && output.MaxCount !== null ? output.MaxCount : undefined, + Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, + Unit: output.Unit !== undefined && output.Unit !== null ? output.Unit : undefined, + } as any; +}; + +const deserializeAws_json1_1EntitlementUsageList = (output: any, context: __SerdeContext): EntitlementUsage[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EntitlementUsage(entry, context)); +}; + +const deserializeAws_json1_1ExtendLicenseConsumptionResponse = ( output: any, context: __SerdeContext -): DeleteLicenseConfigurationResponse => { - return {} as any; +): ExtendLicenseConsumptionResponse => { + return { + Expiration: output.Expiration !== undefined && output.Expiration !== null ? output.Expiration : undefined, + LicenseConsumptionToken: + output.LicenseConsumptionToken !== undefined && output.LicenseConsumptionToken !== null + ? output.LicenseConsumptionToken + : undefined, + } as any; }; const deserializeAws_json1_1FailedDependencyException = ( @@ -2295,6 +5911,7 @@ const deserializeAws_json1_1FailedDependencyException = ( context: __SerdeContext ): FailedDependencyException => { return { + ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined, Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, } as any; }; @@ -2308,6 +5925,21 @@ const deserializeAws_json1_1FilterLimitExceededException = ( } as any; }; +const deserializeAws_json1_1GetAccessTokenResponse = (output: any, context: __SerdeContext): GetAccessTokenResponse => { + return { + AccessToken: output.AccessToken !== undefined && output.AccessToken !== null ? output.AccessToken : undefined, + } as any; +}; + +const deserializeAws_json1_1GetGrantResponse = (output: any, context: __SerdeContext): GetGrantResponse => { + return { + Grant: + output.Grant !== undefined && output.Grant !== null + ? deserializeAws_json1_1Grant(output.Grant, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1GetLicenseConfigurationResponse = ( output: any, context: __SerdeContext @@ -2324,6 +5956,10 @@ const deserializeAws_json1_1GetLicenseConfigurationResponse = ( ConsumedLicenses: output.ConsumedLicenses !== undefined && output.ConsumedLicenses !== null ? output.ConsumedLicenses : undefined, Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DisassociateWhenNotFound: + output.DisassociateWhenNotFound !== undefined && output.DisassociateWhenNotFound !== null + ? output.DisassociateWhenNotFound + : undefined, LicenseConfigurationArn: output.LicenseConfigurationArn !== undefined && output.LicenseConfigurationArn !== null ? output.LicenseConfigurationArn @@ -2364,6 +6000,27 @@ const deserializeAws_json1_1GetLicenseConfigurationResponse = ( } as any; }; +const deserializeAws_json1_1GetLicenseResponse = (output: any, context: __SerdeContext): GetLicenseResponse => { + return { + License: + output.License !== undefined && output.License !== null + ? deserializeAws_json1_1License(output.License, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1GetLicenseUsageResponse = ( + output: any, + context: __SerdeContext +): GetLicenseUsageResponse => { + return { + LicenseUsage: + output.LicenseUsage !== undefined && output.LicenseUsage !== null + ? deserializeAws_json1_1LicenseUsage(output.LicenseUsage, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1GetServiceSettingsResponse = ( output: any, context: __SerdeContext @@ -2386,6 +6043,73 @@ const deserializeAws_json1_1GetServiceSettingsResponse = ( } as any; }; +const deserializeAws_json1_1Grant = (output: any, context: __SerdeContext): Grant => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + GrantName: output.GrantName !== undefined && output.GrantName !== null ? output.GrantName : undefined, + GrantStatus: output.GrantStatus !== undefined && output.GrantStatus !== null ? output.GrantStatus : undefined, + GrantedOperations: + output.GrantedOperations !== undefined && output.GrantedOperations !== null + ? deserializeAws_json1_1AllowedOperationList(output.GrantedOperations, context) + : undefined, + GranteePrincipalArn: + output.GranteePrincipalArn !== undefined && output.GranteePrincipalArn !== null + ? output.GranteePrincipalArn + : undefined, + HomeRegion: output.HomeRegion !== undefined && output.HomeRegion !== null ? output.HomeRegion : undefined, + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + ParentArn: output.ParentArn !== undefined && output.ParentArn !== null ? output.ParentArn : undefined, + StatusReason: output.StatusReason !== undefined && output.StatusReason !== null ? output.StatusReason : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1GrantedLicense = (output: any, context: __SerdeContext): GrantedLicense => { + return { + Beneficiary: output.Beneficiary !== undefined && output.Beneficiary !== null ? output.Beneficiary : undefined, + ConsumptionConfiguration: + output.ConsumptionConfiguration !== undefined && output.ConsumptionConfiguration !== null + ? deserializeAws_json1_1ConsumptionConfiguration(output.ConsumptionConfiguration, context) + : undefined, + CreateTime: output.CreateTime !== undefined && output.CreateTime !== null ? output.CreateTime : undefined, + Entitlements: + output.Entitlements !== undefined && output.Entitlements !== null + ? deserializeAws_json1_1EntitlementList(output.Entitlements, context) + : undefined, + HomeRegion: output.HomeRegion !== undefined && output.HomeRegion !== null ? output.HomeRegion : undefined, + Issuer: + output.Issuer !== undefined && output.Issuer !== null + ? deserializeAws_json1_1IssuerDetails(output.Issuer, context) + : undefined, + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + LicenseMetadata: + output.LicenseMetadata !== undefined && output.LicenseMetadata !== null + ? deserializeAws_json1_1MetadataList(output.LicenseMetadata, context) + : undefined, + LicenseName: output.LicenseName !== undefined && output.LicenseName !== null ? output.LicenseName : undefined, + ProductName: output.ProductName !== undefined && output.ProductName !== null ? output.ProductName : undefined, + ProductSKU: output.ProductSKU !== undefined && output.ProductSKU !== null ? output.ProductSKU : undefined, + ReceivedMetadata: + output.ReceivedMetadata !== undefined && output.ReceivedMetadata !== null + ? deserializeAws_json1_1ReceivedMetadata(output.ReceivedMetadata, context) + : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Validity: + output.Validity !== undefined && output.Validity !== null + ? deserializeAws_json1_1DatetimeRange(output.Validity, context) + : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1GrantedLicenseList = (output: any, context: __SerdeContext): GrantedLicense[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1GrantedLicense(entry, context)); +}; + +const deserializeAws_json1_1GrantList = (output: any, context: __SerdeContext): Grant[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1Grant(entry, context)); +}; + const deserializeAws_json1_1InvalidParameterValueException = ( output: any, context: __SerdeContext @@ -2404,6 +6128,49 @@ const deserializeAws_json1_1InvalidResourceStateException = ( } as any; }; +const deserializeAws_json1_1IssuerDetails = (output: any, context: __SerdeContext): IssuerDetails => { + return { + KeyFingerprint: + output.KeyFingerprint !== undefined && output.KeyFingerprint !== null ? output.KeyFingerprint : undefined, + Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, + SignKey: output.SignKey !== undefined && output.SignKey !== null ? output.SignKey : undefined, + } as any; +}; + +const deserializeAws_json1_1License = (output: any, context: __SerdeContext): License => { + return { + Beneficiary: output.Beneficiary !== undefined && output.Beneficiary !== null ? output.Beneficiary : undefined, + ConsumptionConfiguration: + output.ConsumptionConfiguration !== undefined && output.ConsumptionConfiguration !== null + ? deserializeAws_json1_1ConsumptionConfiguration(output.ConsumptionConfiguration, context) + : undefined, + CreateTime: output.CreateTime !== undefined && output.CreateTime !== null ? output.CreateTime : undefined, + Entitlements: + output.Entitlements !== undefined && output.Entitlements !== null + ? deserializeAws_json1_1EntitlementList(output.Entitlements, context) + : undefined, + HomeRegion: output.HomeRegion !== undefined && output.HomeRegion !== null ? output.HomeRegion : undefined, + Issuer: + output.Issuer !== undefined && output.Issuer !== null + ? deserializeAws_json1_1IssuerDetails(output.Issuer, context) + : undefined, + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + LicenseMetadata: + output.LicenseMetadata !== undefined && output.LicenseMetadata !== null + ? deserializeAws_json1_1MetadataList(output.LicenseMetadata, context) + : undefined, + LicenseName: output.LicenseName !== undefined && output.LicenseName !== null ? output.LicenseName : undefined, + ProductName: output.ProductName !== undefined && output.ProductName !== null ? output.ProductName : undefined, + ProductSKU: output.ProductSKU !== undefined && output.ProductSKU !== null ? output.ProductSKU : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Validity: + output.Validity !== undefined && output.Validity !== null + ? deserializeAws_json1_1DatetimeRange(output.Validity, context) + : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + const deserializeAws_json1_1LicenseConfiguration = (output: any, context: __SerdeContext): LicenseConfiguration => { return { AutomatedDiscoveryInformation: @@ -2417,6 +6184,10 @@ const deserializeAws_json1_1LicenseConfiguration = (output: any, context: __Serd ConsumedLicenses: output.ConsumedLicenses !== undefined && output.ConsumedLicenses !== null ? output.ConsumedLicenses : undefined, Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DisassociateWhenNotFound: + output.DisassociateWhenNotFound !== undefined && output.DisassociateWhenNotFound !== null + ? output.DisassociateWhenNotFound + : undefined, LicenseConfigurationArn: output.LicenseConfigurationArn !== undefined && output.LicenseConfigurationArn !== null ? output.LicenseConfigurationArn @@ -2511,6 +6282,10 @@ const deserializeAws_json1_1LicenseConfigurationUsageList = ( return (output || []).map((entry: any) => deserializeAws_json1_1LicenseConfigurationUsage(entry, context)); }; +const deserializeAws_json1_1LicenseList = (output: any, context: __SerdeContext): License[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1License(entry, context)); +}; + const deserializeAws_json1_1LicenseOperationFailure = ( output: any, context: __SerdeContext @@ -2562,6 +6337,15 @@ const deserializeAws_json1_1LicenseSpecifications = (output: any, context: __Ser return (output || []).map((entry: any) => deserializeAws_json1_1LicenseSpecification(entry, context)); }; +const deserializeAws_json1_1LicenseUsage = (output: any, context: __SerdeContext): LicenseUsage => { + return { + EntitlementUsages: + output.EntitlementUsages !== undefined && output.EntitlementUsages !== null + ? deserializeAws_json1_1EntitlementUsageList(output.EntitlementUsages, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1LicenseUsageException = (output: any, context: __SerdeContext): LicenseUsageException => { return { Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, @@ -2581,6 +6365,19 @@ const deserializeAws_json1_1ListAssociationsForLicenseConfigurationResponse = ( } as any; }; +const deserializeAws_json1_1ListDistributedGrantsResponse = ( + output: any, + context: __SerdeContext +): ListDistributedGrantsResponse => { + return { + Grants: + output.Grants !== undefined && output.Grants !== null + ? deserializeAws_json1_1GrantList(output.Grants, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + const deserializeAws_json1_1ListFailuresForLicenseConfigurationOperationsResponse = ( output: any, context: __SerdeContext @@ -2620,6 +6417,55 @@ const deserializeAws_json1_1ListLicenseSpecificationsForResourceResponse = ( } as any; }; +const deserializeAws_json1_1ListLicensesResponse = (output: any, context: __SerdeContext): ListLicensesResponse => { + return { + Licenses: + output.Licenses !== undefined && output.Licenses !== null + ? deserializeAws_json1_1LicenseList(output.Licenses, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListLicenseVersionsResponse = ( + output: any, + context: __SerdeContext +): ListLicenseVersionsResponse => { + return { + Licenses: + output.Licenses !== undefined && output.Licenses !== null + ? deserializeAws_json1_1LicenseList(output.Licenses, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListReceivedGrantsResponse = ( + output: any, + context: __SerdeContext +): ListReceivedGrantsResponse => { + return { + Grants: + output.Grants !== undefined && output.Grants !== null + ? deserializeAws_json1_1GrantList(output.Grants, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListReceivedLicensesResponse = ( + output: any, + context: __SerdeContext +): ListReceivedLicensesResponse => { + return { + Licenses: + output.Licenses !== undefined && output.Licenses !== null + ? deserializeAws_json1_1GrantedLicenseList(output.Licenses, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + const deserializeAws_json1_1ListResourceInventoryResponse = ( output: any, context: __SerdeContext @@ -2645,6 +6491,16 @@ const deserializeAws_json1_1ListTagsForResourceResponse = ( } as any; }; +const deserializeAws_json1_1ListTokensResponse = (output: any, context: __SerdeContext): ListTokensResponse => { + return { + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + Tokens: + output.Tokens !== undefined && output.Tokens !== null + ? deserializeAws_json1_1TokenList(output.Tokens, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ListUsageForLicenseConfigurationResponse = ( output: any, context: __SerdeContext @@ -2673,6 +6529,10 @@ const deserializeAws_json1_1ManagedResourceSummaryList = ( return (output || []).map((entry: any) => deserializeAws_json1_1ManagedResourceSummary(entry, context)); }; +const deserializeAws_json1_1MaxSize3StringList = (output: any, context: __SerdeContext): string[] => { + return (output || []).map((entry: any) => entry); +}; + const deserializeAws_json1_1Metadata = (output: any, context: __SerdeContext): Metadata => { return { Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined, @@ -2684,6 +6544,15 @@ const deserializeAws_json1_1MetadataList = (output: any, context: __SerdeContext return (output || []).map((entry: any) => deserializeAws_json1_1Metadata(entry, context)); }; +const deserializeAws_json1_1NoEntitlementsAllowedException = ( + output: any, + context: __SerdeContext +): NoEntitlementsAllowedException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeAws_json1_1OrganizationConfiguration = ( output: any, context: __SerdeContext @@ -2737,6 +6606,18 @@ const deserializeAws_json1_1ProductInformationList = (output: any, context: __Se return (output || []).map((entry: any) => deserializeAws_json1_1ProductInformation(entry, context)); }; +const deserializeAws_json1_1ProvisionalConfiguration = ( + output: any, + context: __SerdeContext +): ProvisionalConfiguration => { + return { + MaxTimeToLiveInMinutes: + output.MaxTimeToLiveInMinutes !== undefined && output.MaxTimeToLiveInMinutes !== null + ? output.MaxTimeToLiveInMinutes + : undefined, + } as any; +}; + const deserializeAws_json1_1RateLimitExceededException = ( output: any, context: __SerdeContext @@ -2746,6 +6627,32 @@ const deserializeAws_json1_1RateLimitExceededException = ( } as any; }; +const deserializeAws_json1_1ReceivedMetadata = (output: any, context: __SerdeContext): ReceivedMetadata => { + return { + AllowedOperations: + output.AllowedOperations !== undefined && output.AllowedOperations !== null + ? deserializeAws_json1_1AllowedOperationList(output.AllowedOperations, context) + : undefined, + ReceivedStatus: + output.ReceivedStatus !== undefined && output.ReceivedStatus !== null ? output.ReceivedStatus : undefined, + } as any; +}; + +const deserializeAws_json1_1RedirectException = (output: any, context: __SerdeContext): RedirectException => { + return { + Location: output.Location !== undefined && output.Location !== null ? output.Location : undefined, + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + +const deserializeAws_json1_1RejectGrantResponse = (output: any, context: __SerdeContext): RejectGrantResponse => { + return { + GrantArn: output.GrantArn !== undefined && output.GrantArn !== null ? output.GrantArn : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + const deserializeAws_json1_1ResourceInventory = (output: any, context: __SerdeContext): ResourceInventory => { return { Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined, @@ -2774,6 +6681,15 @@ const deserializeAws_json1_1ResourceLimitExceededException = ( } as any; }; +const deserializeAws_json1_1ResourceNotFoundException = ( + output: any, + context: __SerdeContext +): ResourceNotFoundException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeAws_json1_1ServerInternalException = ( output: any, context: __SerdeContext @@ -2802,6 +6718,38 @@ const deserializeAws_json1_1TagResourceResponse = (output: any, context: __Serde return {} as any; }; +const deserializeAws_json1_1TokenData = (output: any, context: __SerdeContext): TokenData => { + return { + ExpirationTime: + output.ExpirationTime !== undefined && output.ExpirationTime !== null ? output.ExpirationTime : undefined, + LicenseArn: output.LicenseArn !== undefined && output.LicenseArn !== null ? output.LicenseArn : undefined, + RoleArns: + output.RoleArns !== undefined && output.RoleArns !== null + ? deserializeAws_json1_1ArnList(output.RoleArns, context) + : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + TokenId: output.TokenId !== undefined && output.TokenId !== null ? output.TokenId : undefined, + TokenProperties: + output.TokenProperties !== undefined && output.TokenProperties !== null + ? deserializeAws_json1_1MaxSize3StringList(output.TokenProperties, context) + : undefined, + TokenType: output.TokenType !== undefined && output.TokenType !== null ? output.TokenType : undefined, + } as any; +}; + +const deserializeAws_json1_1TokenList = (output: any, context: __SerdeContext): TokenData[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1TokenData(entry, context)); +}; + +const deserializeAws_json1_1UnsupportedDigitalSignatureMethodException = ( + output: any, + context: __SerdeContext +): UnsupportedDigitalSignatureMethodException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeAws_json1_1UntagResourceResponse = (output: any, context: __SerdeContext): UntagResourceResponse => { return {} as any; }; @@ -2827,6 +6775,12 @@ const deserializeAws_json1_1UpdateServiceSettingsResponse = ( return {} as any; }; +const deserializeAws_json1_1ValidationException = (output: any, context: __SerdeContext): ValidationException => { + return { + Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined, + } as any; +}; + const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, httpHeaders: output.headers, diff --git a/clients/client-medialive/models/models_0.ts b/clients/client-medialive/models/models_0.ts index 12b396b6676d7..154dd5ac948ef 100644 --- a/clients/client-medialive/models/models_0.ts +++ b/clients/client-medialive/models/models_0.ts @@ -1821,6 +1821,27 @@ export namespace OutputDestination { }); } +/** + * Placeholder documentation for AudioSilenceFailoverSettings + */ +export interface AudioSilenceFailoverSettings { + /** + * The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank. + */ + AudioSelectorName: string | undefined; + + /** + * The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS. + */ + AudioSilenceThresholdMsec?: number; +} + +export namespace AudioSilenceFailoverSettings { + export const filterSensitiveLog = (obj: AudioSilenceFailoverSettings): any => ({ + ...obj, + }); +} + /** * MediaLive will perform a failover if content is not detected in this input for the specified period. */ @@ -1837,14 +1858,45 @@ export namespace InputLossFailoverSettings { }); } +/** + * Placeholder documentation for VideoBlackFailoverSettings + */ +export interface VideoBlackFailoverSettings { + /** + * A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'. For the input to be considered black, every pixel in a frame must be below this threshold. The threshold is calculated as a percentage (expressed as a decimal) of white. Therefore .1 means 10% white (or 90% black). Note how the formula works for any color depth. For example, if you set this field to 0.1 in 10-bit color depth: (1023*0.1=102.3), which means a pixel value of 102 or less is 'black'. If you set this field to .1 in an 8-bit color depth: (255*0.1=25.5), which means a pixel value of 25 or less is 'black'. The range is 0.0 to 1.0, with any number of decimal places. + */ + BlackDetectThreshold?: number; + + /** + * The amount of time (in milliseconds) that the active input must be black before automatic input failover occurs. + */ + VideoBlackThresholdMsec?: number; +} + +export namespace VideoBlackFailoverSettings { + export const filterSensitiveLog = (obj: VideoBlackFailoverSettings): any => ({ + ...obj, + }); +} + /** * Settings for one failover condition. */ export interface FailoverConditionSettings { + /** + * MediaLive will perform a failover if the specified audio selector is silent for the specified period. + */ + AudioSilenceSettings?: AudioSilenceFailoverSettings; + /** * MediaLive will perform a failover if content is not detected in this input for the specified period. */ InputLossSettings?: InputLossFailoverSettings; + + /** + * MediaLive will perform a failover if content is considered black for the specified period. + */ + VideoBlackSettings?: VideoBlackFailoverSettings; } export namespace FailoverConditionSettings { @@ -2726,6 +2778,57 @@ export enum InputDeviceType { HD = "HD", } +/** + * Settings that describe the active source from the input device, and the video characteristics of that source. + */ +export interface InputDeviceUhdSettings { + /** + * If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI). + */ + ActiveInput?: InputDeviceActiveInput | string; + + /** + * The source at the input device that is currently active. You can specify this source. + */ + ConfiguredInput?: InputDeviceConfiguredInput | string; + + /** + * The state of the input device. + */ + DeviceState?: InputDeviceState | string; + + /** + * The frame rate of the video source. + */ + Framerate?: number; + + /** + * The height of the video source, in pixels. + */ + Height?: number; + + /** + * The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum. + */ + MaxBitrate?: number; + + /** + * The scan type of the video source. + */ + ScanType?: InputDeviceScanType | string; + + /** + * The width of the video source, in pixels. + */ + Width?: number; +} + +export namespace InputDeviceUhdSettings { + export const filterSensitiveLog = (obj: InputDeviceUhdSettings): any => ({ + ...obj, + }); +} + /** * Details of the input device. */ @@ -2784,6 +2887,11 @@ export interface InputDeviceSummary { * The type of the input device. */ Type?: InputDeviceType | string; + + /** + * Settings that describe an input device that is type UHD. + */ + UhdDeviceSettings?: InputDeviceUhdSettings; } export namespace InputDeviceSummary { @@ -5322,50 +5430,3 @@ export namespace OutputGroup { ...obj, }); } - -/** - * Runtime details of a pipeline when a channel is running. - */ -export interface PipelineDetail { - /** - * The name of the active input attachment currently being ingested by this pipeline. - */ - ActiveInputAttachmentName?: string; - - /** - * The name of the input switch schedule action that occurred most recently and that resulted in the switch to the current input attachment for this pipeline. - */ - ActiveInputSwitchActionName?: string; - - /** - * Pipeline ID - */ - PipelineId?: string; -} - -export namespace PipelineDetail { - export const filterSensitiveLog = (obj: PipelineDetail): any => ({ - ...obj, - }); -} - -export enum PipelineId { - PIPELINE_0 = "PIPELINE_0", - PIPELINE_1 = "PIPELINE_1", -} - -/** - * Settings for pausing a pipeline. - */ -export interface PipelinePauseStateSettings { - /** - * Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1"). - */ - PipelineId: PipelineId | string | undefined; -} - -export namespace PipelinePauseStateSettings { - export const filterSensitiveLog = (obj: PipelinePauseStateSettings): any => ({ - ...obj, - }); -} diff --git a/clients/client-medialive/models/models_1.ts b/clients/client-medialive/models/models_1.ts index 3b18483ef99f8..ca35686dfd102 100644 --- a/clients/client-medialive/models/models_1.ts +++ b/clients/client-medialive/models/models_1.ts @@ -23,6 +23,7 @@ import { InputDeviceSettings, InputDeviceSummary, InputDeviceType, + InputDeviceUhdSettings, InputLocation, InputSecurityGroup, InputSecurityGroupState, @@ -47,14 +48,59 @@ import { OfferingType, OutputDestination, OutputGroup, - PipelineDetail, - PipelinePauseStateSettings, ReservationResourceSpecification, } from "./models_0"; import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; import { Readable } from "stream"; +/** + * Runtime details of a pipeline when a channel is running. + */ +export interface PipelineDetail { + /** + * The name of the active input attachment currently being ingested by this pipeline. + */ + ActiveInputAttachmentName?: string; + + /** + * The name of the input switch schedule action that occurred most recently and that resulted in the switch to the current input attachment for this pipeline. + */ + ActiveInputSwitchActionName?: string; + + /** + * Pipeline ID + */ + PipelineId?: string; +} + +export namespace PipelineDetail { + export const filterSensitiveLog = (obj: PipelineDetail): any => ({ + ...obj, + }); +} + +export enum PipelineId { + PIPELINE_0 = "PIPELINE_0", + PIPELINE_1 = "PIPELINE_1", +} + +/** + * Settings for pausing a pipeline. + */ +export interface PipelinePauseStateSettings { + /** + * Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1"). + */ + PipelineId: PipelineId | string | undefined; +} + +export namespace PipelinePauseStateSettings { + export const filterSensitiveLog = (obj: PipelinePauseStateSettings): any => ({ + ...obj, + }); +} + export enum ReservationState { ACTIVE = "ACTIVE", CANCELED = "CANCELED", @@ -4402,6 +4448,11 @@ export interface DescribeInputDeviceResponse { * The type of the input device. */ Type?: InputDeviceType | string; + + /** + * Settings that describe an input device that is type UHD. + */ + UhdDeviceSettings?: InputDeviceUhdSettings; } export namespace DescribeInputDeviceResponse { @@ -6118,7 +6169,7 @@ export namespace UpdateInputResponse { */ export interface UpdateInputDeviceRequest { /** - * The settings that you want to apply to the input device. + * The settings that you want to apply to the HD input device. */ HdDeviceSettings?: InputDeviceConfigurableSettings; @@ -6131,6 +6182,11 @@ export interface UpdateInputDeviceRequest { * The name that you assigned to this input device (not the unique ID). */ Name?: string; + + /** + * The settings that you want to apply to the UHD input device. + */ + UhdDeviceSettings?: InputDeviceConfigurableSettings; } export namespace UpdateInputDeviceRequest { @@ -6197,6 +6253,11 @@ export interface UpdateInputDeviceResponse { * The type of the input device. */ Type?: InputDeviceType | string; + + /** + * Settings that describe an input device that is type UHD. + */ + UhdDeviceSettings?: InputDeviceUhdSettings; } export namespace UpdateInputDeviceResponse { diff --git a/clients/client-medialive/protocols/Aws_restJson1.ts b/clients/client-medialive/protocols/Aws_restJson1.ts index c7ff97c96997b..ff6b24ca82830 100644 --- a/clients/client-medialive/protocols/Aws_restJson1.ts +++ b/clients/client-medialive/protocols/Aws_restJson1.ts @@ -131,6 +131,7 @@ import { AudioPidSelection, AudioSelector, AudioSelectorSettings, + AudioSilenceFailoverSettings, AudioTrack, AudioTrackSelection, AutomaticInputFailoverSettings, @@ -182,6 +183,7 @@ import { InputDeviceRequest, InputDeviceSettings, InputDeviceSummary, + InputDeviceUhdSettings, InputLocation, InputLossFailoverSettings, InputSecurityGroup, @@ -221,8 +223,6 @@ import { OutputLocationRef, OutputSettings, PassThroughSettings, - PipelineDetail, - PipelinePauseStateSettings, RawSettings, RemixSettings, ReservationResourceSpecification, @@ -243,6 +243,7 @@ import { UdpContainerSettings, UdpGroupSettings, UdpOutputSettings, + VideoBlackFailoverSettings, VideoSelector, VideoSelectorPid, VideoSelectorProgramId, @@ -302,6 +303,8 @@ import { NielsenConfiguration, NotFoundException, PauseStateScheduleActionSettings, + PipelineDetail, + PipelinePauseStateSettings, Rec601Settings, Rec709Settings, Reservation, @@ -1989,6 +1992,9 @@ export const serializeAws_restJson1UpdateInputDeviceCommand = async ( hdDeviceSettings: serializeAws_restJson1InputDeviceConfigurableSettings(input.HdDeviceSettings, context), }), ...(input.Name !== undefined && { name: input.Name }), + ...(input.UhdDeviceSettings !== undefined && { + uhdDeviceSettings: serializeAws_restJson1InputDeviceConfigurableSettings(input.UhdDeviceSettings, context), + }), }); const { hostname, protocol = "https", port } = await context.endpoint(); return new __HttpRequest({ @@ -4797,6 +4803,7 @@ export const deserializeAws_restJson1DescribeInputDeviceCommand = async ( NetworkSettings: undefined, SerialNumber: undefined, Type: undefined, + UhdDeviceSettings: undefined, }; const data: any = await parseBody(output.body, context); if (data.arn !== undefined && data.arn !== null) { @@ -4832,6 +4839,9 @@ export const deserializeAws_restJson1DescribeInputDeviceCommand = async ( if (data.type !== undefined && data.type !== null) { contents.Type = data.type; } + if (data.uhdDeviceSettings !== undefined && data.uhdDeviceSettings !== null) { + contents.UhdDeviceSettings = deserializeAws_restJson1InputDeviceUhdSettings(data.uhdDeviceSettings, context); + } return Promise.resolve(contents); }; @@ -8171,6 +8181,7 @@ export const deserializeAws_restJson1UpdateInputDeviceCommand = async ( NetworkSettings: undefined, SerialNumber: undefined, Type: undefined, + UhdDeviceSettings: undefined, }; const data: any = await parseBody(output.body, context); if (data.arn !== undefined && data.arn !== null) { @@ -8206,6 +8217,9 @@ export const deserializeAws_restJson1UpdateInputDeviceCommand = async ( if (data.type !== undefined && data.type !== null) { contents.Type = data.type; } + if (data.uhdDeviceSettings !== undefined && data.uhdDeviceSettings !== null) { + contents.UhdDeviceSettings = deserializeAws_restJson1InputDeviceUhdSettings(data.uhdDeviceSettings, context); + } return Promise.resolve(contents); }; @@ -9241,6 +9255,18 @@ const serializeAws_restJson1AudioSelectorSettings = (input: AudioSelectorSetting }; }; +const serializeAws_restJson1AudioSilenceFailoverSettings = ( + input: AudioSilenceFailoverSettings, + context: __SerdeContext +): any => { + return { + ...(input.AudioSelectorName !== undefined && { audioSelectorName: input.AudioSelectorName }), + ...(input.AudioSilenceThresholdMsec !== undefined && { + audioSilenceThresholdMsec: input.AudioSilenceThresholdMsec, + }), + }; +}; + const serializeAws_restJson1AudioTrack = (input: AudioTrack, context: __SerdeContext): any => { return { ...(input.Track !== undefined && { track: input.Track }), @@ -9675,9 +9701,15 @@ const serializeAws_restJson1FailoverConditionSettings = ( context: __SerdeContext ): any => { return { + ...(input.AudioSilenceSettings !== undefined && { + audioSilenceSettings: serializeAws_restJson1AudioSilenceFailoverSettings(input.AudioSilenceSettings, context), + }), ...(input.InputLossSettings !== undefined && { inputLossSettings: serializeAws_restJson1InputLossFailoverSettings(input.InputLossSettings, context), }), + ...(input.VideoBlackSettings !== undefined && { + videoBlackSettings: serializeAws_restJson1VideoBlackFailoverSettings(input.VideoBlackSettings, context), + }), }; }; @@ -11162,6 +11194,16 @@ const serializeAws_restJson1UdpOutputSettings = (input: UdpOutputSettings, conte }; }; +const serializeAws_restJson1VideoBlackFailoverSettings = ( + input: VideoBlackFailoverSettings, + context: __SerdeContext +): any => { + return { + ...(input.BlackDetectThreshold !== undefined && { blackDetectThreshold: input.BlackDetectThreshold }), + ...(input.VideoBlackThresholdMsec !== undefined && { videoBlackThresholdMsec: input.VideoBlackThresholdMsec }), + }; +}; + const serializeAws_restJson1VideoCodecSettings = (input: VideoCodecSettings, context: __SerdeContext): any => { return { ...(input.FrameCaptureSettings !== undefined && { @@ -11717,6 +11759,22 @@ const deserializeAws_restJson1AudioSelectorSettings = (output: any, context: __S } as any; }; +const deserializeAws_restJson1AudioSilenceFailoverSettings = ( + output: any, + context: __SerdeContext +): AudioSilenceFailoverSettings => { + return { + AudioSelectorName: + output.audioSelectorName !== undefined && output.audioSelectorName !== null + ? output.audioSelectorName + : undefined, + AudioSilenceThresholdMsec: + output.audioSilenceThresholdMsec !== undefined && output.audioSilenceThresholdMsec !== null + ? output.audioSilenceThresholdMsec + : undefined, + } as any; +}; + const deserializeAws_restJson1AudioTrack = (output: any, context: __SerdeContext): AudioTrack => { return { Track: output.track !== undefined && output.track !== null ? output.track : undefined, @@ -12371,10 +12429,18 @@ const deserializeAws_restJson1FailoverConditionSettings = ( context: __SerdeContext ): FailoverConditionSettings => { return { + AudioSilenceSettings: + output.audioSilenceSettings !== undefined && output.audioSilenceSettings !== null + ? deserializeAws_restJson1AudioSilenceFailoverSettings(output.audioSilenceSettings, context) + : undefined, InputLossSettings: output.inputLossSettings !== undefined && output.inputLossSettings !== null ? deserializeAws_restJson1InputLossFailoverSettings(output.inputLossSettings, context) : undefined, + VideoBlackSettings: + output.videoBlackSettings !== undefined && output.videoBlackSettings !== null + ? deserializeAws_restJson1VideoBlackFailoverSettings(output.videoBlackSettings, context) + : undefined, } as any; }; @@ -13162,6 +13228,27 @@ const deserializeAws_restJson1InputDeviceSummary = (output: any, context: __Serd : undefined, SerialNumber: output.serialNumber !== undefined && output.serialNumber !== null ? output.serialNumber : undefined, Type: output.type !== undefined && output.type !== null ? output.type : undefined, + UhdDeviceSettings: + output.uhdDeviceSettings !== undefined && output.uhdDeviceSettings !== null + ? deserializeAws_restJson1InputDeviceUhdSettings(output.uhdDeviceSettings, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1InputDeviceUhdSettings = ( + output: any, + context: __SerdeContext +): InputDeviceUhdSettings => { + return { + ActiveInput: output.activeInput !== undefined && output.activeInput !== null ? output.activeInput : undefined, + ConfiguredInput: + output.configuredInput !== undefined && output.configuredInput !== null ? output.configuredInput : undefined, + DeviceState: output.deviceState !== undefined && output.deviceState !== null ? output.deviceState : undefined, + Framerate: output.framerate !== undefined && output.framerate !== null ? output.framerate : undefined, + Height: output.height !== undefined && output.height !== null ? output.height : undefined, + MaxBitrate: output.maxBitrate !== undefined && output.maxBitrate !== null ? output.maxBitrate : undefined, + ScanType: output.scanType !== undefined && output.scanType !== null ? output.scanType : undefined, + Width: output.width !== undefined && output.width !== null ? output.width : undefined, } as any; }; @@ -14747,6 +14834,22 @@ const deserializeAws_restJson1ValidationError = (output: any, context: __SerdeCo } as any; }; +const deserializeAws_restJson1VideoBlackFailoverSettings = ( + output: any, + context: __SerdeContext +): VideoBlackFailoverSettings => { + return { + BlackDetectThreshold: + output.blackDetectThreshold !== undefined && output.blackDetectThreshold !== null + ? output.blackDetectThreshold + : undefined, + VideoBlackThresholdMsec: + output.videoBlackThresholdMsec !== undefined && output.videoBlackThresholdMsec !== null + ? output.videoBlackThresholdMsec + : undefined, + } as any; +}; + const deserializeAws_restJson1VideoCodecSettings = (output: any, context: __SerdeContext): VideoCodecSettings => { return { FrameCaptureSettings: diff --git a/clients/client-quicksight/commands/ListNamespacesCommand.ts b/clients/client-quicksight/commands/ListNamespacesCommand.ts index 9e409f5380551..89263b202de89 100644 --- a/clients/client-quicksight/commands/ListNamespacesCommand.ts +++ b/clients/client-quicksight/commands/ListNamespacesCommand.ts @@ -1,6 +1,5 @@ import { QuickSightClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../QuickSightClient"; -import { ListNamespacesRequest } from "../models/models_0"; -import { ListNamespacesResponse } from "../models/models_1"; +import { ListNamespacesRequest, ListNamespacesResponse } from "../models/models_1"; import { deserializeAws_restJson1ListNamespacesCommand, serializeAws_restJson1ListNamespacesCommand, diff --git a/clients/client-quicksight/models/models_0.ts b/clients/client-quicksight/models/models_0.ts index 2d420246f00ab..6cce1df7fccd3 100644 --- a/clients/client-quicksight/models/models_0.ts +++ b/clients/client-quicksight/models/models_0.ts @@ -1829,6 +1829,23 @@ export namespace TransformOperation { }; } +/** + *

          Properties associated with the columns participating in a join.

          + */ +export interface JoinKeyProperties { + /** + *

          Indicates that a row in a table is uniquely identified by the columns in a + * join key. This is used by QuickSight to optimize query performance.

          + */ + UniqueKey?: boolean; +} + +export namespace JoinKeyProperties { + export const filterSensitiveLog = (obj: JoinKeyProperties): any => ({ + ...obj, + }); +} + export enum JoinType { INNER = "INNER", LEFT = "LEFT", @@ -1837,26 +1854,36 @@ export enum JoinType { } /** - *

          Join instruction.

          + *

          The instructions associated with a join.

          */ export interface JoinInstruction { /** - *

          Left operand.

          + *

          The operand on the left side of a join.

          */ LeftOperand: string | undefined; /** - *

          Right operand.

          + *

          The operand on the right side of a join.

          */ RightOperand: string | undefined; /** - *

          Type.

          + *

          Join key properties of the left operand.

          + */ + LeftJoinKeyProperties?: JoinKeyProperties; + + /** + *

          Join key properties of the right operand.

          + */ + RightJoinKeyProperties?: JoinKeyProperties; + + /** + *

          The type of join that it is.

          */ Type: JoinType | string | undefined; /** - *

          On Clause.

          + *

          The join instructions provided in the ON clause of a join.

          */ OnClause: string | undefined; } @@ -7892,7 +7919,7 @@ export interface GetDashboardEmbedUrlRequest { /** *

          A list of one or more dashboard ids that you want to add to a session that * includes anonymous authorizations. IdentityType must be set to ANONYMOUS - * for this to work, because other other identity types authenticate as QuickSight users. + * for this to work, because other identity types authenticate as QuickSight users. * For example, if you set "--dashboard-id dash_id1 --dashboard-id dash_id2 * dash_id3 identity-type ANONYMOUS", the session can access all * three dashboards. @@ -8710,26 +8737,3 @@ export namespace ListIngestionsResponse { ...obj, }); } - -export interface ListNamespacesRequest { - /** - *

          The ID for the AWS account that contains the QuickSight namespaces that you want to list.

          - */ - AwsAccountId: string | undefined; - - /** - *

          A pagination token that can be used in a subsequent request.

          - */ - NextToken?: string; - - /** - *

          The maximum number of results to return.

          - */ - MaxResults?: number; -} - -export namespace ListNamespacesRequest { - export const filterSensitiveLog = (obj: ListNamespacesRequest): any => ({ - ...obj, - }); -} diff --git a/clients/client-quicksight/models/models_1.ts b/clients/client-quicksight/models/models_1.ts index 7cc6e953781da..6afd35e81a1f0 100644 --- a/clients/client-quicksight/models/models_1.ts +++ b/clients/client-quicksight/models/models_1.ts @@ -35,6 +35,29 @@ import { } from "./models_0"; import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +export interface ListNamespacesRequest { + /** + *

          The ID for the AWS account that contains the QuickSight namespaces that you want to list.

          + */ + AwsAccountId: string | undefined; + + /** + *

          A pagination token that can be used in a subsequent request.

          + */ + NextToken?: string; + + /** + *

          The maximum number of results to return.

          + */ + MaxResults?: number; +} + +export namespace ListNamespacesRequest { + export const filterSensitiveLog = (obj: ListNamespacesRequest): any => ({ + ...obj, + }); +} + export interface ListNamespacesResponse { /** *

          The information about the namespaces in this AWS account. The response includes diff --git a/clients/client-quicksight/protocols/Aws_restJson1.ts b/clients/client-quicksight/protocols/Aws_restJson1.ts index 9308997679e03..7676052ecfc41 100644 --- a/clients/client-quicksight/protocols/Aws_restJson1.ts +++ b/clients/client-quicksight/protocols/Aws_restJson1.ts @@ -283,6 +283,7 @@ import { InvalidParameterValueException, JiraParameters, JoinInstruction, + JoinKeyProperties, LimitExceededException, LogicalTable, LogicalTableSource, @@ -16386,13 +16387,25 @@ const serializeAws_restJson1JiraParameters = (input: JiraParameters, context: __ const serializeAws_restJson1JoinInstruction = (input: JoinInstruction, context: __SerdeContext): any => { return { + ...(input.LeftJoinKeyProperties !== undefined && { + LeftJoinKeyProperties: serializeAws_restJson1JoinKeyProperties(input.LeftJoinKeyProperties, context), + }), ...(input.LeftOperand !== undefined && { LeftOperand: input.LeftOperand }), ...(input.OnClause !== undefined && { OnClause: input.OnClause }), + ...(input.RightJoinKeyProperties !== undefined && { + RightJoinKeyProperties: serializeAws_restJson1JoinKeyProperties(input.RightJoinKeyProperties, context), + }), ...(input.RightOperand !== undefined && { RightOperand: input.RightOperand }), ...(input.Type !== undefined && { Type: input.Type }), }; }; +const serializeAws_restJson1JoinKeyProperties = (input: JoinKeyProperties, context: __SerdeContext): any => { + return { + ...(input.UniqueKey !== undefined && { UniqueKey: input.UniqueKey }), + }; +}; + const serializeAws_restJson1LogicalTable = (input: LogicalTable, context: __SerdeContext): any => { return { ...(input.Alias !== undefined && { Alias: input.Alias }), @@ -17725,13 +17738,27 @@ const deserializeAws_restJson1JiraParameters = (output: any, context: __SerdeCon const deserializeAws_restJson1JoinInstruction = (output: any, context: __SerdeContext): JoinInstruction => { return { + LeftJoinKeyProperties: + output.LeftJoinKeyProperties !== undefined && output.LeftJoinKeyProperties !== null + ? deserializeAws_restJson1JoinKeyProperties(output.LeftJoinKeyProperties, context) + : undefined, LeftOperand: output.LeftOperand !== undefined && output.LeftOperand !== null ? output.LeftOperand : undefined, OnClause: output.OnClause !== undefined && output.OnClause !== null ? output.OnClause : undefined, + RightJoinKeyProperties: + output.RightJoinKeyProperties !== undefined && output.RightJoinKeyProperties !== null + ? deserializeAws_restJson1JoinKeyProperties(output.RightJoinKeyProperties, context) + : undefined, RightOperand: output.RightOperand !== undefined && output.RightOperand !== null ? output.RightOperand : undefined, Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined, } as any; }; +const deserializeAws_restJson1JoinKeyProperties = (output: any, context: __SerdeContext): JoinKeyProperties => { + return { + UniqueKey: output.UniqueKey !== undefined && output.UniqueKey !== null ? output.UniqueKey : undefined, + } as any; +}; + const deserializeAws_restJson1LogicalTable = (output: any, context: __SerdeContext): LogicalTable => { return { Alias: output.Alias !== undefined && output.Alias !== null ? output.Alias : undefined, diff --git a/clients/client-rds/RDS.ts b/clients/client-rds/RDS.ts index 350efab8083cf..06c3358373e40 100644 --- a/clients/client-rds/RDS.ts +++ b/clients/client-rds/RDS.ts @@ -624,6 +624,11 @@ import { StartDBClusterCommandInput, StartDBClusterCommandOutput, } from "./commands/StartDBClusterCommand"; +import { + StartDBInstanceAutomatedBackupsReplicationCommand, + StartDBInstanceAutomatedBackupsReplicationCommandInput, + StartDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "./commands/StartDBInstanceAutomatedBackupsReplicationCommand"; import { StartDBInstanceCommand, StartDBInstanceCommandInput, @@ -644,6 +649,11 @@ import { StopDBClusterCommandInput, StopDBClusterCommandOutput, } from "./commands/StopDBClusterCommand"; +import { + StopDBInstanceAutomatedBackupsReplicationCommand, + StopDBInstanceAutomatedBackupsReplicationCommandInput, + StopDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "./commands/StopDBInstanceAutomatedBackupsReplicationCommand"; import { StopDBInstanceCommand, StopDBInstanceCommandInput, @@ -1058,7 +1068,7 @@ export class RDS extends RDSClient { *

            *
          • *

            - * KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB + * KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB * cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot * action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

            *
          • @@ -1662,7 +1672,7 @@ export class RDS extends RDSClient { /** *

            Creates a snapshot of a DB instance. The source DB instance must be in the available or - * storage-optimizationstate.

            + * storage-optimization state.

            */ public createDBSnapshot( args: CreateDBSnapshotCommandInput, @@ -2114,8 +2124,7 @@ export class RDS extends RDSClient { } /** - *

            Deletes automated backups based on the source instance's DbiResourceId - * value or the restorable instance's resource ID.

            + *

            Deletes automated backups using the DbiResourceId value of the source DB instance or the Amazon Resource Name (ARN) of the automated backups.

            */ public deleteDBInstanceAutomatedBackup( args: DeleteDBInstanceAutomatedBackupCommandInput, @@ -5281,8 +5290,15 @@ export class RDS extends RDSClient { } /** - *

            Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

            - *

            If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

            + *

            Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most + * of the source's original configuration, including the default security group and DB parameter group. By default, the new DB + * instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group + * associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment.

            + *

            If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance + * before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. After you + * have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as + * the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you replace the original + * DB instance with the DB instance created from the snapshot.

            *

            If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier * must be the ARN of the shared DB snapshot.

            * @@ -5552,6 +5568,43 @@ export class RDS extends RDSClient { } } + /** + *

            Enables replication of automated backups to a different AWS Region.

            + *

            For more information, see + * Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide. + *

            + */ + public startDBInstanceAutomatedBackupsReplication( + args: StartDBInstanceAutomatedBackupsReplicationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public startDBInstanceAutomatedBackupsReplication( + args: StartDBInstanceAutomatedBackupsReplicationCommandInput, + cb: (err: any, data?: StartDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): void; + public startDBInstanceAutomatedBackupsReplication( + args: StartDBInstanceAutomatedBackupsReplicationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): void; + public startDBInstanceAutomatedBackupsReplication( + args: StartDBInstanceAutomatedBackupsReplicationCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: StartDBInstanceAutomatedBackupsReplicationCommandOutput) => void), + cb?: (err: any, data?: StartDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): Promise | void { + const command = new StartDBInstanceAutomatedBackupsReplicationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

            Starts an export of a snapshot to Amazon S3. * The provided IAM role must have access to the S3 bucket. @@ -5714,4 +5767,41 @@ export class RDS extends RDSClient { return this.send(command, optionsOrCb); } } + + /** + *

            Stops automated backup replication for a DB instance.

            + *

            For more information, see + * Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide. + *

            + */ + public stopDBInstanceAutomatedBackupsReplication( + args: StopDBInstanceAutomatedBackupsReplicationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public stopDBInstanceAutomatedBackupsReplication( + args: StopDBInstanceAutomatedBackupsReplicationCommandInput, + cb: (err: any, data?: StopDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): void; + public stopDBInstanceAutomatedBackupsReplication( + args: StopDBInstanceAutomatedBackupsReplicationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StopDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): void; + public stopDBInstanceAutomatedBackupsReplication( + args: StopDBInstanceAutomatedBackupsReplicationCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: StopDBInstanceAutomatedBackupsReplicationCommandOutput) => void), + cb?: (err: any, data?: StopDBInstanceAutomatedBackupsReplicationCommandOutput) => void + ): Promise | void { + const command = new StopDBInstanceAutomatedBackupsReplicationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } } diff --git a/clients/client-rds/RDSClient.ts b/clients/client-rds/RDSClient.ts index 761c4c74703c7..817c3dd668663 100644 --- a/clients/client-rds/RDSClient.ts +++ b/clients/client-rds/RDSClient.ts @@ -408,10 +408,18 @@ import { StartActivityStreamCommandOutput, } from "./commands/StartActivityStreamCommand"; import { StartDBClusterCommandInput, StartDBClusterCommandOutput } from "./commands/StartDBClusterCommand"; +import { + StartDBInstanceAutomatedBackupsReplicationCommandInput, + StartDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "./commands/StartDBInstanceAutomatedBackupsReplicationCommand"; import { StartDBInstanceCommandInput, StartDBInstanceCommandOutput } from "./commands/StartDBInstanceCommand"; import { StartExportTaskCommandInput, StartExportTaskCommandOutput } from "./commands/StartExportTaskCommand"; import { StopActivityStreamCommandInput, StopActivityStreamCommandOutput } from "./commands/StopActivityStreamCommand"; import { StopDBClusterCommandInput, StopDBClusterCommandOutput } from "./commands/StopDBClusterCommand"; +import { + StopDBInstanceAutomatedBackupsReplicationCommandInput, + StopDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "./commands/StopDBInstanceAutomatedBackupsReplicationCommand"; import { StopDBInstanceCommandInput, StopDBInstanceCommandOutput } from "./commands/StopDBInstanceCommand"; import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; import { @@ -588,10 +596,12 @@ export type ServiceInputTypes = | RevokeDBSecurityGroupIngressCommandInput | StartActivityStreamCommandInput | StartDBClusterCommandInput + | StartDBInstanceAutomatedBackupsReplicationCommandInput | StartDBInstanceCommandInput | StartExportTaskCommandInput | StopActivityStreamCommandInput | StopDBClusterCommandInput + | StopDBInstanceAutomatedBackupsReplicationCommandInput | StopDBInstanceCommandInput; export type ServiceOutputTypes = @@ -720,10 +730,12 @@ export type ServiceOutputTypes = | RevokeDBSecurityGroupIngressCommandOutput | StartActivityStreamCommandOutput | StartDBClusterCommandOutput + | StartDBInstanceAutomatedBackupsReplicationCommandOutput | StartDBInstanceCommandOutput | StartExportTaskCommandOutput | StopActivityStreamCommandOutput | StopDBClusterCommandOutput + | StopDBInstanceAutomatedBackupsReplicationCommandOutput | StopDBInstanceCommandOutput; export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { diff --git a/clients/client-rds/commands/CopyDBClusterSnapshotCommand.ts b/clients/client-rds/commands/CopyDBClusterSnapshotCommand.ts index 9b1cf4d340635..69a1299d49de7 100644 --- a/clients/client-rds/commands/CopyDBClusterSnapshotCommand.ts +++ b/clients/client-rds/commands/CopyDBClusterSnapshotCommand.ts @@ -46,7 +46,7 @@ export type CopyDBClusterSnapshotCommandOutput = CopyDBClusterSnapshotResult & _ *
              *
            • *

              - * KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB + * KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB * cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot * action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

              *
            • diff --git a/clients/client-rds/commands/CreateDBSnapshotCommand.ts b/clients/client-rds/commands/CreateDBSnapshotCommand.ts index 008076e577596..214d750dee341 100644 --- a/clients/client-rds/commands/CreateDBSnapshotCommand.ts +++ b/clients/client-rds/commands/CreateDBSnapshotCommand.ts @@ -22,7 +22,7 @@ export type CreateDBSnapshotCommandOutput = CreateDBSnapshotResult & __MetadataB /** *

              Creates a snapshot of a DB instance. The source DB instance must be in the available or - * storage-optimizationstate.

              + * storage-optimization state.

              */ export class CreateDBSnapshotCommand extends $Command< CreateDBSnapshotCommandInput, diff --git a/clients/client-rds/commands/DeleteDBInstanceAutomatedBackupCommand.ts b/clients/client-rds/commands/DeleteDBInstanceAutomatedBackupCommand.ts index e1de4f08baf67..0f157e3612793 100644 --- a/clients/client-rds/commands/DeleteDBInstanceAutomatedBackupCommand.ts +++ b/clients/client-rds/commands/DeleteDBInstanceAutomatedBackupCommand.ts @@ -21,8 +21,7 @@ export type DeleteDBInstanceAutomatedBackupCommandInput = DeleteDBInstanceAutoma export type DeleteDBInstanceAutomatedBackupCommandOutput = DeleteDBInstanceAutomatedBackupResult & __MetadataBearer; /** - *

              Deletes automated backups based on the source instance's DbiResourceId - * value or the restorable instance's resource ID.

              + *

              Deletes automated backups using the DbiResourceId value of the source DB instance or the Amazon Resource Name (ARN) of the automated backups.

              */ export class DeleteDBInstanceAutomatedBackupCommand extends $Command< DeleteDBInstanceAutomatedBackupCommandInput, diff --git a/clients/client-rds/commands/DescribeEventCategoriesCommand.ts b/clients/client-rds/commands/DescribeEventCategoriesCommand.ts index 9236b9a53adb3..5a35563271f01 100644 --- a/clients/client-rds/commands/DescribeEventCategoriesCommand.ts +++ b/clients/client-rds/commands/DescribeEventCategoriesCommand.ts @@ -1,5 +1,6 @@ import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; -import { DescribeEventCategoriesMessage, EventCategoriesMessage } from "../models/models_0"; +import { DescribeEventCategoriesMessage } from "../models/models_0"; +import { EventCategoriesMessage } from "../models/models_1"; import { deserializeAws_queryDescribeEventCategoriesCommand, serializeAws_queryDescribeEventCategoriesCommand, diff --git a/clients/client-rds/commands/RestoreDBInstanceFromDBSnapshotCommand.ts b/clients/client-rds/commands/RestoreDBInstanceFromDBSnapshotCommand.ts index 7d67269b976bd..e219f5f871f96 100644 --- a/clients/client-rds/commands/RestoreDBInstanceFromDBSnapshotCommand.ts +++ b/clients/client-rds/commands/RestoreDBInstanceFromDBSnapshotCommand.ts @@ -21,8 +21,15 @@ export type RestoreDBInstanceFromDBSnapshotCommandInput = RestoreDBInstanceFromD export type RestoreDBInstanceFromDBSnapshotCommandOutput = RestoreDBInstanceFromDBSnapshotResult & __MetadataBearer; /** - *

              Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

              - *

              If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

              + *

              Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most + * of the source's original configuration, including the default security group and DB parameter group. By default, the new DB + * instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group + * associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment.

              + *

              If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance + * before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. After you + * have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as + * the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you replace the original + * DB instance with the DB instance created from the snapshot.

              *

              If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier * must be the ARN of the shared DB snapshot.

              * diff --git a/clients/client-rds/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts b/clients/client-rds/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts new file mode 100644 index 0000000000000..d5f2deb240788 --- /dev/null +++ b/clients/client-rds/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts @@ -0,0 +1,104 @@ +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; +import { + StartDBInstanceAutomatedBackupsReplicationMessage, + StartDBInstanceAutomatedBackupsReplicationResult, +} from "../models/models_1"; +import { + deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand, + serializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand, +} from "../protocols/Aws_query"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type StartDBInstanceAutomatedBackupsReplicationCommandInput = StartDBInstanceAutomatedBackupsReplicationMessage; +export type StartDBInstanceAutomatedBackupsReplicationCommandOutput = StartDBInstanceAutomatedBackupsReplicationResult & + __MetadataBearer; + +/** + *

              Enables replication of automated backups to a different AWS Region.

              + *

              For more information, see + * Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide. + *

              + */ +export class StartDBInstanceAutomatedBackupsReplicationCommand extends $Command< + StartDBInstanceAutomatedBackupsReplicationCommandInput, + StartDBInstanceAutomatedBackupsReplicationCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartDBInstanceAutomatedBackupsReplicationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + StartDBInstanceAutomatedBackupsReplicationCommandInput, + StartDBInstanceAutomatedBackupsReplicationCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "StartDBInstanceAutomatedBackupsReplicationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartDBInstanceAutomatedBackupsReplicationMessage.filterSensitiveLog, + outputFilterSensitiveLog: StartDBInstanceAutomatedBackupsReplicationResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: StartDBInstanceAutomatedBackupsReplicationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts b/clients/client-rds/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts new file mode 100644 index 0000000000000..978a8fd1e092a --- /dev/null +++ b/clients/client-rds/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts @@ -0,0 +1,104 @@ +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; +import { + StopDBInstanceAutomatedBackupsReplicationMessage, + StopDBInstanceAutomatedBackupsReplicationResult, +} from "../models/models_1"; +import { + deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand, + serializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand, +} from "../protocols/Aws_query"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type StopDBInstanceAutomatedBackupsReplicationCommandInput = StopDBInstanceAutomatedBackupsReplicationMessage; +export type StopDBInstanceAutomatedBackupsReplicationCommandOutput = StopDBInstanceAutomatedBackupsReplicationResult & + __MetadataBearer; + +/** + *

              Stops automated backup replication for a DB instance.

              + *

              For more information, see + * Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide. + *

              + */ +export class StopDBInstanceAutomatedBackupsReplicationCommand extends $Command< + StopDBInstanceAutomatedBackupsReplicationCommandInput, + StopDBInstanceAutomatedBackupsReplicationCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StopDBInstanceAutomatedBackupsReplicationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + StopDBInstanceAutomatedBackupsReplicationCommandInput, + StopDBInstanceAutomatedBackupsReplicationCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "StopDBInstanceAutomatedBackupsReplicationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StopDBInstanceAutomatedBackupsReplicationMessage.filterSensitiveLog, + outputFilterSensitiveLog: StopDBInstanceAutomatedBackupsReplicationResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: StopDBInstanceAutomatedBackupsReplicationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/index.ts b/clients/client-rds/index.ts index fc23b55398085..2064ea6e5eaed 100644 --- a/clients/client-rds/index.ts +++ b/clients/client-rds/index.ts @@ -160,9 +160,11 @@ export * from "./commands/RevokeDBSecurityGroupIngressCommand"; export * from "./commands/StartActivityStreamCommand"; export * from "./commands/StartDBClusterCommand"; export * from "./commands/StartDBInstanceCommand"; +export * from "./commands/StartDBInstanceAutomatedBackupsReplicationCommand"; export * from "./commands/StartExportTaskCommand"; export * from "./commands/StopActivityStreamCommand"; export * from "./commands/StopDBClusterCommand"; export * from "./commands/StopDBInstanceCommand"; +export * from "./commands/StopDBInstanceAutomatedBackupsReplicationCommand"; export * from "./pagination/Interfaces"; export * from "./models/index"; diff --git a/clients/client-rds/models/models_0.ts b/clients/client-rds/models/models_0.ts index 1ce006d259cf7..625d8fc42d5ea 100644 --- a/clients/client-rds/models/models_0.ts +++ b/clients/client-rds/models/models_0.ts @@ -165,7 +165,7 @@ export interface AddRoleToDBClusterMessage { /** *

              The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB - * cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

              + * cluster, for example, arn:aws:iam::123456789012:role/AuroraAccessRole.

              */ RoleArn: string | undefined; @@ -1204,10 +1204,9 @@ export interface ExportTask { IamRoleArn?: string; /** - *

              The ID of the AWS KMS key that is used to encrypt the snapshot when it's exported to - * Amazon S3. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or - * the KMS key alias for the KMS encryption key. The IAM role used for the snapshot export - * must have encryption and decryption permissions to use this KMS key.

              + *

              The key identifier of the AWS KMS customer master key (CMK) that is used to encrypt the snapshot when it's exported to + * Amazon S3. The AWS KMS CMK identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the snapshot export + * must have encryption and decryption permissions to use this AWS KMS CMK.

              */ KmsKeyId?: string; @@ -1488,17 +1487,17 @@ export interface CopyDBClusterSnapshotMessage { TargetDBClusterSnapshotIdentifier: string | undefined; /** - *

              The AWS KMS key ID for an encrypted DB cluster snapshot. - * The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

              + *

              The AWS KMS key identifier for an encrypted DB cluster snapshot. + * The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

              * - *

              If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. - * If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot. + *

              If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new AWS KMS CMK. + * If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same AWS KMS key as the source DB cluster snapshot. *

              * *

              If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId.

              * - *

              To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot - * in the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region + *

              To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the AWS KMS key identifier you want to use to encrypt the copy of the DB cluster snapshot + * in the destination AWS Region. AWS KMS CMKs are specific to the AWS Region that they are created in, and you can't use CMKs from one AWS Region * in another AWS Region.

              * *

              If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, @@ -1517,7 +1516,7 @@ export interface CopyDBClusterSnapshotMessage { *

                *
              • *

                - * KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB + * KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB * cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot * action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                *
              • @@ -1659,6 +1658,7 @@ export interface DBClusterSnapshot { /** *

                If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ KmsKeyId?: string; @@ -1969,28 +1969,27 @@ export interface CopyDBSnapshotMessage { TargetDBSnapshotIdentifier: string | undefined; /** - *

                The AWS KMS key ID for an encrypted DB snapshot. - * The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. + *

                The AWS KMS key identifier for an encrypted DB snapshot. + * The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). *

                * *

                If you copy an encrypted DB snapshot from your AWS account, - * you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. + * you can specify a value for this parameter to encrypt the copy with a new AWS KMS CMK. * If you don't specify a value for this parameter, - * then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot. + * then the copy of the DB snapshot is encrypted with the same AWS KMS key as the source DB snapshot. *

                * *

                If you copy an encrypted DB snapshot that is shared from another AWS account, * then you must specify a value for this parameter. *

                * - *

                If you specify this parameter - * when you copy an unencrypted snapshot, + *

                If you specify this parameter when you copy an unencrypted snapshot, * the copy is encrypted. *

                * *

                If you copy an encrypted snapshot to a different AWS Region, then you must specify - * a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region - * that they are created in, and you can't use encryption keys from one AWS Region in another + * a AWS KMS key identifier for the destination AWS Region. AWS KMS CMKs are specific to the AWS Region + * that they are created in, and you can't use CMKs from one AWS Region in another * AWS Region. *

                */ @@ -2038,7 +2037,7 @@ export interface CopyDBSnapshotMessage { * *
              • *

                - * KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination AWS Region. + * KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB snapshot in the destination AWS Region. * This is the same identifier for both the CopyDBSnapshot action that is called in the destination AWS Region, * and the action contained in the presigned URL. *

                @@ -2307,6 +2306,7 @@ export interface DBSnapshot { * If Encrypted is true, the AWS KMS key identifier * for the encrypted DB snapshot. *

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ KmsKeyId?: string; @@ -3221,28 +3221,26 @@ export interface CreateDBClusterMessage { /** *

                The AWS KMS key identifier for an encrypted DB cluster.

                - *

                The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption - * key. If you are creating a DB cluster with the same AWS account that owns the KMS - * encryption key used to encrypt the new DB cluster, then you can use the KMS key alias - * instead of the ARN for the KMS encryption key.

                - *

                If an encryption key isn't specified in KmsKeyId:

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                + *

                When a CMK isn't specified in KmsKeyId:

                *
                  *
                • *

                  If ReplicationSourceIdentifier identifies an encrypted - * source, then Amazon RDS will use the encryption key used to encrypt the - * source. Otherwise, Amazon RDS will use your default encryption key.

                  + * source, then Amazon RDS will use the CMK used to encrypt the + * source. Otherwise, Amazon RDS will use your default CMK.

                  *
                • *
                • *

                  If the StorageEncrypted parameter is enabled and * ReplicationSourceIdentifier isn't specified, then Amazon RDS - * will use your default encryption key.

                  + * will use your default CMK.

                  *
                • *
                - *

                AWS KMS creates the default encryption key for your AWS account. Your AWS account - * has a different default encryption key for each AWS Region.

                + *

                There is a default CMK for your AWS account. Your AWS account + * has a different default CMK for each AWS Region.

                *

                If you create a read replica of an encrypted DB cluster in another AWS Region, you - * must set KmsKeyId to a KMS key ID that is valid in the destination AWS - * Region. This key is used to encrypt the read replica in that AWS Region.

                + * must set KmsKeyId to a AWS KMS key identifier that is valid in the destination AWS + * Region. This CMK is used to encrypt the read replica in that AWS Region.

                */ KmsKeyId?: string; @@ -3258,7 +3256,7 @@ export interface CreateDBClusterMessage { *
              • *

                * KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of - * the DB cluster in the destination AWS Region. This should refer to the same KMS key for both the CreateDBCluster + * the DB cluster in the destination AWS Region. This should refer to the same AWS KMS CMK for both the CreateDBCluster * action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                *
              • *
              • @@ -3796,11 +3794,13 @@ export interface DBCluster { /** *

                If StorageEncrypted is enabled, the AWS KMS key identifier for the encrypted DB cluster.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ KmsKeyId?: string; /** - *

                The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.

                + *

                The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever + * the AWS KMS CMK for the DB cluster is accessed.

                */ DbClusterResourceId?: string; @@ -3910,6 +3910,7 @@ export interface DBCluster { /** *

                The AWS KMS key identifier used for encrypting messages in the database activity stream.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ ActivityStreamKmsKeyId?: string; @@ -5357,18 +5358,18 @@ export interface CreateDBInstanceMessage { /** *

                The AWS KMS key identifier for an encrypted DB instance.

                - *

                The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                *

                * Amazon Aurora *

                - *

                Not applicable. The KMS key identifier is managed by + *

                Not applicable. The AWS KMS key identifier is managed by * the DB cluster. For more information, see CreateDBCluster.

                - * *

                If StorageEncrypted is enabled, and you do * not specify a value for the KmsKeyId parameter, then - * Amazon RDS will use your default encryption key. AWS KMS creates the - * default encryption key for your AWS account. Your AWS account has a different - * default encryption key for each AWS Region.

                + * Amazon RDS uses your default CMK. There is a + * default CMK for your AWS account. Your AWS account has a different + * default CMK for each AWS Region.

                */ KmsKeyId?: string; @@ -5457,12 +5458,11 @@ export interface CreateDBInstanceMessage { EnablePerformanceInsights?: boolean; /** - *

                The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID - * is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS - * encryption key.

                + *

                The AWS KMS key identifier for encryption of Performance Insights data.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                *

                If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS - * uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. - * Your AWS account has a different default encryption key for each AWS Region.

                + * uses your default CMK. There is a default CMK for your AWS account. + * Your AWS account has a different default CMK for each AWS Region.

                */ PerformanceInsightsKMSKeyId?: string; @@ -5589,6 +5589,22 @@ export namespace DBInstanceRole { }); } +/** + *

                Automated backups of a DB instance replicated to another AWS Region. They consist of system backups, transaction logs, and database instance properties.

                + */ +export interface DBInstanceAutomatedBackupsReplication { + /** + *

                The Amazon Resource Name (ARN) of the replicated automated backups.

                + */ + DBInstanceAutomatedBackupsArn?: string; +} + +export namespace DBInstanceAutomatedBackupsReplication { + export const filterSensitiveLog = (obj: DBInstanceAutomatedBackupsReplication): any => ({ + ...obj, + }); +} + /** *

                The status of the DB parameter group.

                *

                This data type is used as a response element in the following actions:

                @@ -6250,11 +6266,13 @@ export interface DBInstance { * If StorageEncrypted is true, the AWS KMS key identifier * for the encrypted DB instance. *

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ KmsKeyId?: string; /** - *

                The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.

                + *

                The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log + * entries whenever the AWS KMS customer master key (CMK) for the DB instance is accessed.

                */ DbiResourceId?: string; @@ -6342,9 +6360,8 @@ export interface DBInstance { PerformanceInsightsEnabled?: boolean; /** - *

                The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID - * is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS - * encryption key.

                + *

                The AWS KMS key identifier for encryption of Performance Insights data.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ PerformanceInsightsKMSKeyId?: string; @@ -6399,6 +6416,11 @@ export interface DBInstance { *

                */ TagList?: Tag[]; + + /** + *

                The list of replicated automated backups associated with the DB instance.

                + */ + DBInstanceAutomatedBackupsReplications?: DBInstanceAutomatedBackupsReplication[]; } export namespace DBInstance { @@ -6734,18 +6756,15 @@ export interface CreateDBInstanceReadReplicaMessage { MonitoringRoleArn?: string; /** - *

                The AWS KMS key ID for an encrypted read replica. The KMS key ID is the Amazon - * Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                - * + *

                The AWS KMS key identifier for an encrypted read replica.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS CMK.

                *

                If you create an encrypted read replica in the same AWS Region as the source DB * instance, then you do not have to specify a value for this parameter. The read replica - * is encrypted with the same KMS key as the source DB instance.

                - * + * is encrypted with the same AWS KMS CMK as the source DB instance.

                *

                If you create an encrypted read replica in a different AWS Region, then you must - * specify a KMS key for the destination AWS Region. KMS encryption keys are specific to - * the AWS Region that they are created in, and you can't use encryption keys from one + * specify a AWS KMS key identifier for the destination AWS Region. AWS KMS CMKs are specific to + * the AWS Region that they are created in, and you can't use CMKs from one * AWS Region in another AWS Region.

                - * *

                You can't create an encrypted read replica from an unencrypted DB instance.

                */ KmsKeyId?: string; @@ -6839,11 +6858,11 @@ export interface CreateDBInstanceReadReplicaMessage { EnablePerformanceInsights?: boolean; /** - *

                The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID - * is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                + *

                The AWS KMS key identifier for encryption of Performance Insights data.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                *

                If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS - * uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. - * Your AWS account has a different default encryption key for each AWS Region.

                + * uses your default CMK. There is a default CMK for your AWS account. + * Your AWS account has a different default CMK for each AWS Region.

                */ PerformanceInsightsKMSKeyId?: string; @@ -7921,7 +7940,7 @@ export interface GlobalCluster { /** *

                * The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in - * AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed. + * AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the DB cluster is accessed. *

                */ GlobalClusterResourceId?: string; @@ -8437,13 +8456,19 @@ export namespace DBInstanceAutomatedBackupNotFoundFault { } /** - *

                Parameter input for the DeleteDBInstanceAutomatedBackup operation.

                + *

                Parameter input for the DeleteDBInstanceAutomatedBackup operation.

                */ export interface DeleteDBInstanceAutomatedBackupMessage { /** *

                The identifier for the source DB instance, which can't be changed and which is unique to an AWS Region.

                */ - DbiResourceId: string | undefined; + DbiResourceId?: string; + + /** + *

                The Amazon Resource Name (ARN) of the automated backups to delete, for example, + * arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

                + */ + DBInstanceAutomatedBackupsArn?: string; } export namespace DeleteDBInstanceAutomatedBackupMessage { @@ -8474,13 +8499,12 @@ export namespace RestoreWindow { } /** - *

                An automated backup of a DB instance. It it consists of - * system backups, transaction logs, and the database instance properties that - * existed at the time you deleted the source instance.

                + *

                An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that + * existed at the time you deleted the source instance.

                */ export interface DBInstanceAutomatedBackup { /** - *

                The Amazon Resource Name (ARN) for the automated backup.

                + *

                The Amazon Resource Name (ARN) for the automated backups.

                */ DBInstanceArn?: string; @@ -8583,8 +8607,7 @@ export interface DBInstanceAutomatedBackup { Iops?: number; /** - *

                The option group the automated backup is associated with. - * If omitted, the default option group for the engine specified is used.

                + *

                The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.

                */ OptionGroupName?: string; @@ -8604,8 +8627,8 @@ export interface DBInstanceAutomatedBackup { StorageType?: string; /** - *

                The AWS KMS key ID for an automated backup. - * The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                + *

                The AWS KMS key ID for an automated backup.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                */ KmsKeyId?: string; @@ -8621,6 +8644,21 @@ export interface DBInstanceAutomatedBackup { * and otherwise false.

                */ IAMDatabaseAuthenticationEnabled?: boolean; + + /** + *

                The retention period for the automated backups.

                + */ + BackupRetentionPeriod?: number; + + /** + *

                The Amazon Resource Name (ARN) for the replicated automated backups.

                + */ + DBInstanceAutomatedBackupsArn?: string; + + /** + *

                The list of replications to different AWS Regions associated with the automated backup.

                + */ + DBInstanceAutomatedBackupsReplications?: DBInstanceAutomatedBackupsReplication[]; } export namespace DBInstanceAutomatedBackup { @@ -8631,9 +8669,8 @@ export namespace DBInstanceAutomatedBackup { export interface DeleteDBInstanceAutomatedBackupResult { /** - *

                An automated backup of a DB instance. It it consists of - * system backups, transaction logs, and the database instance properties that - * existed at the time you deleted the source instance.

                + *

                An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that + * existed at the time you deleted the source instance.

                */ DBInstanceAutomatedBackup?: DBInstanceAutomatedBackup; } @@ -10582,6 +10619,12 @@ export interface DescribeDBInstanceAutomatedBackupsMessage { * includes only records beyond the marker, up to MaxRecords.

                */ Marker?: string; + + /** + *

                The Amazon Resource Name (ARN) of the replicated automated backups, for example, + * arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

                + */ + DBInstanceAutomatedBackupsArn?: string; } export namespace DescribeDBInstanceAutomatedBackupsMessage { @@ -11984,19 +12027,3 @@ export namespace EventCategoriesMap { ...obj, }); } - -/** - *

                Data returned from the DescribeEventCategories operation.

                - */ -export interface EventCategoriesMessage { - /** - *

                A list of EventCategoriesMap data types.

                - */ - EventCategoriesMapList?: EventCategoriesMap[]; -} - -export namespace EventCategoriesMessage { - export const filterSensitiveLog = (obj: EventCategoriesMessage): any => ({ - ...obj, - }); -} diff --git a/clients/client-rds/models/models_1.ts b/clients/client-rds/models/models_1.ts index 95e26de2833da..ecf6b486de45c 100644 --- a/clients/client-rds/models/models_1.ts +++ b/clients/client-rds/models/models_1.ts @@ -6,6 +6,7 @@ import { DBCluster, DBClusterSnapshotAttributesResult, DBInstance, + DBInstanceAutomatedBackup, DBProxy, DBProxyTarget, DBProxyTargetGroup, @@ -13,6 +14,7 @@ import { DBSnapshot, DBSnapshotAttributesResult, DBSubnetGroup, + EventCategoriesMap, EventSubscription, ExportTask, Filter, @@ -31,6 +33,22 @@ import { import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; +/** + *

                Data returned from the DescribeEventCategories operation.

                + */ +export interface EventCategoriesMessage { + /** + *

                A list of EventCategoriesMap data types.

                + */ + EventCategoriesMapList?: EventCategoriesMap[]; +} + +export namespace EventCategoriesMessage { + export const filterSensitiveLog = (obj: EventCategoriesMessage): any => ({ + ...obj, + }); +} + export type SourceType = | "db-cluster" | "db-cluster-snapshot" @@ -1724,6 +1742,11 @@ export interface SourceRegion { *

                The status of the source AWS Region.

                */ Status?: string; + + /** + *

                Whether the source AWS Region supports replicating automated backups to the current AWS Region.

                + */ + SupportsDBInstanceAutomatedBackupsReplication?: boolean; } export namespace SourceRegion { @@ -3421,12 +3444,11 @@ export interface ModifyDBInstanceMessage { EnablePerformanceInsights?: boolean; /** - *

                The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID - * is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS - * encryption key.

                + *

                The AWS KMS key identifier for encryption of Performance Insights data.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                *

                If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS - * uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. - * Your AWS account has a different default encryption key for each AWS Region.

                + * uses your default CMK. There is a default CMK for your AWS account. + * Your AWS account has a different default CMK for each AWS Region.

                */ PerformanceInsightsKMSKeyId?: string; @@ -4610,7 +4632,7 @@ export interface RemoveRoleFromDBInstanceMessage { /** *

                The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB instance, - * for example arn:aws:iam::123456789012:role/AccessRole.

                + * for example, arn:aws:iam::123456789012:role/AccessRole.

                */ RoleArn: string | undefined; @@ -4999,12 +5021,13 @@ export interface RestoreDBClusterFromS3Message { /** *

                The AWS KMS key identifier for an encrypted DB cluster.

                - *

                The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key.

                + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                *

                If the StorageEncrypted parameter is enabled, and you do * not specify a value for the KmsKeyId parameter, then - * Amazon RDS will use your default encryption key. AWS KMS creates the - * default encryption key for your AWS account. Your AWS account has a different - * default encryption key for each AWS Region.

                + * Amazon RDS will use your default CMK. There is a + * default CMK for your AWS account. Your AWS account has a different + * default CMK for each AWS Region.

                */ KmsKeyId?: string; @@ -5281,17 +5304,15 @@ export interface RestoreDBClusterFromSnapshotMessage { /** *

                The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB * snapshot or DB cluster snapshot.

                - *

                The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption - * key. If you are restoring a DB cluster with the same AWS account that owns the KMS - * encryption key used to encrypt the new DB cluster, then you can use the KMS key alias - * instead of the ARN for the KMS encryption key.

                - *

                If you don't specify a value for the KmsKeyId parameter, then the + *

                The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                + *

                When you don't specify a value for the KmsKeyId parameter, then the * following occurs:

                *
                  *
                • *

                  If the DB snapshot or DB cluster snapshot in * SnapshotIdentifier is encrypted, then the restored DB cluster - * is encrypted using the KMS key that was used to encrypt the DB snapshot or DB + * is encrypted using the AWS KMS CMK that was used to encrypt the DB snapshot or DB * cluster snapshot.

                  *
                • *
                • @@ -5545,14 +5566,15 @@ export interface RestoreDBClusterToPointInTimeMessage { /** *

                  The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

                  - *

                  The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

                  - *

                  You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the - * KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key + *

                  The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                  + *

                  You can restore to a new DB cluster and encrypt the new DB cluster with a AWS KMS CMK that is different than the + * AWS KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the AWS KMS CMK * identified by the KmsKeyId parameter.

                  *

                  If you don't specify a value for the KmsKeyId parameter, then the following occurs:

                  *
                    *
                  • - *

                    If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.

                    + *

                    If the DB cluster is encrypted, then the restored DB cluster is encrypted using the AWS KMS CMK that was used to encrypt the source DB cluster.

                    *
                  • *
                  • *

                    If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted.

                    @@ -6314,15 +6336,13 @@ export interface RestoreDBInstanceFromS3Message { /** *

                    The AWS KMS key identifier for an encrypted DB instance. *

                    - *

                    The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. - * If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, - * then you can use the KMS key alias instead of the ARN for the KM encryption key. - *

                    + *

                    The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                    *

                    If the StorageEncrypted parameter is enabled, * and you do not specify a value for the KmsKeyId parameter, - * then Amazon RDS will use your default encryption key. - * AWS KMS creates the default encryption key for your AWS account. - * Your AWS account has a different default encryption key for each AWS Region. + * then Amazon RDS will use your default CMK. + * There is a default CMK for your AWS account. + * Your AWS account has a different default CMK for each AWS Region. *

                    */ KmsKeyId?: string; @@ -6422,13 +6442,11 @@ export interface RestoreDBInstanceFromS3Message { EnablePerformanceInsights?: boolean; /** - *

                    The AWS KMS key identifier for encryption of Performance Insights data. - * The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, - * or the KMS key alias for the KMS encryption key. - *

                    + *

                    The AWS KMS key identifier for encryption of Performance Insights data.

                    + *

                    The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                    *

                    If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS - * uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. - * Your AWS account has a different default encryption key for each AWS Region.

                    + * uses your default CMK. There is a default CMK for your AWS account. + * Your AWS account has a different default CMK for each AWS Region.

                    */ PerformanceInsightsKMSKeyId?: string; @@ -6859,6 +6877,12 @@ export interface RestoreDBInstanceToPointInTimeMessage { *

                    The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.

                    */ MaxAllocatedStorage?: number; + + /** + *

                    The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, + * arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

                    + */ + SourceDBInstanceAutomatedBackupsArn?: string; } export namespace RestoreDBInstanceToPointInTimeMessage { @@ -6958,7 +6982,7 @@ export namespace RevokeDBSecurityGroupIngressResult { export interface StartActivityStreamRequest { /** *

                    The Amazon Resource Name (ARN) of the DB cluster, - * for example arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

                    + * for example, arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

                    */ ResourceArn: string | undefined; @@ -6972,7 +6996,7 @@ export interface StartActivityStreamRequest { /** *

                    The AWS KMS key identifier for encrypting messages in the database activity stream. - * The key identifier can be either a key ID, a key ARN, or a key alias.

                    + * The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                    */ KmsKeyId: string | undefined; @@ -7085,6 +7109,54 @@ export namespace StartDBInstanceResult { }); } +export interface StartDBInstanceAutomatedBackupsReplicationMessage { + /** + *

                    The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, + * arn:aws:rds:us-west-2:123456789012:db:mydatabase.

                    + */ + SourceDBInstanceArn: string | undefined; + + /** + *

                    The retention period for the replicated automated backups.

                    + */ + BackupRetentionPeriod?: number; + + /** + *

                    The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the + * Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, + * arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE.

                    + */ + KmsKeyId?: string; + + /** + *

                    A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be + * called in the AWS Region of the source DB instance. The presigned URL must be a valid request for the + * StartDBInstanceAutomatedBackupsReplication API action that can be executed in the AWS Region that contains + * the source DB instance.

                    + */ + PreSignedUrl?: string; +} + +export namespace StartDBInstanceAutomatedBackupsReplicationMessage { + export const filterSensitiveLog = (obj: StartDBInstanceAutomatedBackupsReplicationMessage): any => ({ + ...obj, + }); +} + +export interface StartDBInstanceAutomatedBackupsReplicationResult { + /** + *

                    An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that + * existed at the time you deleted the source instance.

                    + */ + DBInstanceAutomatedBackup?: DBInstanceAutomatedBackup; +} + +export namespace StartDBInstanceAutomatedBackupsReplicationResult { + export const filterSensitiveLog = (obj: StartDBInstanceAutomatedBackupsReplicationResult): any => ({ + ...obj, + }); +} + /** *

                    You can't start an export task that's already running.

                    */ @@ -7184,10 +7256,10 @@ export interface StartExportTaskMessage { IamRoleArn: string | undefined; /** - *

                    The ID of the AWS KMS key to use to encrypt the snapshot exported to Amazon S3. The - * KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key - * alias for the KMS encryption key. The caller of this operation must be authorized to - * execute the following operations. These can be set in the KMS key policy:

                    + *

                    The ID of the AWS KMS customer master key (CMK) to use to encrypt the snapshot exported to Amazon S3. The AWS KMS + * key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). + * The caller of this operation must be authorized to + * execute the following operations. These can be set in the AWS KMS key policy:

                    *
                      *
                    • *

                      GrantOperation.Encrypt

                      @@ -7287,6 +7359,7 @@ export namespace StopActivityStreamRequest { export interface StopActivityStreamResponse { /** *

                      The AWS KMS key identifier used for encrypting messages in the database activity stream.

                      + *

                      The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                      */ KmsKeyId?: string; @@ -7375,3 +7448,31 @@ export namespace StopDBInstanceResult { ...obj, }); } + +export interface StopDBInstanceAutomatedBackupsReplicationMessage { + /** + *

                      The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automated backups, for example, + * arn:aws:rds:us-west-2:123456789012:db:mydatabase.

                      + */ + SourceDBInstanceArn: string | undefined; +} + +export namespace StopDBInstanceAutomatedBackupsReplicationMessage { + export const filterSensitiveLog = (obj: StopDBInstanceAutomatedBackupsReplicationMessage): any => ({ + ...obj, + }); +} + +export interface StopDBInstanceAutomatedBackupsReplicationResult { + /** + *

                      An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that + * existed at the time you deleted the source instance.

                      + */ + DBInstanceAutomatedBackup?: DBInstanceAutomatedBackup; +} + +export namespace StopDBInstanceAutomatedBackupsReplicationResult { + export const filterSensitiveLog = (obj: StopDBInstanceAutomatedBackupsReplicationResult): any => ({ + ...obj, + }); +} diff --git a/clients/client-rds/protocols/Aws_query.ts b/clients/client-rds/protocols/Aws_query.ts index 845d2a193a146..39b80b4e1f304 100644 --- a/clients/client-rds/protocols/Aws_query.ts +++ b/clients/client-rds/protocols/Aws_query.ts @@ -408,10 +408,18 @@ import { StartActivityStreamCommandOutput, } from "../commands/StartActivityStreamCommand"; import { StartDBClusterCommandInput, StartDBClusterCommandOutput } from "../commands/StartDBClusterCommand"; +import { + StartDBInstanceAutomatedBackupsReplicationCommandInput, + StartDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "../commands/StartDBInstanceAutomatedBackupsReplicationCommand"; import { StartDBInstanceCommandInput, StartDBInstanceCommandOutput } from "../commands/StartDBInstanceCommand"; import { StartExportTaskCommandInput, StartExportTaskCommandOutput } from "../commands/StartExportTaskCommand"; import { StopActivityStreamCommandInput, StopActivityStreamCommandOutput } from "../commands/StopActivityStreamCommand"; import { StopDBClusterCommandInput, StopDBClusterCommandOutput } from "../commands/StopDBClusterCommand"; +import { + StopDBInstanceAutomatedBackupsReplicationCommandInput, + StopDBInstanceAutomatedBackupsReplicationCommandOutput, +} from "../commands/StopDBInstanceAutomatedBackupsReplicationCommand"; import { StopDBInstanceCommandInput, StopDBInstanceCommandOutput } from "../commands/StopDBInstanceCommand"; import { AccountAttributesMessage, @@ -517,6 +525,7 @@ import { DBInstanceAutomatedBackupMessage, DBInstanceAutomatedBackupNotFoundFault, DBInstanceAutomatedBackupQuotaExceededFault, + DBInstanceAutomatedBackupsReplication, DBInstanceMessage, DBInstanceNotFoundFault, DBInstanceRole, @@ -627,7 +636,6 @@ import { Endpoint, EngineDefaults, EventCategoriesMap, - EventCategoriesMessage, EventSubscription, EventSubscriptionQuotaExceededFault, ExportTask, @@ -733,6 +741,7 @@ import { DownloadDBLogFilePortionDetails, DownloadDBLogFilePortionMessage, Event, + EventCategoriesMessage, EventSubscriptionsMessage, EventsMessage, ExportTaskAlreadyExistsFault, @@ -842,6 +851,8 @@ import { StartActivityStreamResponse, StartDBClusterMessage, StartDBClusterResult, + StartDBInstanceAutomatedBackupsReplicationMessage, + StartDBInstanceAutomatedBackupsReplicationResult, StartDBInstanceMessage, StartDBInstanceResult, StartExportTaskMessage, @@ -849,6 +860,8 @@ import { StopActivityStreamResponse, StopDBClusterMessage, StopDBClusterResult, + StopDBInstanceAutomatedBackupsReplicationMessage, + StopDBInstanceAutomatedBackupsReplicationResult, StopDBInstanceMessage, StopDBInstanceResult, SubnetAlreadyInUse, @@ -2888,6 +2901,22 @@ export const serializeAws_queryStartDBInstanceCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand = async ( + input: StartDBInstanceAutomatedBackupsReplicationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-www-form-urlencoded", + }; + let body: any; + body = buildFormUrlencodedString({ + ...serializeAws_queryStartDBInstanceAutomatedBackupsReplicationMessage(input, context), + Action: "StartDBInstanceAutomatedBackupsReplication", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_queryStartExportTaskCommand = async ( input: StartExportTaskCommandInput, context: __SerdeContext @@ -2952,6 +2981,22 @@ export const serializeAws_queryStopDBInstanceCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand = async ( + input: StopDBInstanceAutomatedBackupsReplicationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-www-form-urlencoded", + }; + let body: any; + body = buildFormUrlencodedString({ + ...serializeAws_queryStopDBInstanceAutomatedBackupsReplicationMessage(input, context), + Action: "StopDBInstanceAutomatedBackupsReplication", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const deserializeAws_queryAddRoleToDBClusterCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -12627,6 +12672,95 @@ const deserializeAws_queryStartDBInstanceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationResult( + data.StartDBInstanceAutomatedBackupsReplicationResult, + context + ); + const response: StartDBInstanceAutomatedBackupsReplicationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceAutomatedBackupQuotaExceededFault": + case "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault": + response = { + ...(await deserializeAws_queryDBInstanceAutomatedBackupQuotaExceededFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "DBInstanceNotFoundFault": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + response = { + ...(await deserializeAws_queryDBInstanceNotFoundFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidDBInstanceStateFault": + case "com.amazonaws.rds#InvalidDBInstanceStateFault": + response = { + ...(await deserializeAws_queryInvalidDBInstanceStateFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "KMSKeyNotAccessibleFault": + case "com.amazonaws.rds#KMSKeyNotAccessibleFault": + response = { + ...(await deserializeAws_queryKMSKeyNotAccessibleFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "StorageTypeNotSupportedFault": + case "com.amazonaws.rds#StorageTypeNotSupportedFault": + response = { + ...(await deserializeAws_queryStorageTypeNotSupportedFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.Error.code || parsedBody.Error.Code || errorCode; + response = { + ...parsedBody.Error, + name: `${errorCode}`, + message: parsedBody.Error.message || parsedBody.Error.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_queryStartExportTaskCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -12987,6 +13121,71 @@ const deserializeAws_queryStopDBInstanceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationResult( + data.StopDBInstanceAutomatedBackupsReplicationResult, + context + ); + const response: StopDBInstanceAutomatedBackupsReplicationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceNotFoundFault": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + response = { + ...(await deserializeAws_queryDBInstanceNotFoundFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidDBInstanceStateFault": + case "com.amazonaws.rds#InvalidDBInstanceStateFault": + response = { + ...(await deserializeAws_queryInvalidDBInstanceStateFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.Error.code || parsedBody.Error.Code || errorCode; + response = { + ...parsedBody.Error, + name: `${errorCode}`, + message: parsedBody.Error.message || parsedBody.Error.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + const deserializeAws_queryAuthorizationAlreadyExistsFaultResponse = async ( parsedOutput: any, context: __SerdeContext @@ -15839,6 +16038,9 @@ const serializeAws_queryDeleteDBInstanceAutomatedBackupMessage = ( if (input.DbiResourceId !== undefined) { entries["DbiResourceId"] = input.DbiResourceId; } + if (input.DBInstanceAutomatedBackupsArn !== undefined) { + entries["DBInstanceAutomatedBackupsArn"] = input.DBInstanceAutomatedBackupsArn; + } return entries; }; @@ -16278,6 +16480,9 @@ const serializeAws_queryDescribeDBInstanceAutomatedBackupsMessage = ( if (input.Marker !== undefined) { entries["Marker"] = input.Marker; } + if (input.DBInstanceAutomatedBackupsArn !== undefined) { + entries["DBInstanceAutomatedBackupsArn"] = input.DBInstanceAutomatedBackupsArn; + } return entries; }; @@ -18788,6 +18993,9 @@ const serializeAws_queryRestoreDBInstanceToPointInTimeMessage = ( if (input.MaxAllocatedStorage !== undefined) { entries["MaxAllocatedStorage"] = input.MaxAllocatedStorage; } + if (input.SourceDBInstanceAutomatedBackupsArn !== undefined) { + entries["SourceDBInstanceAutomatedBackupsArn"] = input.SourceDBInstanceAutomatedBackupsArn; + } return entries; }; @@ -18872,6 +19080,26 @@ const serializeAws_queryStartDBClusterMessage = (input: StartDBClusterMessage, c return entries; }; +const serializeAws_queryStartDBInstanceAutomatedBackupsReplicationMessage = ( + input: StartDBInstanceAutomatedBackupsReplicationMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.SourceDBInstanceArn !== undefined) { + entries["SourceDBInstanceArn"] = input.SourceDBInstanceArn; + } + if (input.BackupRetentionPeriod !== undefined) { + entries["BackupRetentionPeriod"] = input.BackupRetentionPeriod; + } + if (input.KmsKeyId !== undefined) { + entries["KmsKeyId"] = input.KmsKeyId; + } + if (input.PreSignedUrl !== undefined) { + entries["PreSignedUrl"] = input.PreSignedUrl; + } + return entries; +}; + const serializeAws_queryStartDBInstanceMessage = (input: StartDBInstanceMessage, context: __SerdeContext): any => { const entries: any = {}; if (input.DBInstanceIdentifier !== undefined) { @@ -18932,6 +19160,17 @@ const serializeAws_queryStopDBClusterMessage = (input: StopDBClusterMessage, con return entries; }; +const serializeAws_queryStopDBInstanceAutomatedBackupsReplicationMessage = ( + input: StopDBInstanceAutomatedBackupsReplicationMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.SourceDBInstanceArn !== undefined) { + entries["SourceDBInstanceArn"] = input.SourceDBInstanceArn; + } + return entries; +}; + const serializeAws_queryStopDBInstanceMessage = (input: StopDBInstanceMessage, context: __SerdeContext): any => { const entries: any = {}; if (input.DBInstanceIdentifier !== undefined) { @@ -20888,6 +21127,7 @@ const deserializeAws_queryDBInstance = (output: any, context: __SerdeContext): D ListenerEndpoint: undefined, MaxAllocatedStorage: undefined, TagList: undefined, + DBInstanceAutomatedBackupsReplications: undefined, }; if (output["DBInstanceIdentifier"] !== undefined) { contents.DBInstanceIdentifier = output["DBInstanceIdentifier"]; @@ -21159,6 +21399,18 @@ const deserializeAws_queryDBInstance = (output: any, context: __SerdeContext): D if (output["TagList"] !== undefined && output["TagList"]["Tag"] !== undefined) { contents.TagList = deserializeAws_queryTagList(__getArrayIfSingleItem(output["TagList"]["Tag"]), context); } + if (output.DBInstanceAutomatedBackupsReplications === "") { + contents.DBInstanceAutomatedBackupsReplications = []; + } + if ( + output["DBInstanceAutomatedBackupsReplications"] !== undefined && + output["DBInstanceAutomatedBackupsReplications"]["DBInstanceAutomatedBackupsReplication"] !== undefined + ) { + contents.DBInstanceAutomatedBackupsReplications = deserializeAws_queryDBInstanceAutomatedBackupsReplicationList( + __getArrayIfSingleItem(output["DBInstanceAutomatedBackupsReplications"]["DBInstanceAutomatedBackupsReplication"]), + context + ); + } return contents; }; @@ -21203,6 +21455,9 @@ const deserializeAws_queryDBInstanceAutomatedBackup = ( KmsKeyId: undefined, Timezone: undefined, IAMDatabaseAuthenticationEnabled: undefined, + BackupRetentionPeriod: undefined, + DBInstanceAutomatedBackupsArn: undefined, + DBInstanceAutomatedBackupsReplications: undefined, }; if (output["DBInstanceArn"] !== undefined) { contents.DBInstanceArn = output["DBInstanceArn"]; @@ -21273,6 +21528,24 @@ const deserializeAws_queryDBInstanceAutomatedBackup = ( if (output["IAMDatabaseAuthenticationEnabled"] !== undefined) { contents.IAMDatabaseAuthenticationEnabled = output["IAMDatabaseAuthenticationEnabled"] == "true"; } + if (output["BackupRetentionPeriod"] !== undefined) { + contents.BackupRetentionPeriod = parseInt(output["BackupRetentionPeriod"]); + } + if (output["DBInstanceAutomatedBackupsArn"] !== undefined) { + contents.DBInstanceAutomatedBackupsArn = output["DBInstanceAutomatedBackupsArn"]; + } + if (output.DBInstanceAutomatedBackupsReplications === "") { + contents.DBInstanceAutomatedBackupsReplications = []; + } + if ( + output["DBInstanceAutomatedBackupsReplications"] !== undefined && + output["DBInstanceAutomatedBackupsReplications"]["DBInstanceAutomatedBackupsReplication"] !== undefined + ) { + contents.DBInstanceAutomatedBackupsReplications = deserializeAws_queryDBInstanceAutomatedBackupsReplicationList( + __getArrayIfSingleItem(output["DBInstanceAutomatedBackupsReplications"]["DBInstanceAutomatedBackupsReplication"]), + context + ); + } return contents; }; @@ -21335,6 +21608,26 @@ const deserializeAws_queryDBInstanceAutomatedBackupQuotaExceededFault = ( return contents; }; +const deserializeAws_queryDBInstanceAutomatedBackupsReplication = ( + output: any, + context: __SerdeContext +): DBInstanceAutomatedBackupsReplication => { + let contents: any = { + DBInstanceAutomatedBackupsArn: undefined, + }; + if (output["DBInstanceAutomatedBackupsArn"] !== undefined) { + contents.DBInstanceAutomatedBackupsArn = output["DBInstanceAutomatedBackupsArn"]; + } + return contents; +}; + +const deserializeAws_queryDBInstanceAutomatedBackupsReplicationList = ( + output: any, + context: __SerdeContext +): DBInstanceAutomatedBackupsReplication[] => { + return (output || []).map((entry: any) => deserializeAws_queryDBInstanceAutomatedBackupsReplication(entry, context)); +}; + const deserializeAws_queryDBInstanceList = (output: any, context: __SerdeContext): DBInstance[] => { return (output || []).map((entry: any) => deserializeAws_queryDBInstance(entry, context)); }; @@ -25551,6 +25844,7 @@ const deserializeAws_querySourceRegion = (output: any, context: __SerdeContext): RegionName: undefined, Endpoint: undefined, Status: undefined, + SupportsDBInstanceAutomatedBackupsReplication: undefined, }; if (output["RegionName"] !== undefined) { contents.RegionName = output["RegionName"]; @@ -25561,6 +25855,10 @@ const deserializeAws_querySourceRegion = (output: any, context: __SerdeContext): if (output["Status"] !== undefined) { contents.Status = output["Status"]; } + if (output["SupportsDBInstanceAutomatedBackupsReplication"] !== undefined) { + contents.SupportsDBInstanceAutomatedBackupsReplication = + output["SupportsDBInstanceAutomatedBackupsReplication"] == "true"; + } return contents; }; @@ -25627,6 +25925,22 @@ const deserializeAws_queryStartDBClusterResult = (output: any, context: __SerdeC return contents; }; +const deserializeAws_queryStartDBInstanceAutomatedBackupsReplicationResult = ( + output: any, + context: __SerdeContext +): StartDBInstanceAutomatedBackupsReplicationResult => { + let contents: any = { + DBInstanceAutomatedBackup: undefined, + }; + if (output["DBInstanceAutomatedBackup"] !== undefined) { + contents.DBInstanceAutomatedBackup = deserializeAws_queryDBInstanceAutomatedBackup( + output["DBInstanceAutomatedBackup"], + context + ); + } + return contents; +}; + const deserializeAws_queryStartDBInstanceResult = (output: any, context: __SerdeContext): StartDBInstanceResult => { let contents: any = { DBInstance: undefined, @@ -25668,6 +25982,22 @@ const deserializeAws_queryStopDBClusterResult = (output: any, context: __SerdeCo return contents; }; +const deserializeAws_queryStopDBInstanceAutomatedBackupsReplicationResult = ( + output: any, + context: __SerdeContext +): StopDBInstanceAutomatedBackupsReplicationResult => { + let contents: any = { + DBInstanceAutomatedBackup: undefined, + }; + if (output["DBInstanceAutomatedBackup"] !== undefined) { + contents.DBInstanceAutomatedBackup = deserializeAws_queryDBInstanceAutomatedBackup( + output["DBInstanceAutomatedBackup"], + context + ); + } + return contents; +}; + const deserializeAws_queryStopDBInstanceResult = (output: any, context: __SerdeContext): StopDBInstanceResult => { let contents: any = { DBInstance: undefined, diff --git a/clients/client-redshift/Redshift.ts b/clients/client-redshift/Redshift.ts index ea39246342a34..884ee09542a49 100644 --- a/clients/client-redshift/Redshift.ts +++ b/clients/client-redshift/Redshift.ts @@ -3619,6 +3619,9 @@ export class Redshift extends RedshiftClient { *

                      ds2.8xlarge

                      *
                    • *
                    • + *

                      ra3.xlplus

                      + *
                    • + *
                    • *

                      ra3.4xlarge

                      *
                    • *
                    • diff --git a/clients/client-redshift/commands/ResizeClusterCommand.ts b/clients/client-redshift/commands/ResizeClusterCommand.ts index 26177f8d97892..0eeefc24d7aa3 100644 --- a/clients/client-redshift/commands/ResizeClusterCommand.ts +++ b/clients/client-redshift/commands/ResizeClusterCommand.ts @@ -50,6 +50,9 @@ export type ResizeClusterCommandOutput = ResizeClusterResult & __MetadataBearer; *

                      ds2.8xlarge

                      *
                    • *
                    • + *

                      ra3.xlplus

                      + *
                    • + *
                    • *

                      ra3.4xlarge

                      *
                    • *
                    • diff --git a/clients/client-redshift/models/models_0.ts b/clients/client-redshift/models/models_0.ts index 3b3ff40516d79..b3db967ec950d 100644 --- a/clients/client-redshift/models/models_0.ts +++ b/clients/client-redshift/models/models_0.ts @@ -722,6 +722,11 @@ export interface Snapshot { */ ClusterVersion?: string; + /** + *

                      The cluster version of the cluster used to create the snapshot. For example, 1.0.15503.

                      + */ + EngineFullVersion?: string; + /** *

                      The snapshot type. Snapshots created using CreateClusterSnapshot * and CopyClusterSnapshot are of type "manual".

                      @@ -1630,6 +1635,22 @@ export namespace ElasticIpStatus { }); } +/** + *

                      The connection endpoint for connecting an Amazon Redshift cluster through the proxy.

                      + */ +export interface SpartaProxyVpcEndpoint { + /** + *

                      The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.

                      + */ + VpcEndpointId?: string; +} + +export namespace SpartaProxyVpcEndpoint { + export const filterSensitiveLog = (obj: SpartaProxyVpcEndpoint): any => ({ + ...obj, + }); +} + /** *

                      Describes a connection endpoint.

                      */ @@ -1643,6 +1664,11 @@ export interface Endpoint { *

                      The port that the database engine is listening on.

                      */ Port?: number; + + /** + *

                      Describes a connection endpoint.

                      + */ + VpcEndpoints?: SpartaProxyVpcEndpoint[]; } export namespace Endpoint { @@ -2296,6 +2322,11 @@ export interface Cluster { */ ResizeInfo?: ResizeInfo; + /** + *

                      Describes the status of the Availability Zone relocation operation.

                      + */ + AvailabilityZoneRelocationStatus?: string; + /** *

                      The namespace Amazon Resource Name (ARN) of the cluster.

                      */ @@ -3209,7 +3240,7 @@ export interface CreateClusterMessage { *

                      Valid Values: ds2.xlarge | ds2.8xlarge | * dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | - * ra3.4xlarge | ra3.16xlarge + * ra3.xlplus | ra3.4xlarge | ra3.16xlarge *

                      */ NodeType: string | undefined; @@ -3472,6 +3503,11 @@ export interface CreateClusterMessage { *

                      A unique identifier for the snapshot schedule.

                      */ SnapshotScheduleIdentifier?: string; + + /** + *

                      The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.

                      + */ + AvailabilityZoneRelocation?: boolean; } export namespace CreateClusterMessage { @@ -8821,20 +8857,3 @@ export namespace InvalidRestoreFault { ...obj, }); } - -/** - *

                      The value specified for the sourceDatabaseName, - * sourceSchemaName, or sourceTableName parameter, or a - * combination of these, doesn't exist in the snapshot.

                      - */ -export interface InvalidTableRestoreArgumentFault extends __SmithyException, $MetadataBearer { - name: "InvalidTableRestoreArgumentFault"; - $fault: "client"; - message?: string; -} - -export namespace InvalidTableRestoreArgumentFault { - export const filterSensitiveLog = (obj: InvalidTableRestoreArgumentFault): any => ({ - ...obj, - }); -} diff --git a/clients/client-redshift/models/models_1.ts b/clients/client-redshift/models/models_1.ts index a7400a7c806b0..781e81a7ec550 100644 --- a/clients/client-redshift/models/models_1.ts +++ b/clients/client-redshift/models/models_1.ts @@ -13,6 +13,23 @@ import { import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; +/** + *

                      The value specified for the sourceDatabaseName, + * sourceSchemaName, or sourceTableName parameter, or a + * combination of these, doesn't exist in the snapshot.

                      + */ +export interface InvalidTableRestoreArgumentFault extends __SmithyException, $MetadataBearer { + name: "InvalidTableRestoreArgumentFault"; + $fault: "client"; + message?: string; +} + +export namespace InvalidTableRestoreArgumentFault { + export const filterSensitiveLog = (obj: InvalidTableRestoreArgumentFault): any => ({ + ...obj, + }); +} + /** *

                      */ @@ -46,7 +63,7 @@ export interface ModifyClusterMessage { *

                      Valid Values: ds2.xlarge | ds2.8xlarge | * dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | - * ra3.4xlarge | ra3.16xlarge + * ra3.xlplus | ra3.4xlarge | ra3.16xlarge *

                      */ NodeType?: string; @@ -276,6 +293,21 @@ export interface ModifyClusterMessage { * to encrypt data in the cluster.

                      */ KmsKeyId?: string; + + /** + *

                      The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.

                      + */ + AvailabilityZoneRelocation?: boolean; + + /** + *

                      The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.

                      + */ + AvailabilityZone?: string; + + /** + *

                      The option to change the port of an Amazon Redshift cluster.

                      + */ + Port?: number; } export namespace ModifyClusterMessage { @@ -1238,6 +1270,11 @@ export interface RestoreFromClusterSnapshotMessage { *

                      The number of nodes specified when provisioning the restored cluster.

                      */ NumberOfNodes?: number; + + /** + *

                      The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is restored.

                      + */ + AvailabilityZoneRelocation?: boolean; } export namespace RestoreFromClusterSnapshotMessage { diff --git a/clients/client-redshift/protocols/Aws_query.ts b/clients/client-redshift/protocols/Aws_query.ts index df31aac12ee7b..a8c38d50f4fbc 100644 --- a/clients/client-redshift/protocols/Aws_query.ts +++ b/clients/client-redshift/protocols/Aws_query.ts @@ -499,7 +499,6 @@ import { InvalidSnapshotCopyGrantStateFault, InvalidSubnet, InvalidSubscriptionStateFault, - InvalidTableRestoreArgumentFault, InvalidTagFault, InvalidUsageLimitFault, InvalidVPCNetworkStateFault, @@ -561,6 +560,7 @@ import { SnapshotScheduleQuotaExceededFault, SnapshotSortingEntity, SourceNotFoundFault, + SpartaProxyVpcEndpoint, Subnet, SubscriptionAlreadyExistFault, SubscriptionCategoryNotFoundFault, @@ -588,6 +588,7 @@ import { VpcSecurityGroupMembership, } from "../models/models_0"; import { + InvalidTableRestoreArgumentFault, ModifyClusterDbRevisionMessage, ModifyClusterDbRevisionResult, ModifyClusterIamRolesMessage, @@ -3788,6 +3789,14 @@ const deserializeAws_queryCreateSnapshotScheduleCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "InvalidTagFault": + case "com.amazonaws.redshift#InvalidTagFault": + response = { + ...(await deserializeAws_queryInvalidTagFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ScheduleDefinitionTypeUnsupportedFault": case "com.amazonaws.redshift#ScheduleDefinitionTypeUnsupportedFault": response = { @@ -3863,6 +3872,14 @@ const deserializeAws_queryCreateTagsCommandError = async ( let errorCode: string = "UnknownError"; errorCode = loadQueryErrorCode(output, parsedOutput.body); switch (errorCode) { + case "InvalidClusterStateFault": + case "com.amazonaws.redshift#InvalidClusterStateFault": + response = { + ...(await deserializeAws_queryInvalidClusterStateFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidTagFault": case "com.amazonaws.redshift#InvalidTagFault": response = { @@ -8907,6 +8924,14 @@ const deserializeAws_queryResumeClusterCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "InsufficientClusterCapacityFault": + case "com.amazonaws.redshift#InsufficientClusterCapacityFault": + response = { + ...(await deserializeAws_queryInsufficientClusterCapacityFaultResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidClusterStateFault": case "com.amazonaws.redshift#InvalidClusterStateFault": response = { @@ -10993,6 +11018,9 @@ const serializeAws_queryCreateClusterMessage = (input: CreateClusterMessage, con if (input.SnapshotScheduleIdentifier !== undefined) { entries["SnapshotScheduleIdentifier"] = input.SnapshotScheduleIdentifier; } + if (input.AvailabilityZoneRelocation !== undefined) { + entries["AvailabilityZoneRelocation"] = input.AvailabilityZoneRelocation; + } return entries; }; @@ -12475,6 +12503,15 @@ const serializeAws_queryModifyClusterMessage = (input: ModifyClusterMessage, con if (input.KmsKeyId !== undefined) { entries["KmsKeyId"] = input.KmsKeyId; } + if (input.AvailabilityZoneRelocation !== undefined) { + entries["AvailabilityZoneRelocation"] = input.AvailabilityZoneRelocation; + } + if (input.AvailabilityZone !== undefined) { + entries["AvailabilityZone"] = input.AvailabilityZone; + } + if (input.Port !== undefined) { + entries["Port"] = input.Port; + } return entries; }; @@ -12921,6 +12958,9 @@ const serializeAws_queryRestoreFromClusterSnapshotMessage = ( if (input.NumberOfNodes !== undefined) { entries["NumberOfNodes"] = input.NumberOfNodes; } + if (input.AvailabilityZoneRelocation !== undefined) { + entries["AvailabilityZoneRelocation"] = input.AvailabilityZoneRelocation; + } return entries; }; @@ -13550,6 +13590,7 @@ const deserializeAws_queryCluster = (output: any, context: __SerdeContext): Clus ExpectedNextSnapshotScheduleTimeStatus: undefined, NextMaintenanceWindowStartTime: undefined, ResizeInfo: undefined, + AvailabilityZoneRelocationStatus: undefined, ClusterNamespaceArn: undefined, }; if (output["ClusterIdentifier"] !== undefined) { @@ -13750,6 +13791,9 @@ const deserializeAws_queryCluster = (output: any, context: __SerdeContext): Clus if (output["ResizeInfo"] !== undefined) { contents.ResizeInfo = deserializeAws_queryResizeInfo(output["ResizeInfo"], context); } + if (output["AvailabilityZoneRelocationStatus"] !== undefined) { + contents.AvailabilityZoneRelocationStatus = output["AvailabilityZoneRelocationStatus"]; + } if (output["ClusterNamespaceArn"] !== undefined) { contents.ClusterNamespaceArn = output["ClusterNamespaceArn"]; } @@ -14907,6 +14951,7 @@ const deserializeAws_queryEndpoint = (output: any, context: __SerdeContext): End let contents: any = { Address: undefined, Port: undefined, + VpcEndpoints: undefined, }; if (output["Address"] !== undefined) { contents.Address = output["Address"]; @@ -14914,6 +14959,15 @@ const deserializeAws_queryEndpoint = (output: any, context: __SerdeContext): End if (output["Port"] !== undefined) { contents.Port = parseInt(output["Port"]); } + if (output.VpcEndpoints === "") { + contents.VpcEndpoints = []; + } + if (output["VpcEndpoints"] !== undefined && output["VpcEndpoints"]["SpartaProxyVpcEndpoint"] !== undefined) { + contents.VpcEndpoints = deserializeAws_querySpartaProxyVpcEndpointList( + __getArrayIfSingleItem(output["VpcEndpoints"]["SpartaProxyVpcEndpoint"]), + context + ); + } return contents; }; @@ -16964,6 +17018,7 @@ const deserializeAws_querySnapshot = (output: any, context: __SerdeContext): Sna ClusterCreateTime: undefined, MasterUsername: undefined, ClusterVersion: undefined, + EngineFullVersion: undefined, SnapshotType: undefined, NodeType: undefined, NumberOfNodes: undefined, @@ -17016,6 +17071,9 @@ const deserializeAws_querySnapshot = (output: any, context: __SerdeContext): Sna if (output["ClusterVersion"] !== undefined) { contents.ClusterVersion = output["ClusterVersion"]; } + if (output["EngineFullVersion"] !== undefined) { + contents.EngineFullVersion = output["EngineFullVersion"]; + } if (output["SnapshotType"] !== undefined) { contents.SnapshotType = output["SnapshotType"]; } @@ -17449,6 +17507,23 @@ const deserializeAws_querySourceNotFoundFault = (output: any, context: __SerdeCo return contents; }; +const deserializeAws_querySpartaProxyVpcEndpoint = (output: any, context: __SerdeContext): SpartaProxyVpcEndpoint => { + let contents: any = { + VpcEndpointId: undefined, + }; + if (output["VpcEndpointId"] !== undefined) { + contents.VpcEndpointId = output["VpcEndpointId"]; + } + return contents; +}; + +const deserializeAws_querySpartaProxyVpcEndpointList = ( + output: any, + context: __SerdeContext +): SpartaProxyVpcEndpoint[] => { + return (output || []).map((entry: any) => deserializeAws_querySpartaProxyVpcEndpoint(entry, context)); +}; + const deserializeAws_querySubnet = (output: any, context: __SerdeContext): Subnet => { let contents: any = { SubnetIdentifier: undefined, diff --git a/clients/client-sagemaker-edge/.gitignore b/clients/client-sagemaker-edge/.gitignore new file mode 100644 index 0000000000000..b41c05b597c42 --- /dev/null +++ b/clients/client-sagemaker-edge/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-sagemaker-edge/.npmignore b/clients/client-sagemaker-edge/.npmignore new file mode 100644 index 0000000000000..b7ff81137c4ad --- /dev/null +++ b/clients/client-sagemaker-edge/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-sagemaker-edge/LICENSE b/clients/client-sagemaker-edge/LICENSE new file mode 100644 index 0000000000000..dd65ae06be7a9 --- /dev/null +++ b/clients/client-sagemaker-edge/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/clients/client-sagemaker-edge/README.md b/clients/client-sagemaker-edge/README.md new file mode 100644 index 0000000000000..9def4c25c96f1 --- /dev/null +++ b/clients/client-sagemaker-edge/README.md @@ -0,0 +1,6 @@ +# @aws-sdk/client-sagemaker-edge + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-sagemaker-edge/rc.svg)](https://www.npmjs.com/package/@aws-sdk/client-sagemaker-edge) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-sagemaker-edge.svg)](https://www.npmjs.com/package/@aws-sdk/client-sagemaker-edge) + +For SDK usage, please step to [SDK readme](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-sagemaker-edge/SagemakerEdge.ts b/clients/client-sagemaker-edge/SagemakerEdge.ts new file mode 100644 index 0000000000000..7b84a9d5b3d0f --- /dev/null +++ b/clients/client-sagemaker-edge/SagemakerEdge.ts @@ -0,0 +1,81 @@ +import { SagemakerEdgeClient } from "./SagemakerEdgeClient"; +import { + GetDeviceRegistrationCommand, + GetDeviceRegistrationCommandInput, + GetDeviceRegistrationCommandOutput, +} from "./commands/GetDeviceRegistrationCommand"; +import { + SendHeartbeatCommand, + SendHeartbeatCommandInput, + SendHeartbeatCommandOutput, +} from "./commands/SendHeartbeatCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + *

                      SageMaker Edge Manager dataplane service for communicating with active agents.

                      + */ +export class SagemakerEdge extends SagemakerEdgeClient { + /** + *

                      Use to check if a device is registered with SageMaker Edge Manager.

                      + */ + public getDeviceRegistration( + args: GetDeviceRegistrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getDeviceRegistration( + args: GetDeviceRegistrationCommandInput, + cb: (err: any, data?: GetDeviceRegistrationCommandOutput) => void + ): void; + public getDeviceRegistration( + args: GetDeviceRegistrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetDeviceRegistrationCommandOutput) => void + ): void; + public getDeviceRegistration( + args: GetDeviceRegistrationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetDeviceRegistrationCommandOutput) => void), + cb?: (err: any, data?: GetDeviceRegistrationCommandOutput) => void + ): Promise | void { + const command = new GetDeviceRegistrationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Use to get the current status of devices registered on SageMaker Edge Manager.

                      + */ + public sendHeartbeat( + args: SendHeartbeatCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public sendHeartbeat( + args: SendHeartbeatCommandInput, + cb: (err: any, data?: SendHeartbeatCommandOutput) => void + ): void; + public sendHeartbeat( + args: SendHeartbeatCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: SendHeartbeatCommandOutput) => void + ): void; + public sendHeartbeat( + args: SendHeartbeatCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: SendHeartbeatCommandOutput) => void), + cb?: (err: any, data?: SendHeartbeatCommandOutput) => void + ): Promise | void { + const command = new SendHeartbeatCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-sagemaker-edge/SagemakerEdgeClient.ts b/clients/client-sagemaker-edge/SagemakerEdgeClient.ts new file mode 100644 index 0000000000000..4f311e17e9efa --- /dev/null +++ b/clients/client-sagemaker-edge/SagemakerEdgeClient.ts @@ -0,0 +1,206 @@ +import { + GetDeviceRegistrationCommandInput, + GetDeviceRegistrationCommandOutput, +} from "./commands/GetDeviceRegistrationCommand"; +import { SendHeartbeatCommandInput, SendHeartbeatCommandOutput } from "./commands/SendHeartbeatCommand"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { RetryInputConfig, RetryResolvedConfig, getRetryPlugin, resolveRetryConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, +} from "@aws-sdk/types"; + +export type ServiceInputTypes = GetDeviceRegistrationCommandInput | SendHeartbeatCommandInput; + +export type ServiceOutputTypes = GetDeviceRegistrationCommandOutput | SendHeartbeatCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type SagemakerEdgeClientConfig = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type SagemakerEdgeClientResolvedConfig = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + *

                      SageMaker Edge Manager dataplane service for communicating with active agents.

                      + */ +export class SagemakerEdgeClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + SagemakerEdgeClientResolvedConfig +> { + readonly config: SagemakerEdgeClientResolvedConfig; + + constructor(configuration: SagemakerEdgeClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration, + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + } + + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-sagemaker-edge/commands/GetDeviceRegistrationCommand.ts b/clients/client-sagemaker-edge/commands/GetDeviceRegistrationCommand.ts new file mode 100644 index 0000000000000..650941defb984 --- /dev/null +++ b/clients/client-sagemaker-edge/commands/GetDeviceRegistrationCommand.ts @@ -0,0 +1,88 @@ +import { SagemakerEdgeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SagemakerEdgeClient"; +import { GetDeviceRegistrationRequest, GetDeviceRegistrationResult } from "../models/models_0"; +import { + deserializeAws_restJson1GetDeviceRegistrationCommand, + serializeAws_restJson1GetDeviceRegistrationCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetDeviceRegistrationCommandInput = GetDeviceRegistrationRequest; +export type GetDeviceRegistrationCommandOutput = GetDeviceRegistrationResult & __MetadataBearer; + +/** + *

                      Use to check if a device is registered with SageMaker Edge Manager.

                      + */ +export class GetDeviceRegistrationCommand extends $Command< + GetDeviceRegistrationCommandInput, + GetDeviceRegistrationCommandOutput, + SagemakerEdgeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetDeviceRegistrationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SagemakerEdgeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SagemakerEdgeClient"; + const commandName = "GetDeviceRegistrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetDeviceRegistrationRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetDeviceRegistrationResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetDeviceRegistrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetDeviceRegistrationCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetDeviceRegistrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker-edge/commands/SendHeartbeatCommand.ts b/clients/client-sagemaker-edge/commands/SendHeartbeatCommand.ts new file mode 100644 index 0000000000000..fef578ac20806 --- /dev/null +++ b/clients/client-sagemaker-edge/commands/SendHeartbeatCommand.ts @@ -0,0 +1,88 @@ +import { SagemakerEdgeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SagemakerEdgeClient"; +import { SendHeartbeatRequest } from "../models/models_0"; +import { + deserializeAws_restJson1SendHeartbeatCommand, + serializeAws_restJson1SendHeartbeatCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type SendHeartbeatCommandInput = SendHeartbeatRequest; +export type SendHeartbeatCommandOutput = __MetadataBearer; + +/** + *

                      Use to get the current status of devices registered on SageMaker Edge Manager.

                      + */ +export class SendHeartbeatCommand extends $Command< + SendHeartbeatCommandInput, + SendHeartbeatCommandOutput, + SagemakerEdgeClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: SendHeartbeatCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SagemakerEdgeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SagemakerEdgeClient"; + const commandName = "SendHeartbeatCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: SendHeartbeatRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: SendHeartbeatCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1SendHeartbeatCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1SendHeartbeatCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker-edge/endpoints.ts b/clients/client-sagemaker-edge/endpoints.ts new file mode 100644 index 0000000000000..b8d3e657976bc --- /dev/null +++ b/clients/client-sagemaker-edge/endpoints.ts @@ -0,0 +1,81 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "sagemaker.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "sagemaker.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "sagemaker.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "sagemaker.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "sagemaker.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-east-1", "us-gov-west-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = (region: string, options?: any) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region), + partition: "aws-cn", + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region), + partition: "aws-iso", + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), + partition: "aws-iso-b", + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), + partition: "aws-us-gov", + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region), + partition: "aws", + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-sagemaker-edge/index.ts b/clients/client-sagemaker-edge/index.ts new file mode 100644 index 0000000000000..3d1aae2c5aaea --- /dev/null +++ b/clients/client-sagemaker-edge/index.ts @@ -0,0 +1,5 @@ +export * from "./SagemakerEdgeClient"; +export * from "./SagemakerEdge"; +export * from "./commands/GetDeviceRegistrationCommand"; +export * from "./commands/SendHeartbeatCommand"; +export * from "./models/index"; diff --git a/clients/client-sagemaker-edge/models/index.ts b/clients/client-sagemaker-edge/models/index.ts new file mode 100644 index 0000000000000..09c5d6e09b8c5 --- /dev/null +++ b/clients/client-sagemaker-edge/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-sagemaker-edge/models/models_0.ts b/clients/client-sagemaker-edge/models/models_0.ts new file mode 100644 index 0000000000000..ff6c6db9f5fd1 --- /dev/null +++ b/clients/client-sagemaker-edge/models/models_0.ts @@ -0,0 +1,154 @@ +import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +export interface GetDeviceRegistrationRequest { + /** + *

                      The unique name of the device you want to get the registration status from.

                      + */ + DeviceName: string | undefined; + + /** + *

                      The name of the fleet that the device belongs to.

                      + */ + DeviceFleetName: string | undefined; +} + +export namespace GetDeviceRegistrationRequest { + export const filterSensitiveLog = (obj: GetDeviceRegistrationRequest): any => ({ + ...obj, + }); +} + +export interface GetDeviceRegistrationResult { + /** + *

                      Describes if the device is currently registered with SageMaker Edge Manager.

                      + */ + DeviceRegistration?: string; + + /** + *

                      The amount of time, in seconds, that the registration status is stored on the device’s cache before it is refreshed.

                      + */ + CacheTTL?: string; +} + +export namespace GetDeviceRegistrationResult { + export const filterSensitiveLog = (obj: GetDeviceRegistrationResult): any => ({ + ...obj, + }); +} + +/** + *

                      An internal failure occurred. Try your request again. If the problem + * persists, contact AWS customer support.

                      + */ +export interface InternalServiceException extends __SmithyException, $MetadataBearer { + name: "InternalServiceException"; + $fault: "client"; + Message?: string; +} + +export namespace InternalServiceException { + export const filterSensitiveLog = (obj: InternalServiceException): any => ({ + ...obj, + }); +} + +/** + *

                      Information required for edge device metrics.

                      + */ +export interface EdgeMetric { + /** + *

                      The dimension of metrics published.

                      + */ + Dimension?: string; + + /** + *

                      Returns the name of the metric.

                      + */ + MetricName?: string; + + /** + *

                      Returns the value of the metric.

                      + */ + Value?: number; + + /** + *

                      Timestamp of when the metric was requested.

                      + */ + Timestamp?: Date; +} + +export namespace EdgeMetric { + export const filterSensitiveLog = (obj: EdgeMetric): any => ({ + ...obj, + }); +} + +/** + *

                      Information about a model deployed on an edge device that is registered with SageMaker Edge Manager.

                      + */ +export interface Model { + /** + *

                      The name of the model.

                      + */ + ModelName?: string; + + /** + *

                      The version of the model.

                      + */ + ModelVersion?: string; + + /** + *

                      The timestamp of the last data sample taken.

                      + */ + LatestSampleTime?: Date; + + /** + *

                      The timestamp of the last inference that was made.

                      + */ + LatestInference?: Date; + + /** + *

                      Information required for model metrics.

                      + */ + ModelMetrics?: EdgeMetric[]; +} + +export namespace Model { + export const filterSensitiveLog = (obj: Model): any => ({ + ...obj, + }); +} + +export interface SendHeartbeatRequest { + /** + *

                      For internal use. Returns a list of SageMaker Edge Manager agent operating metrics.

                      + */ + AgentMetrics?: EdgeMetric[]; + + /** + *

                      Returns a list of models deployed on the the device.

                      + */ + Models?: Model[]; + + /** + *

                      Returns the version of the agent.

                      + */ + AgentVersion: string | undefined; + + /** + *

                      The unique name of the device.

                      + */ + DeviceName: string | undefined; + + /** + *

                      The name of the fleet that the device belongs to.

                      + */ + DeviceFleetName: string | undefined; +} + +export namespace SendHeartbeatRequest { + export const filterSensitiveLog = (obj: SendHeartbeatRequest): any => ({ + ...obj, + }); +} diff --git a/clients/client-sagemaker-edge/package.json b/clients/client-sagemaker-edge/package.json new file mode 100644 index 0000000000000..336a1f63b34a1 --- /dev/null +++ b/clients/client-sagemaker-edge/package.json @@ -0,0 +1,83 @@ +{ + "name": "@aws-sdk/client-sagemaker-edge", + "description": "AWS SDK for JavaScript Sagemaker Edge Client for Node.js, Browser and React Native", + "version": "1.0.0-rc.1", + "scripts": { + "clean": "yarn remove-definitions && yarn remove-dist && yarn remove-documentation", + "build-documentation": "yarn remove-documentation && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "yarn build:cjs", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "test": "yarn build && jest --coverage --passWithNoTests", + "build:cjs": "tsc -p tsconfig.json", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn build:cjs && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "react-native": { + "./runtimeConfig": "./runtimeConfig.native" + }, + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.8", + "@aws-sdk/credential-provider-node": "1.0.0-rc.8", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.8", + "@aws-sdk/hash-node": "1.0.0-rc.8", + "@aws-sdk/invalid-dependency": "1.0.0-rc.8", + "@aws-sdk/middleware-content-length": "1.0.0-rc.8", + "@aws-sdk/middleware-host-header": "1.0.0-rc.8", + "@aws-sdk/middleware-logger": "1.0.0-rc.8", + "@aws-sdk/middleware-retry": "1.0.0-rc.8", + "@aws-sdk/middleware-serde": "1.0.0-rc.8", + "@aws-sdk/middleware-signing": "1.0.0-rc.8", + "@aws-sdk/middleware-stack": "1.0.0-rc.8", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.8", + "@aws-sdk/node-config-provider": "1.0.0-rc.8", + "@aws-sdk/node-http-handler": "1.0.0-rc.8", + "@aws-sdk/protocol-http": "1.0.0-rc.8", + "@aws-sdk/smithy-client": "1.0.0-rc.8", + "@aws-sdk/url-parser-browser": "1.0.0-rc.8", + "@aws-sdk/url-parser-node": "1.0.0-rc.8", + "@aws-sdk/util-base64-browser": "1.0.0-rc.8", + "@aws-sdk/util-base64-node": "1.0.0-rc.8", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.8", + "@aws-sdk/util-body-length-node": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.8", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.8", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.8", + "@aws-sdk/util-utf8-node": "1.0.0-rc.8", + "tslib": "^2.0.0" + }, + "devDependencies": { + "@aws-sdk/client-documentation-generator": "1.0.0-rc.8", + "@aws-sdk/types": "1.0.0-rc.8", + "@types/node": "^12.7.5", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "typedoc": "^0.19.2", + "typescript": "~4.1.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/master/clients/client-sagemaker-edge", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-sagemaker-edge" + } +} diff --git a/clients/client-sagemaker-edge/protocols/Aws_restJson1.ts b/clients/client-sagemaker-edge/protocols/Aws_restJson1.ts new file mode 100644 index 0000000000000..af7e3019188af --- /dev/null +++ b/clients/client-sagemaker-edge/protocols/Aws_restJson1.ts @@ -0,0 +1,292 @@ +import { + GetDeviceRegistrationCommandInput, + GetDeviceRegistrationCommandOutput, +} from "../commands/GetDeviceRegistrationCommand"; +import { SendHeartbeatCommandInput, SendHeartbeatCommandOutput } from "../commands/SendHeartbeatCommand"; +import { EdgeMetric, InternalServiceException, Model } from "../models/models_0"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export const serializeAws_restJson1GetDeviceRegistrationCommand = async ( + input: GetDeviceRegistrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/GetDeviceRegistration"; + let body: any; + body = JSON.stringify({ + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.DeviceName !== undefined && { DeviceName: input.DeviceName }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1SendHeartbeatCommand = async ( + input: SendHeartbeatCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/SendHeartbeat"; + let body: any; + body = JSON.stringify({ + ...(input.AgentMetrics !== undefined && { + AgentMetrics: serializeAws_restJson1EdgeMetrics(input.AgentMetrics, context), + }), + ...(input.AgentVersion !== undefined && { AgentVersion: input.AgentVersion }), + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.DeviceName !== undefined && { DeviceName: input.DeviceName }), + ...(input.Models !== undefined && { Models: serializeAws_restJson1Models(input.Models, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const deserializeAws_restJson1GetDeviceRegistrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetDeviceRegistrationCommandError(output, context); + } + const contents: GetDeviceRegistrationCommandOutput = { + $metadata: deserializeMetadata(output), + CacheTTL: undefined, + DeviceRegistration: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.CacheTTL !== undefined && data.CacheTTL !== null) { + contents.CacheTTL = data.CacheTTL; + } + if (data.DeviceRegistration !== undefined && data.DeviceRegistration !== null) { + contents.DeviceRegistration = data.DeviceRegistration; + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetDeviceRegistrationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceException": + case "com.amazonaws.sagemakeredge#InternalServiceException": + response = { + ...(await deserializeAws_restJson1InternalServiceExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1SendHeartbeatCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1SendHeartbeatCommandError(output, context); + } + const contents: SendHeartbeatCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1SendHeartbeatCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceException": + case "com.amazonaws.sagemakeredge#InternalServiceException": + response = { + ...(await deserializeAws_restJson1InternalServiceExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1InternalServiceExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServiceException = { + name: "InternalServiceException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = data.Message; + } + return contents; +}; + +const serializeAws_restJson1EdgeMetric = (input: EdgeMetric, context: __SerdeContext): any => { + return { + ...(input.Dimension !== undefined && { Dimension: input.Dimension }), + ...(input.MetricName !== undefined && { MetricName: input.MetricName }), + ...(input.Timestamp !== undefined && { Timestamp: Math.round(input.Timestamp.getTime() / 1000) }), + ...(input.Value !== undefined && { Value: input.Value }), + }; +}; + +const serializeAws_restJson1EdgeMetrics = (input: EdgeMetric[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1EdgeMetric(entry, context)); +}; + +const serializeAws_restJson1Model = (input: Model, context: __SerdeContext): any => { + return { + ...(input.LatestInference !== undefined && { LatestInference: Math.round(input.LatestInference.getTime() / 1000) }), + ...(input.LatestSampleTime !== undefined && { + LatestSampleTime: Math.round(input.LatestSampleTime.getTime() / 1000), + }), + ...(input.ModelMetrics !== undefined && { + ModelMetrics: serializeAws_restJson1EdgeMetrics(input.ModelMetrics, context), + }), + ...(input.ModelName !== undefined && { ModelName: input.ModelName }), + ...(input.ModelVersion !== undefined && { ModelVersion: input.ModelVersion }), + }; +}; + +const serializeAws_restJson1Models = (input: Model[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_restJson1Model(entry, context)); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const isSerializableHeaderValue = (value: any): boolean => + value !== undefined && + value !== "" && + (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && + (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); + +/** + * Load an error code for the aws.rest-json-1.1 protocol. + */ +const loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => { + const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); + + const sanitizeErrorCode = (rawValue: string): string => { + let cleanValue = rawValue; + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== undefined) { + return sanitizeErrorCode(output.headers[headerKey]); + } + + if (data.code !== undefined) { + return sanitizeErrorCode(data.code); + } + + if (data["__type"] !== undefined) { + return sanitizeErrorCode(data["__type"]); + } + + return ""; +}; diff --git a/clients/client-sagemaker-edge/runtimeConfig.browser.ts b/clients/client-sagemaker-edge/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..b95d7c41ca791 --- /dev/null +++ b/clients/client-sagemaker-edge/runtimeConfig.browser.ts @@ -0,0 +1,34 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidAsyncFunction } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS } from "@aws-sdk/middleware-retry"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { ClientDefaults } from "./SagemakerEdgeClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "browser", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider: invalidAsyncFunction("Credentialis missing") as any, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: DEFAULT_MAX_ATTEMPTS, + region: invalidAsyncFunction("Region is missing") as any, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-sagemaker-edge/runtimeConfig.native.ts b/clients/client-sagemaker-edge/runtimeConfig.native.ts new file mode 100644 index 0000000000000..b486e532174d2 --- /dev/null +++ b/clients/client-sagemaker-edge/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import packageInfo from "./package.json"; + +import { Sha256 } from "@aws-crypto/sha256-js"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { ClientDefaults } from "./SagemakerEdgeClient"; +import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...BrowserDefaults, + runtime: "react-native", + defaultUserAgent: `aws-sdk-js-v3-react-native-${packageInfo.name}/${packageInfo.version}`, + sha256: Sha256, + urlParser: parseUrl, +}; diff --git a/clients/client-sagemaker-edge/runtimeConfig.shared.ts b/clients/client-sagemaker-edge/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..984e97bcc59b3 --- /dev/null +++ b/clients/client-sagemaker-edge/runtimeConfig.shared.ts @@ -0,0 +1,13 @@ +import { defaultRegionInfoProvider } from "./endpoints"; +import { Logger as __Logger } from "@aws-sdk/types"; + +/** + * @internal + */ +export const ClientSharedValues = { + apiVersion: "2020-09-23", + disableHostPrefix: false, + logger: {} as __Logger, + regionInfoProvider: defaultRegionInfoProvider, + signingName: "sagemaker", +}; diff --git a/clients/client-sagemaker-edge/runtimeConfig.ts b/clients/client-sagemaker-edge/runtimeConfig.ts new file mode 100644 index 0000000000000..89e3b964d59ef --- /dev/null +++ b/clients/client-sagemaker-edge/runtimeConfig.ts @@ -0,0 +1,36 @@ +import packageInfo from "./package.json"; + +import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { ClientDefaults } from "./SagemakerEdgeClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + runtime: "node", + base64Decoder: fromBase64, + base64Encoder: toBase64, + bodyLengthChecker: calculateBodyLength, + credentialDefaultProvider, + defaultUserAgent: defaultUserAgent(packageInfo.name, packageInfo.version), + maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + streamCollector, + urlParser: parseUrl, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, +}; diff --git a/clients/client-sagemaker-edge/tsconfig.es.json b/clients/client-sagemaker-edge/tsconfig.es.json new file mode 100644 index 0000000000000..30df5d2e6986e --- /dev/null +++ b/clients/client-sagemaker-edge/tsconfig.es.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist/es" + } +} diff --git a/clients/client-sagemaker-edge/tsconfig.json b/clients/client-sagemaker-edge/tsconfig.json new file mode 100644 index 0000000000000..4cf936f614b4d --- /dev/null +++ b/clients/client-sagemaker-edge/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "./protocols/*.ts", "./e2e/*.ts", "./endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "readme": "./README.md", + "mode": "file", + "out": "./docs", + "theme": "minimal", + "plugin": ["@aws-sdk/client-documentation-generator"] + } +} diff --git a/clients/client-sagemaker-runtime/SageMakerRuntime.ts b/clients/client-sagemaker-runtime/SageMakerRuntime.ts index 35d3500f05e4c..0a7f0a1389ec7 100644 --- a/clients/client-sagemaker-runtime/SageMakerRuntime.ts +++ b/clients/client-sagemaker-runtime/SageMakerRuntime.ts @@ -19,11 +19,12 @@ export class SageMakerRuntime extends SageMakerRuntimeClient { * additional headers. You should not rely on the behavior of headers outside those * enumerated in the request syntax.

                      *

                      Calls to InvokeEndpoint are authenticated by using AWS Signature Version - * 4. For information, see Authenticating Requests (AWS Signature Version 4) in the Amazon S3 API + * 4. For information, see Authenticating + * Requests (AWS Signature Version 4) in the Amazon S3 API * Reference.

                      *

                      A customer's model containers must respond to requests within 60 seconds. The model - * itself can have a maximum processing time of 60 seconds before responding to the - * /invocations. If your model is going to take 50-60 seconds of processing time, the SDK + * itself can have a maximum processing time of 60 seconds before responding to + * invocations. If your model is going to take 50-60 seconds of processing time, the SDK * socket timeout should be set to be 70 seconds.

                      * *

                      Endpoints are scoped to an individual account, and are not public. The URL does diff --git a/clients/client-sagemaker-runtime/commands/InvokeEndpointCommand.ts b/clients/client-sagemaker-runtime/commands/InvokeEndpointCommand.ts index a085f1a46ec31..c502b815a16db 100644 --- a/clients/client-sagemaker-runtime/commands/InvokeEndpointCommand.ts +++ b/clients/client-sagemaker-runtime/commands/InvokeEndpointCommand.ts @@ -29,11 +29,12 @@ export type InvokeEndpointCommandOutput = InvokeEndpointOutput & __MetadataBeare * additional headers. You should not rely on the behavior of headers outside those * enumerated in the request syntax.

                      *

                      Calls to InvokeEndpoint are authenticated by using AWS Signature Version - * 4. For information, see Authenticating Requests (AWS Signature Version 4) in the Amazon S3 API + * 4. For information, see Authenticating + * Requests (AWS Signature Version 4) in the Amazon S3 API * Reference.

                      *

                      A customer's model containers must respond to requests within 60 seconds. The model - * itself can have a maximum processing time of 60 seconds before responding to the - * /invocations. If your model is going to take 50-60 seconds of processing time, the SDK + * itself can have a maximum processing time of 60 seconds before responding to + * invocations. If your model is going to take 50-60 seconds of processing time, the SDK * socket timeout should be set to be 70 seconds.

                      * *

                      Endpoints are scoped to an individual account, and are not public. The URL does diff --git a/clients/client-sagemaker-runtime/models/models_0.ts b/clients/client-sagemaker-runtime/models/models_0.ts index 1ede1563b84b9..e54f5291b9be8 100644 --- a/clients/client-sagemaker-runtime/models/models_0.ts +++ b/clients/client-sagemaker-runtime/models/models_0.ts @@ -18,14 +18,10 @@ export namespace InternalFailure { export interface InvokeEndpointInput { /** - *

                      The MIME type of the input data in the request body.

                      - */ - ContentType?: string; - - /** - *

                      The model to request for inference when invoking a multi-model endpoint.

                      + *

                      The name of the endpoint that you specified when you created the endpoint using the + * CreateEndpoint API.

                      */ - TargetModel?: string; + EndpointName: string | undefined; /** *

                      Provides input data, in the format specified in the ContentType @@ -35,6 +31,16 @@ export interface InvokeEndpointInput { */ Body: Uint8Array | undefined; + /** + *

                      The MIME type of the input data in the request body.

                      + */ + ContentType?: string; + + /** + *

                      The desired MIME type of the inference in the response.

                      + */ + Accept?: string; + /** *

                      Provides additional information about a request for an inference submitted to a model * hosted at an Amazon SageMaker endpoint. The information is an opaque value that is @@ -42,29 +48,40 @@ export interface InvokeEndpointInput { * use to track a request or to provide other metadata that a service endpoint was * programmed to process. The value must consist of no more than 1024 visible US-ASCII * characters as specified in Section 3.3.6. Field Value - * Components of the Hypertext Transfer Protocol (HTTP/1.1). This feature is - * currently supported in the AWS SDKs but not in the Amazon SageMaker Python SDK.

                      + * Components of the Hypertext Transfer Protocol (HTTP/1.1).

                      + *

                      The code in your model is responsible for setting or updating any custom attributes in + * the response. If your code does not set this value in the response, an empty value is + * returned. For example, if a custom attribute represents the trace ID, your model can + * prepend the custom attribute with Trace ID: in your post-processing + * function.

                      + * + *

                      This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python + * SDK.

                      */ CustomAttributes?: string; /** - *

                      The name of the endpoint that you specified when you created the endpoint using the - * CreateEndpoint API.

                      + *

                      The model to request for inference when invoking a multi-model endpoint.

                      */ - EndpointName: string | undefined; + TargetModel?: string; /** - *

                      Specify the production variant to send the inference request to when - * invoking an endpoint that is running two or more variants. Note that this parameter - * overrides the default behavior for the endpoint, which is to distribute the invocation - * traffic based on the variant weights.

                      + *

                      Specify the production variant to send the inference request to when invoking an + * endpoint that is running two or more variants. Note that this parameter overrides the + * default behavior for the endpoint, which is to distribute the invocation traffic based + * on the variant weights.

                      + *

                      For information about how to use variant targeting to perform a/b testing, see Test models in + * production + *

                      */ TargetVariant?: string; /** - *

                      The desired MIME type of the inference in the response.

                      + *

                      If you provide a value, it is added to the captured data when you enable data capture + * on the endpoint. + * For information about data capture, see Capture Data.

                      */ - Accept?: string; + InferenceId?: string; } export namespace InvokeEndpointInput { @@ -76,11 +93,6 @@ export namespace InvokeEndpointInput { } export interface InvokeEndpointOutput { - /** - *

                      Identifies the production variant that was invoked.

                      - */ - InvokedProductionVariant?: string; - /** *

                      Includes the inference provided by the model.

                      *

                      For information about the format of the response body, see Common Data @@ -93,6 +105,11 @@ export interface InvokeEndpointOutput { */ ContentType?: string; + /** + *

                      Identifies the production variant that was invoked.

                      + */ + InvokedProductionVariant?: string; + /** *

                      Provides additional information in the response about the inference returned by a * model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is @@ -103,8 +120,13 @@ export interface InvokeEndpointOutput { * Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer * wants the custom attribute returned, the model must set the custom attribute to be * included on the way back.

                      - *

                      This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker - * Python SDK.

                      + *

                      The code in your model is responsible for setting or updating any custom attributes in + * the response. If your code does not set this value in the response, an empty value is + * returned. For example, if a custom attribute represents the trace ID, your model can + * prepend the custom attribute with Trace ID: in your post-processing + * function.

                      + *

                      This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python + * SDK.

                      */ CustomAttributes?: string; } @@ -124,10 +146,11 @@ export namespace InvokeEndpointOutput { export interface ModelError extends __SmithyException, $MetadataBearer { name: "ModelError"; $fault: "client"; + Message?: string; /** - *

                      The Amazon Resource Name (ARN) of the log stream.

                      + *

                      Original status code.

                      */ - LogStreamArn?: string; + OriginalStatusCode?: number; /** *

                      Original message.

                      @@ -135,11 +158,9 @@ export interface ModelError extends __SmithyException, $MetadataBearer { OriginalMessage?: string; /** - *

                      Original status code.

                      + *

                      The Amazon Resource Name (ARN) of the log stream.

                      */ - OriginalStatusCode?: number; - - Message?: string; + LogStreamArn?: string; } export namespace ModelError { diff --git a/clients/client-sagemaker-runtime/protocols/Aws_restJson1.ts b/clients/client-sagemaker-runtime/protocols/Aws_restJson1.ts index df2e9d221db35..f2dffb0127c52 100644 --- a/clients/client-sagemaker-runtime/protocols/Aws_restJson1.ts +++ b/clients/client-sagemaker-runtime/protocols/Aws_restJson1.ts @@ -19,12 +19,13 @@ export const serializeAws_restJson1InvokeEndpointCommand = async ( const headers: any = { "Content-Type": "application/octet-stream", ...(isSerializableHeaderValue(input.ContentType) && { "Content-Type": input.ContentType! }), - ...(isSerializableHeaderValue(input.TargetModel) && { "X-Amzn-SageMaker-Target-Model": input.TargetModel! }), + ...(isSerializableHeaderValue(input.Accept) && { Accept: input.Accept! }), ...(isSerializableHeaderValue(input.CustomAttributes) && { "X-Amzn-SageMaker-Custom-Attributes": input.CustomAttributes!, }), + ...(isSerializableHeaderValue(input.TargetModel) && { "X-Amzn-SageMaker-Target-Model": input.TargetModel! }), ...(isSerializableHeaderValue(input.TargetVariant) && { "X-Amzn-SageMaker-Target-Variant": input.TargetVariant! }), - ...(isSerializableHeaderValue(input.Accept) && { Accept: input.Accept! }), + ...(isSerializableHeaderValue(input.InferenceId) && { "X-Amzn-SageMaker-Inference-Id": input.InferenceId! }), }; let resolvedPath = "/endpoints/{EndpointName}/invocations"; if (input.EndpointName !== undefined) { @@ -66,12 +67,12 @@ export const deserializeAws_restJson1InvokeEndpointCommand = async ( CustomAttributes: undefined, InvokedProductionVariant: undefined, }; - if (output.headers["x-amzn-invoked-production-variant"] !== undefined) { - contents.InvokedProductionVariant = output.headers["x-amzn-invoked-production-variant"]; - } if (output.headers["content-type"] !== undefined) { contents.ContentType = output.headers["content-type"]; } + if (output.headers["x-amzn-invoked-production-variant"] !== undefined) { + contents.InvokedProductionVariant = output.headers["x-amzn-invoked-production-variant"]; + } if (output.headers["x-amzn-sagemaker-custom-attributes"] !== undefined) { contents.CustomAttributes = output.headers["x-amzn-sagemaker-custom-attributes"]; } diff --git a/clients/client-sagemaker/SageMaker.ts b/clients/client-sagemaker/SageMaker.ts index 5c81735ed45c5..c4b52f6972044 100644 --- a/clients/client-sagemaker/SageMaker.ts +++ b/clients/client-sagemaker/SageMaker.ts @@ -51,11 +51,26 @@ import { CreateContextCommandInput, CreateContextCommandOutput, } from "./commands/CreateContextCommand"; +import { + CreateDataQualityJobDefinitionCommand, + CreateDataQualityJobDefinitionCommandInput, + CreateDataQualityJobDefinitionCommandOutput, +} from "./commands/CreateDataQualityJobDefinitionCommand"; +import { + CreateDeviceFleetCommand, + CreateDeviceFleetCommandInput, + CreateDeviceFleetCommandOutput, +} from "./commands/CreateDeviceFleetCommand"; import { CreateDomainCommand, CreateDomainCommandInput, CreateDomainCommandOutput, } from "./commands/CreateDomainCommand"; +import { + CreateEdgePackagingJobCommand, + CreateEdgePackagingJobCommandInput, + CreateEdgePackagingJobCommandOutput, +} from "./commands/CreateEdgePackagingJobCommand"; import { CreateEndpointCommand, CreateEndpointCommandInput, @@ -102,7 +117,17 @@ import { CreateLabelingJobCommandInput, CreateLabelingJobCommandOutput, } from "./commands/CreateLabelingJobCommand"; +import { + CreateModelBiasJobDefinitionCommand, + CreateModelBiasJobDefinitionCommandInput, + CreateModelBiasJobDefinitionCommandOutput, +} from "./commands/CreateModelBiasJobDefinitionCommand"; import { CreateModelCommand, CreateModelCommandInput, CreateModelCommandOutput } from "./commands/CreateModelCommand"; +import { + CreateModelExplainabilityJobDefinitionCommand, + CreateModelExplainabilityJobDefinitionCommandInput, + CreateModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/CreateModelExplainabilityJobDefinitionCommand"; import { CreateModelPackageCommand, CreateModelPackageCommandInput, @@ -113,6 +138,11 @@ import { CreateModelPackageGroupCommandInput, CreateModelPackageGroupCommandOutput, } from "./commands/CreateModelPackageGroupCommand"; +import { + CreateModelQualityJobDefinitionCommand, + CreateModelQualityJobDefinitionCommandInput, + CreateModelQualityJobDefinitionCommandOutput, +} from "./commands/CreateModelQualityJobDefinitionCommand"; import { CreateMonitoringScheduleCommand, CreateMonitoringScheduleCommandInput, @@ -220,6 +250,16 @@ import { DeleteContextCommandInput, DeleteContextCommandOutput, } from "./commands/DeleteContextCommand"; +import { + DeleteDataQualityJobDefinitionCommand, + DeleteDataQualityJobDefinitionCommandInput, + DeleteDataQualityJobDefinitionCommandOutput, +} from "./commands/DeleteDataQualityJobDefinitionCommand"; +import { + DeleteDeviceFleetCommand, + DeleteDeviceFleetCommandInput, + DeleteDeviceFleetCommandOutput, +} from "./commands/DeleteDeviceFleetCommand"; import { DeleteDomainCommand, DeleteDomainCommandInput, @@ -261,7 +301,17 @@ import { DeleteImageVersionCommandInput, DeleteImageVersionCommandOutput, } from "./commands/DeleteImageVersionCommand"; +import { + DeleteModelBiasJobDefinitionCommand, + DeleteModelBiasJobDefinitionCommandInput, + DeleteModelBiasJobDefinitionCommandOutput, +} from "./commands/DeleteModelBiasJobDefinitionCommand"; import { DeleteModelCommand, DeleteModelCommandInput, DeleteModelCommandOutput } from "./commands/DeleteModelCommand"; +import { + DeleteModelExplainabilityJobDefinitionCommand, + DeleteModelExplainabilityJobDefinitionCommandInput, + DeleteModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/DeleteModelExplainabilityJobDefinitionCommand"; import { DeleteModelPackageCommand, DeleteModelPackageCommandInput, @@ -277,6 +327,11 @@ import { DeleteModelPackageGroupPolicyCommandInput, DeleteModelPackageGroupPolicyCommandOutput, } from "./commands/DeleteModelPackageGroupPolicyCommand"; +import { + DeleteModelQualityJobDefinitionCommand, + DeleteModelQualityJobDefinitionCommandInput, + DeleteModelQualityJobDefinitionCommandOutput, +} from "./commands/DeleteModelQualityJobDefinitionCommand"; import { DeleteMonitoringScheduleCommand, DeleteMonitoringScheduleCommandInput, @@ -324,6 +379,11 @@ import { DeleteWorkteamCommandInput, DeleteWorkteamCommandOutput, } from "./commands/DeleteWorkteamCommand"; +import { + DeregisterDevicesCommand, + DeregisterDevicesCommandInput, + DeregisterDevicesCommandOutput, +} from "./commands/DeregisterDevicesCommand"; import { DescribeActionCommand, DescribeActionCommandInput, @@ -365,11 +425,31 @@ import { DescribeContextCommandInput, DescribeContextCommandOutput, } from "./commands/DescribeContextCommand"; +import { + DescribeDataQualityJobDefinitionCommand, + DescribeDataQualityJobDefinitionCommandInput, + DescribeDataQualityJobDefinitionCommandOutput, +} from "./commands/DescribeDataQualityJobDefinitionCommand"; +import { + DescribeDeviceCommand, + DescribeDeviceCommandInput, + DescribeDeviceCommandOutput, +} from "./commands/DescribeDeviceCommand"; +import { + DescribeDeviceFleetCommand, + DescribeDeviceFleetCommandInput, + DescribeDeviceFleetCommandOutput, +} from "./commands/DescribeDeviceFleetCommand"; import { DescribeDomainCommand, DescribeDomainCommandInput, DescribeDomainCommandOutput, } from "./commands/DescribeDomainCommand"; +import { + DescribeEdgePackagingJobCommand, + DescribeEdgePackagingJobCommandInput, + DescribeEdgePackagingJobCommandOutput, +} from "./commands/DescribeEdgePackagingJobCommand"; import { DescribeEndpointCommand, DescribeEndpointCommandInput, @@ -420,11 +500,21 @@ import { DescribeLabelingJobCommandInput, DescribeLabelingJobCommandOutput, } from "./commands/DescribeLabelingJobCommand"; +import { + DescribeModelBiasJobDefinitionCommand, + DescribeModelBiasJobDefinitionCommandInput, + DescribeModelBiasJobDefinitionCommandOutput, +} from "./commands/DescribeModelBiasJobDefinitionCommand"; import { DescribeModelCommand, DescribeModelCommandInput, DescribeModelCommandOutput, } from "./commands/DescribeModelCommand"; +import { + DescribeModelExplainabilityJobDefinitionCommand, + DescribeModelExplainabilityJobDefinitionCommandInput, + DescribeModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/DescribeModelExplainabilityJobDefinitionCommand"; import { DescribeModelPackageCommand, DescribeModelPackageCommandInput, @@ -435,6 +525,11 @@ import { DescribeModelPackageGroupCommandInput, DescribeModelPackageGroupCommandOutput, } from "./commands/DescribeModelPackageGroupCommand"; +import { + DescribeModelQualityJobDefinitionCommand, + DescribeModelQualityJobDefinitionCommandInput, + DescribeModelQualityJobDefinitionCommandOutput, +} from "./commands/DescribeModelQualityJobDefinitionCommand"; import { DescribeMonitoringScheduleCommand, DescribeMonitoringScheduleCommandInput, @@ -530,6 +625,11 @@ import { EnableSagemakerServicecatalogPortfolioCommandInput, EnableSagemakerServicecatalogPortfolioCommandOutput, } from "./commands/EnableSagemakerServicecatalogPortfolioCommand"; +import { + GetDeviceFleetReportCommand, + GetDeviceFleetReportCommandInput, + GetDeviceFleetReportCommandOutput, +} from "./commands/GetDeviceFleetReportCommand"; import { GetModelPackageGroupPolicyCommand, GetModelPackageGroupPolicyCommandInput, @@ -592,7 +692,23 @@ import { ListContextsCommandInput, ListContextsCommandOutput, } from "./commands/ListContextsCommand"; +import { + ListDataQualityJobDefinitionsCommand, + ListDataQualityJobDefinitionsCommandInput, + ListDataQualityJobDefinitionsCommandOutput, +} from "./commands/ListDataQualityJobDefinitionsCommand"; +import { + ListDeviceFleetsCommand, + ListDeviceFleetsCommandInput, + ListDeviceFleetsCommandOutput, +} from "./commands/ListDeviceFleetsCommand"; +import { ListDevicesCommand, ListDevicesCommandInput, ListDevicesCommandOutput } from "./commands/ListDevicesCommand"; import { ListDomainsCommand, ListDomainsCommandInput, ListDomainsCommandOutput } from "./commands/ListDomainsCommand"; +import { + ListEdgePackagingJobsCommand, + ListEdgePackagingJobsCommandInput, + ListEdgePackagingJobsCommandOutput, +} from "./commands/ListEdgePackagingJobsCommand"; import { ListEndpointConfigsCommand, ListEndpointConfigsCommandInput, @@ -644,6 +760,16 @@ import { ListLabelingJobsForWorkteamCommandInput, ListLabelingJobsForWorkteamCommandOutput, } from "./commands/ListLabelingJobsForWorkteamCommand"; +import { + ListModelBiasJobDefinitionsCommand, + ListModelBiasJobDefinitionsCommandInput, + ListModelBiasJobDefinitionsCommandOutput, +} from "./commands/ListModelBiasJobDefinitionsCommand"; +import { + ListModelExplainabilityJobDefinitionsCommand, + ListModelExplainabilityJobDefinitionsCommandInput, + ListModelExplainabilityJobDefinitionsCommandOutput, +} from "./commands/ListModelExplainabilityJobDefinitionsCommand"; import { ListModelPackageGroupsCommand, ListModelPackageGroupsCommandInput, @@ -654,6 +780,11 @@ import { ListModelPackagesCommandInput, ListModelPackagesCommandOutput, } from "./commands/ListModelPackagesCommand"; +import { + ListModelQualityJobDefinitionsCommand, + ListModelQualityJobDefinitionsCommandInput, + ListModelQualityJobDefinitionsCommandOutput, +} from "./commands/ListModelQualityJobDefinitionsCommand"; import { ListModelsCommand, ListModelsCommandInput, ListModelsCommandOutput } from "./commands/ListModelsCommand"; import { ListMonitoringExecutionsCommand, @@ -752,6 +883,11 @@ import { PutModelPackageGroupPolicyCommandInput, PutModelPackageGroupPolicyCommandOutput, } from "./commands/PutModelPackageGroupPolicyCommand"; +import { + RegisterDevicesCommand, + RegisterDevicesCommandInput, + RegisterDevicesCommandOutput, +} from "./commands/RegisterDevicesCommand"; import { RenderUiTemplateCommand, RenderUiTemplateCommandInput, @@ -783,6 +919,11 @@ import { StopCompilationJobCommandInput, StopCompilationJobCommandOutput, } from "./commands/StopCompilationJobCommand"; +import { + StopEdgePackagingJobCommand, + StopEdgePackagingJobCommandInput, + StopEdgePackagingJobCommandOutput, +} from "./commands/StopEdgePackagingJobCommand"; import { StopHyperParameterTuningJobCommand, StopHyperParameterTuningJobCommandInput, @@ -848,6 +989,16 @@ import { UpdateContextCommandInput, UpdateContextCommandOutput, } from "./commands/UpdateContextCommand"; +import { + UpdateDeviceFleetCommand, + UpdateDeviceFleetCommandInput, + UpdateDeviceFleetCommandOutput, +} from "./commands/UpdateDeviceFleetCommand"; +import { + UpdateDevicesCommand, + UpdateDevicesCommandInput, + UpdateDevicesCommandOutput, +} from "./commands/UpdateDevicesCommand"; import { UpdateDomainCommand, UpdateDomainCommandInput, @@ -899,6 +1050,11 @@ import { UpdatePipelineExecutionCommandInput, UpdatePipelineExecutionCommandOutput, } from "./commands/UpdatePipelineExecutionCommand"; +import { + UpdateTrainingJobCommand, + UpdateTrainingJobCommandInput, + UpdateTrainingJobCommandOutput, +} from "./commands/UpdateTrainingJobCommand"; import { UpdateTrialCommand, UpdateTrialCommandInput, UpdateTrialCommandOutput } from "./commands/UpdateTrialCommand"; import { UpdateTrialComponentCommand, @@ -1393,6 +1549,71 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Creates a definition for a job that monitors data quality and drift. For information + * about model monitor, see Amazon SageMaker Model Monitor.

                      + */ + public createDataQualityJobDefinition( + args: CreateDataQualityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createDataQualityJobDefinition( + args: CreateDataQualityJobDefinitionCommandInput, + cb: (err: any, data?: CreateDataQualityJobDefinitionCommandOutput) => void + ): void; + public createDataQualityJobDefinition( + args: CreateDataQualityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateDataQualityJobDefinitionCommandOutput) => void + ): void; + public createDataQualityJobDefinition( + args: CreateDataQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateDataQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: CreateDataQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new CreateDataQualityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Creates a device fleet.

                      + */ + public createDeviceFleet( + args: CreateDeviceFleetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createDeviceFleet( + args: CreateDeviceFleetCommandInput, + cb: (err: any, data?: CreateDeviceFleetCommandOutput) => void + ): void; + public createDeviceFleet( + args: CreateDeviceFleetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateDeviceFleetCommandOutput) => void + ): void; + public createDeviceFleet( + args: CreateDeviceFleetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateDeviceFleetCommandOutput) => void), + cb?: (err: any, data?: CreateDeviceFleetCommandOutput) => void + ): Promise | void { + const command = new CreateDeviceFleetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated * Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, @@ -1464,6 +1685,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Starts a SageMaker Edge Manager model packaging job. Edge Manager will use the model artifacts from the Amazon Simple Storage Service bucket that you specify. After the model has been packaged, Amazon SageMaker saves the resulting artifacts to an S3 bucket that you specify.

                      + */ + public createEdgePackagingJob( + args: CreateEdgePackagingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createEdgePackagingJob( + args: CreateEdgePackagingJobCommandInput, + cb: (err: any, data?: CreateEdgePackagingJobCommandOutput) => void + ): void; + public createEdgePackagingJob( + args: CreateEdgePackagingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateEdgePackagingJobCommandOutput) => void + ): void; + public createEdgePackagingJob( + args: CreateEdgePackagingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateEdgePackagingJobCommandOutput) => void), + cb?: (err: any, data?: CreateEdgePackagingJobCommandOutput) => void + ): Promise | void { + const command = new CreateEdgePackagingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker * uses the endpoint to provision resources and deploy models. You create the endpoint @@ -2001,6 +2254,72 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Creates the definition for a model bias job.

                      + */ + public createModelBiasJobDefinition( + args: CreateModelBiasJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createModelBiasJobDefinition( + args: CreateModelBiasJobDefinitionCommandInput, + cb: (err: any, data?: CreateModelBiasJobDefinitionCommandOutput) => void + ): void; + public createModelBiasJobDefinition( + args: CreateModelBiasJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateModelBiasJobDefinitionCommandOutput) => void + ): void; + public createModelBiasJobDefinition( + args: CreateModelBiasJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateModelBiasJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: CreateModelBiasJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new CreateModelBiasJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Creates the definition for a model explainability job.

                      + */ + public createModelExplainabilityJobDefinition( + args: CreateModelExplainabilityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createModelExplainabilityJobDefinition( + args: CreateModelExplainabilityJobDefinitionCommandInput, + cb: (err: any, data?: CreateModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public createModelExplainabilityJobDefinition( + args: CreateModelExplainabilityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public createModelExplainabilityJobDefinition( + args: CreateModelExplainabilityJobDefinitionCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: CreateModelExplainabilityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: CreateModelExplainabilityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new CreateModelExplainabilityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Creates a model package that you can use to create Amazon SageMaker models or list on AWS * Marketplace, or a versioned model that is part of a model group. Buyers can subscribe to model packages listed on AWS Marketplace to create @@ -2083,6 +2402,39 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Creates a definition for a job that monitors model quality and drift. For information + * about model monitor, see Amazon SageMaker Model Monitor.

                      + */ + public createModelQualityJobDefinition( + args: CreateModelQualityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createModelQualityJobDefinition( + args: CreateModelQualityJobDefinitionCommandInput, + cb: (err: any, data?: CreateModelQualityJobDefinitionCommandOutput) => void + ): void; + public createModelQualityJobDefinition( + args: CreateModelQualityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateModelQualityJobDefinitionCommandOutput) => void + ): void; + public createModelQualityJobDefinition( + args: CreateModelQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateModelQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: CreateModelQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new CreateModelQualityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Creates a schedule that regularly starts Amazon SageMaker Processing Jobs to monitor the data * captured for an Amazon SageMaker Endoint.

                      @@ -3037,6 +3389,70 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Deletes a data quality monitoring job definition.

                      + */ + public deleteDataQualityJobDefinition( + args: DeleteDataQualityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteDataQualityJobDefinition( + args: DeleteDataQualityJobDefinitionCommandInput, + cb: (err: any, data?: DeleteDataQualityJobDefinitionCommandOutput) => void + ): void; + public deleteDataQualityJobDefinition( + args: DeleteDataQualityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteDataQualityJobDefinitionCommandOutput) => void + ): void; + public deleteDataQualityJobDefinition( + args: DeleteDataQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteDataQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DeleteDataQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DeleteDataQualityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Deletes a fleet.

                      + */ + public deleteDeviceFleet( + args: DeleteDeviceFleetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteDeviceFleet( + args: DeleteDeviceFleetCommandInput, + cb: (err: any, data?: DeleteDeviceFleetCommandOutput) => void + ): void; + public deleteDeviceFleet( + args: DeleteDeviceFleetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteDeviceFleetCommandOutput) => void + ): void; + public deleteDeviceFleet( + args: DeleteDeviceFleetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteDeviceFleetCommandOutput) => void), + cb?: (err: any, data?: DeleteDeviceFleetCommandOutput) => void + ): Promise | void { + const command = new DeleteDeviceFleetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Used to delete a domain. * If you onboarded with IAM mode, you will need to delete your domain to onboard again using SSO. @@ -3373,6 +3789,72 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Deletes an Amazon SageMaker model bias job definition.

                      + */ + public deleteModelBiasJobDefinition( + args: DeleteModelBiasJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteModelBiasJobDefinition( + args: DeleteModelBiasJobDefinitionCommandInput, + cb: (err: any, data?: DeleteModelBiasJobDefinitionCommandOutput) => void + ): void; + public deleteModelBiasJobDefinition( + args: DeleteModelBiasJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteModelBiasJobDefinitionCommandOutput) => void + ): void; + public deleteModelBiasJobDefinition( + args: DeleteModelBiasJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteModelBiasJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DeleteModelBiasJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DeleteModelBiasJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Deletes an Amazon SageMaker model explainability job definition.

                      + */ + public deleteModelExplainabilityJobDefinition( + args: DeleteModelExplainabilityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteModelExplainabilityJobDefinition( + args: DeleteModelExplainabilityJobDefinitionCommandInput, + cb: (err: any, data?: DeleteModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public deleteModelExplainabilityJobDefinition( + args: DeleteModelExplainabilityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public deleteModelExplainabilityJobDefinition( + args: DeleteModelExplainabilityJobDefinitionCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: DeleteModelExplainabilityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DeleteModelExplainabilityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DeleteModelExplainabilityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Deletes a model package.

                      *

                      A model package is used to create Amazon SageMaker models or list on AWS Marketplace. Buyers can @@ -3471,6 +3953,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Deletes the secified model quality monitoring job definition.

                      + */ + public deleteModelQualityJobDefinition( + args: DeleteModelQualityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteModelQualityJobDefinition( + args: DeleteModelQualityJobDefinitionCommandInput, + cb: (err: any, data?: DeleteModelQualityJobDefinitionCommandOutput) => void + ): void; + public deleteModelQualityJobDefinition( + args: DeleteModelQualityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteModelQualityJobDefinitionCommandOutput) => void + ): void; + public deleteModelQualityJobDefinition( + args: DeleteModelQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteModelQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DeleteModelQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DeleteModelQualityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Deletes a monitoring schedule. Also stops the schedule had not already been stopped. * This does not delete the job execution history of the monitoring schedule.

                      @@ -3577,7 +4091,7 @@ export class SageMaker extends SageMakerClient { } /** - *

                      Deletes a pipeline.

                      + *

                      Deletes a pipeline if there are no in-progress executions.

                      */ public deletePipeline( args: DeletePipelineCommandInput, @@ -3843,6 +4357,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Deregisters the specified devices. After you deregister a device, you will need to re-register the devices.

                      + */ + public deregisterDevices( + args: DeregisterDevicesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deregisterDevices( + args: DeregisterDevicesCommandInput, + cb: (err: any, data?: DeregisterDevicesCommandOutput) => void + ): void; + public deregisterDevices( + args: DeregisterDevicesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeregisterDevicesCommandOutput) => void + ): void; + public deregisterDevices( + args: DeregisterDevicesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeregisterDevicesCommandOutput) => void), + cb?: (err: any, data?: DeregisterDevicesCommandOutput) => void + ): Promise | void { + const command = new DeregisterDevicesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Describes an action.

                      */ @@ -4128,27 +4674,27 @@ export class SageMaker extends SageMakerClient { } /** - *

                      The description of the domain.

                      + *

                      Gets the details of a data quality monitoring job definition.

                      */ - public describeDomain( - args: DescribeDomainCommandInput, + public describeDataQualityJobDefinition( + args: DescribeDataQualityJobDefinitionCommandInput, options?: __HttpHandlerOptions - ): Promise; - public describeDomain( - args: DescribeDomainCommandInput, - cb: (err: any, data?: DescribeDomainCommandOutput) => void + ): Promise; + public describeDataQualityJobDefinition( + args: DescribeDataQualityJobDefinitionCommandInput, + cb: (err: any, data?: DescribeDataQualityJobDefinitionCommandOutput) => void ): void; - public describeDomain( - args: DescribeDomainCommandInput, + public describeDataQualityJobDefinition( + args: DescribeDataQualityJobDefinitionCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DescribeDomainCommandOutput) => void + cb: (err: any, data?: DescribeDataQualityJobDefinitionCommandOutput) => void ): void; - public describeDomain( - args: DescribeDomainCommandInput, - optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeDomainCommandOutput) => void), - cb?: (err: any, data?: DescribeDomainCommandOutput) => void - ): Promise | void { - const command = new DescribeDomainCommand(args); + public describeDataQualityJobDefinition( + args: DescribeDataQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeDataQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DescribeDataQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DescribeDataQualityJobDefinitionCommand(args); if (typeof optionsOrCb === "function") { this.send(command, optionsOrCb); } else if (typeof cb === "function") { @@ -4160,24 +4706,152 @@ export class SageMaker extends SageMakerClient { } /** - *

                      Returns the description of an endpoint.

                      + *

                      Describes the device.

                      */ - public describeEndpoint( - args: DescribeEndpointCommandInput, + public describeDevice( + args: DescribeDeviceCommandInput, options?: __HttpHandlerOptions - ): Promise; - public describeEndpoint( - args: DescribeEndpointCommandInput, - cb: (err: any, data?: DescribeEndpointCommandOutput) => void + ): Promise; + public describeDevice( + args: DescribeDeviceCommandInput, + cb: (err: any, data?: DescribeDeviceCommandOutput) => void ): void; - public describeEndpoint( - args: DescribeEndpointCommandInput, + public describeDevice( + args: DescribeDeviceCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DescribeEndpointCommandOutput) => void + cb: (err: any, data?: DescribeDeviceCommandOutput) => void ): void; - public describeEndpoint( - args: DescribeEndpointCommandInput, - optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeEndpointCommandOutput) => void), + public describeDevice( + args: DescribeDeviceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeDeviceCommandOutput) => void), + cb?: (err: any, data?: DescribeDeviceCommandOutput) => void + ): Promise | void { + const command = new DescribeDeviceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      A description of the fleet the device belongs to.

                      + */ + public describeDeviceFleet( + args: DescribeDeviceFleetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeDeviceFleet( + args: DescribeDeviceFleetCommandInput, + cb: (err: any, data?: DescribeDeviceFleetCommandOutput) => void + ): void; + public describeDeviceFleet( + args: DescribeDeviceFleetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeDeviceFleetCommandOutput) => void + ): void; + public describeDeviceFleet( + args: DescribeDeviceFleetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeDeviceFleetCommandOutput) => void), + cb?: (err: any, data?: DescribeDeviceFleetCommandOutput) => void + ): Promise | void { + const command = new DescribeDeviceFleetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      The description of the domain.

                      + */ + public describeDomain( + args: DescribeDomainCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeDomain( + args: DescribeDomainCommandInput, + cb: (err: any, data?: DescribeDomainCommandOutput) => void + ): void; + public describeDomain( + args: DescribeDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeDomainCommandOutput) => void + ): void; + public describeDomain( + args: DescribeDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeDomainCommandOutput) => void), + cb?: (err: any, data?: DescribeDomainCommandOutput) => void + ): Promise | void { + const command = new DescribeDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      A description of edge packaging jobs.

                      + */ + public describeEdgePackagingJob( + args: DescribeEdgePackagingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeEdgePackagingJob( + args: DescribeEdgePackagingJobCommandInput, + cb: (err: any, data?: DescribeEdgePackagingJobCommandOutput) => void + ): void; + public describeEdgePackagingJob( + args: DescribeEdgePackagingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeEdgePackagingJobCommandOutput) => void + ): void; + public describeEdgePackagingJob( + args: DescribeEdgePackagingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeEdgePackagingJobCommandOutput) => void), + cb?: (err: any, data?: DescribeEdgePackagingJobCommandOutput) => void + ): Promise | void { + const command = new DescribeEdgePackagingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Returns the description of an endpoint.

                      + */ + public describeEndpoint( + args: DescribeEndpointCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeEndpoint( + args: DescribeEndpointCommandInput, + cb: (err: any, data?: DescribeEndpointCommandOutput) => void + ): void; + public describeEndpoint( + args: DescribeEndpointCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeEndpointCommandOutput) => void + ): void; + public describeEndpoint( + args: DescribeEndpointCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeEndpointCommandOutput) => void), cb?: (err: any, data?: DescribeEndpointCommandOutput) => void ): Promise | void { const command = new DescribeEndpointCommand(args); @@ -4516,6 +5190,72 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Returns a description of a model bias job definition.

                      + */ + public describeModelBiasJobDefinition( + args: DescribeModelBiasJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeModelBiasJobDefinition( + args: DescribeModelBiasJobDefinitionCommandInput, + cb: (err: any, data?: DescribeModelBiasJobDefinitionCommandOutput) => void + ): void; + public describeModelBiasJobDefinition( + args: DescribeModelBiasJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeModelBiasJobDefinitionCommandOutput) => void + ): void; + public describeModelBiasJobDefinition( + args: DescribeModelBiasJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeModelBiasJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DescribeModelBiasJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DescribeModelBiasJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Returns a description of a model explainability job definition.

                      + */ + public describeModelExplainabilityJobDefinition( + args: DescribeModelExplainabilityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeModelExplainabilityJobDefinition( + args: DescribeModelExplainabilityJobDefinitionCommandInput, + cb: (err: any, data?: DescribeModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public describeModelExplainabilityJobDefinition( + args: DescribeModelExplainabilityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeModelExplainabilityJobDefinitionCommandOutput) => void + ): void; + public describeModelExplainabilityJobDefinition( + args: DescribeModelExplainabilityJobDefinitionCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: DescribeModelExplainabilityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DescribeModelExplainabilityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DescribeModelExplainabilityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Returns a description of the specified model package, which is used to create Amazon SageMaker * models or list them on AWS Marketplace.

                      @@ -4583,6 +5323,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Returns a description of a model quality job definition.

                      + */ + public describeModelQualityJobDefinition( + args: DescribeModelQualityJobDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeModelQualityJobDefinition( + args: DescribeModelQualityJobDefinitionCommandInput, + cb: (err: any, data?: DescribeModelQualityJobDefinitionCommandOutput) => void + ): void; + public describeModelQualityJobDefinition( + args: DescribeModelQualityJobDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeModelQualityJobDefinitionCommandOutput) => void + ): void; + public describeModelQualityJobDefinition( + args: DescribeModelQualityJobDefinitionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeModelQualityJobDefinitionCommandOutput) => void), + cb?: (err: any, data?: DescribeModelQualityJobDefinitionCommandOutput) => void + ): Promise | void { + const command = new DescribeModelQualityJobDefinitionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Describes the schedule for a monitoring job.

                      */ @@ -5216,6 +5988,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Describes a fleet.

                      + */ + public getDeviceFleetReport( + args: GetDeviceFleetReportCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getDeviceFleetReport( + args: GetDeviceFleetReportCommandInput, + cb: (err: any, data?: GetDeviceFleetReportCommandOutput) => void + ): void; + public getDeviceFleetReport( + args: GetDeviceFleetReportCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetDeviceFleetReportCommandOutput) => void + ): void; + public getDeviceFleetReport( + args: GetDeviceFleetReportCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetDeviceFleetReportCommandOutput) => void), + cb?: (err: any, data?: GetDeviceFleetReportCommandOutput) => void + ): Promise | void { + const command = new GetDeviceFleetReportCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Gets a resource policy that manages access for a model group. For information about * resource policies, see Identity-based @@ -5662,6 +6466,96 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Lists the data quality job definitions in your account.

                      + */ + public listDataQualityJobDefinitions( + args: ListDataQualityJobDefinitionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listDataQualityJobDefinitions( + args: ListDataQualityJobDefinitionsCommandInput, + cb: (err: any, data?: ListDataQualityJobDefinitionsCommandOutput) => void + ): void; + public listDataQualityJobDefinitions( + args: ListDataQualityJobDefinitionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDataQualityJobDefinitionsCommandOutput) => void + ): void; + public listDataQualityJobDefinitions( + args: ListDataQualityJobDefinitionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDataQualityJobDefinitionsCommandOutput) => void), + cb?: (err: any, data?: ListDataQualityJobDefinitionsCommandOutput) => void + ): Promise | void { + const command = new ListDataQualityJobDefinitionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Returns a list of devices in the fleet.

                      + */ + public listDeviceFleets( + args: ListDeviceFleetsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listDeviceFleets( + args: ListDeviceFleetsCommandInput, + cb: (err: any, data?: ListDeviceFleetsCommandOutput) => void + ): void; + public listDeviceFleets( + args: ListDeviceFleetsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDeviceFleetsCommandOutput) => void + ): void; + public listDeviceFleets( + args: ListDeviceFleetsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDeviceFleetsCommandOutput) => void), + cb?: (err: any, data?: ListDeviceFleetsCommandOutput) => void + ): Promise | void { + const command = new ListDeviceFleetsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      A list of devices.

                      + */ + public listDevices(args: ListDevicesCommandInput, options?: __HttpHandlerOptions): Promise; + public listDevices(args: ListDevicesCommandInput, cb: (err: any, data?: ListDevicesCommandOutput) => void): void; + public listDevices( + args: ListDevicesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDevicesCommandOutput) => void + ): void; + public listDevices( + args: ListDevicesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDevicesCommandOutput) => void), + cb?: (err: any, data?: ListDevicesCommandOutput) => void + ): Promise | void { + const command = new ListDevicesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Lists the domains.

                      */ @@ -5688,6 +6582,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Returns a list of edge packaging jobs.

                      + */ + public listEdgePackagingJobs( + args: ListEdgePackagingJobsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listEdgePackagingJobs( + args: ListEdgePackagingJobsCommandInput, + cb: (err: any, data?: ListEdgePackagingJobsCommandOutput) => void + ): void; + public listEdgePackagingJobs( + args: ListEdgePackagingJobsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListEdgePackagingJobsCommandOutput) => void + ): void; + public listEdgePackagingJobs( + args: ListEdgePackagingJobsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListEdgePackagingJobsCommandOutput) => void), + cb?: (err: any, data?: ListEdgePackagingJobsCommandOutput) => void + ): Promise | void { + const command = new ListEdgePackagingJobsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Lists endpoint configurations.

                      */ @@ -6040,6 +6966,72 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Lists model bias jobs definitions that satisfy various filters.

                      + */ + public listModelBiasJobDefinitions( + args: ListModelBiasJobDefinitionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listModelBiasJobDefinitions( + args: ListModelBiasJobDefinitionsCommandInput, + cb: (err: any, data?: ListModelBiasJobDefinitionsCommandOutput) => void + ): void; + public listModelBiasJobDefinitions( + args: ListModelBiasJobDefinitionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListModelBiasJobDefinitionsCommandOutput) => void + ): void; + public listModelBiasJobDefinitions( + args: ListModelBiasJobDefinitionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListModelBiasJobDefinitionsCommandOutput) => void), + cb?: (err: any, data?: ListModelBiasJobDefinitionsCommandOutput) => void + ): Promise | void { + const command = new ListModelBiasJobDefinitionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Lists model explainability job definitions that satisfy various filters.

                      + */ + public listModelExplainabilityJobDefinitions( + args: ListModelExplainabilityJobDefinitionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listModelExplainabilityJobDefinitions( + args: ListModelExplainabilityJobDefinitionsCommandInput, + cb: (err: any, data?: ListModelExplainabilityJobDefinitionsCommandOutput) => void + ): void; + public listModelExplainabilityJobDefinitions( + args: ListModelExplainabilityJobDefinitionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListModelExplainabilityJobDefinitionsCommandOutput) => void + ): void; + public listModelExplainabilityJobDefinitions( + args: ListModelExplainabilityJobDefinitionsCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: ListModelExplainabilityJobDefinitionsCommandOutput) => void), + cb?: (err: any, data?: ListModelExplainabilityJobDefinitionsCommandOutput) => void + ): Promise | void { + const command = new ListModelExplainabilityJobDefinitionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Gets a list of the model groups in your AWS account.

                      */ @@ -6104,6 +7096,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Gets a list of model quality monitoring job definitions in your account.

                      + */ + public listModelQualityJobDefinitions( + args: ListModelQualityJobDefinitionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listModelQualityJobDefinitions( + args: ListModelQualityJobDefinitionsCommandInput, + cb: (err: any, data?: ListModelQualityJobDefinitionsCommandOutput) => void + ): void; + public listModelQualityJobDefinitions( + args: ListModelQualityJobDefinitionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListModelQualityJobDefinitionsCommandOutput) => void + ): void; + public listModelQualityJobDefinitions( + args: ListModelQualityJobDefinitionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListModelQualityJobDefinitionsCommandOutput) => void), + cb?: (err: any, data?: ListModelQualityJobDefinitionsCommandOutput) => void + ): Promise | void { + const command = new ListModelQualityJobDefinitionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Lists models created with the CreateModel API.

                      */ @@ -6821,6 +7845,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Register devices.

                      + */ + public registerDevices( + args: RegisterDevicesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public registerDevices( + args: RegisterDevicesCommandInput, + cb: (err: any, data?: RegisterDevicesCommandOutput) => void + ): void; + public registerDevices( + args: RegisterDevicesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RegisterDevicesCommandOutput) => void + ): void; + public registerDevices( + args: RegisterDevicesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RegisterDevicesCommandOutput) => void), + cb?: (err: any, data?: RegisterDevicesCommandOutput) => void + ): Promise | void { + const command = new RegisterDevicesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Renders the UI template so that you can preview the worker's experience.

                      */ @@ -6886,7 +7942,8 @@ export class SageMaker extends SageMakerClient { /** *

                      Starts a previously stopped monitoring schedule.

                      * - *

                      New monitoring schedules are immediately started after creation.

                      + *

                      By default, when you successfully create a new schedule, the status of a monitoring + * schedule is scheduled.

                      *
                      */ public startMonitoringSchedule( @@ -7054,6 +8111,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Request to stop an edge packaging job.

                      + */ + public stopEdgePackagingJob( + args: StopEdgePackagingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public stopEdgePackagingJob( + args: StopEdgePackagingJobCommandInput, + cb: (err: any, data?: StopEdgePackagingJobCommandOutput) => void + ): void; + public stopEdgePackagingJob( + args: StopEdgePackagingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StopEdgePackagingJobCommandOutput) => void + ): void; + public stopEdgePackagingJob( + args: StopEdgePackagingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StopEdgePackagingJobCommandOutput) => void), + cb?: (err: any, data?: StopEdgePackagingJobCommandOutput) => void + ): Promise | void { + const command = new StopEdgePackagingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Stops a running hyperparameter tuning job and all running training jobs that the * tuning job launched.

                      @@ -7493,6 +8582,70 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Updates a fleet of devices.

                      + */ + public updateDeviceFleet( + args: UpdateDeviceFleetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateDeviceFleet( + args: UpdateDeviceFleetCommandInput, + cb: (err: any, data?: UpdateDeviceFleetCommandOutput) => void + ): void; + public updateDeviceFleet( + args: UpdateDeviceFleetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateDeviceFleetCommandOutput) => void + ): void; + public updateDeviceFleet( + args: UpdateDeviceFleetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateDeviceFleetCommandOutput) => void), + cb?: (err: any, data?: UpdateDeviceFleetCommandOutput) => void + ): Promise | void { + const command = new UpdateDeviceFleetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                      Updates one or more devices in a fleet.

                      + */ + public updateDevices( + args: UpdateDevicesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateDevices( + args: UpdateDevicesCommandInput, + cb: (err: any, data?: UpdateDevicesCommandOutput) => void + ): void; + public updateDevices( + args: UpdateDevicesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateDevicesCommandOutput) => void + ): void; + public updateDevices( + args: UpdateDevicesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateDevicesCommandOutput) => void), + cb?: (err: any, data?: UpdateDevicesCommandOutput) => void + ): Promise | void { + const command = new UpdateDevicesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Updates the default settings for new user profiles in the domain.

                      */ @@ -7862,6 +9015,38 @@ export class SageMaker extends SageMakerClient { } } + /** + *

                      Update a model training job to request a new Debugger profiling configuration.

                      + */ + public updateTrainingJob( + args: UpdateTrainingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateTrainingJob( + args: UpdateTrainingJobCommandInput, + cb: (err: any, data?: UpdateTrainingJobCommandOutput) => void + ): void; + public updateTrainingJob( + args: UpdateTrainingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateTrainingJobCommandOutput) => void + ): void; + public updateTrainingJob( + args: UpdateTrainingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateTrainingJobCommandOutput) => void), + cb?: (err: any, data?: UpdateTrainingJobCommandOutput) => void + ): Promise | void { + const command = new UpdateTrainingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Updates the display name of a trial.

                      */ diff --git a/clients/client-sagemaker/SageMakerClient.ts b/clients/client-sagemaker/SageMakerClient.ts index 0aa3f54199cb0..80d51d5a479b1 100644 --- a/clients/client-sagemaker/SageMakerClient.ts +++ b/clients/client-sagemaker/SageMakerClient.ts @@ -22,7 +22,16 @@ import { CreateCompilationJobCommandOutput, } from "./commands/CreateCompilationJobCommand"; import { CreateContextCommandInput, CreateContextCommandOutput } from "./commands/CreateContextCommand"; +import { + CreateDataQualityJobDefinitionCommandInput, + CreateDataQualityJobDefinitionCommandOutput, +} from "./commands/CreateDataQualityJobDefinitionCommand"; +import { CreateDeviceFleetCommandInput, CreateDeviceFleetCommandOutput } from "./commands/CreateDeviceFleetCommand"; import { CreateDomainCommandInput, CreateDomainCommandOutput } from "./commands/CreateDomainCommand"; +import { + CreateEdgePackagingJobCommandInput, + CreateEdgePackagingJobCommandOutput, +} from "./commands/CreateEdgePackagingJobCommand"; import { CreateEndpointCommandInput, CreateEndpointCommandOutput } from "./commands/CreateEndpointCommand"; import { CreateEndpointConfigCommandInput, @@ -42,12 +51,24 @@ import { import { CreateImageCommandInput, CreateImageCommandOutput } from "./commands/CreateImageCommand"; import { CreateImageVersionCommandInput, CreateImageVersionCommandOutput } from "./commands/CreateImageVersionCommand"; import { CreateLabelingJobCommandInput, CreateLabelingJobCommandOutput } from "./commands/CreateLabelingJobCommand"; +import { + CreateModelBiasJobDefinitionCommandInput, + CreateModelBiasJobDefinitionCommandOutput, +} from "./commands/CreateModelBiasJobDefinitionCommand"; import { CreateModelCommandInput, CreateModelCommandOutput } from "./commands/CreateModelCommand"; +import { + CreateModelExplainabilityJobDefinitionCommandInput, + CreateModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/CreateModelExplainabilityJobDefinitionCommand"; import { CreateModelPackageCommandInput, CreateModelPackageCommandOutput } from "./commands/CreateModelPackageCommand"; import { CreateModelPackageGroupCommandInput, CreateModelPackageGroupCommandOutput, } from "./commands/CreateModelPackageGroupCommand"; +import { + CreateModelQualityJobDefinitionCommandInput, + CreateModelQualityJobDefinitionCommandOutput, +} from "./commands/CreateModelQualityJobDefinitionCommand"; import { CreateMonitoringScheduleCommandInput, CreateMonitoringScheduleCommandOutput, @@ -98,6 +119,11 @@ import { DeleteCodeRepositoryCommandOutput, } from "./commands/DeleteCodeRepositoryCommand"; import { DeleteContextCommandInput, DeleteContextCommandOutput } from "./commands/DeleteContextCommand"; +import { + DeleteDataQualityJobDefinitionCommandInput, + DeleteDataQualityJobDefinitionCommandOutput, +} from "./commands/DeleteDataQualityJobDefinitionCommand"; +import { DeleteDeviceFleetCommandInput, DeleteDeviceFleetCommandOutput } from "./commands/DeleteDeviceFleetCommand"; import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "./commands/DeleteDomainCommand"; import { DeleteEndpointCommandInput, DeleteEndpointCommandOutput } from "./commands/DeleteEndpointCommand"; import { @@ -113,7 +139,15 @@ import { import { DeleteHumanTaskUiCommandInput, DeleteHumanTaskUiCommandOutput } from "./commands/DeleteHumanTaskUiCommand"; import { DeleteImageCommandInput, DeleteImageCommandOutput } from "./commands/DeleteImageCommand"; import { DeleteImageVersionCommandInput, DeleteImageVersionCommandOutput } from "./commands/DeleteImageVersionCommand"; +import { + DeleteModelBiasJobDefinitionCommandInput, + DeleteModelBiasJobDefinitionCommandOutput, +} from "./commands/DeleteModelBiasJobDefinitionCommand"; import { DeleteModelCommandInput, DeleteModelCommandOutput } from "./commands/DeleteModelCommand"; +import { + DeleteModelExplainabilityJobDefinitionCommandInput, + DeleteModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/DeleteModelExplainabilityJobDefinitionCommand"; import { DeleteModelPackageCommandInput, DeleteModelPackageCommandOutput } from "./commands/DeleteModelPackageCommand"; import { DeleteModelPackageGroupCommandInput, @@ -123,6 +157,10 @@ import { DeleteModelPackageGroupPolicyCommandInput, DeleteModelPackageGroupPolicyCommandOutput, } from "./commands/DeleteModelPackageGroupPolicyCommand"; +import { + DeleteModelQualityJobDefinitionCommandInput, + DeleteModelQualityJobDefinitionCommandOutput, +} from "./commands/DeleteModelQualityJobDefinitionCommand"; import { DeleteMonitoringScheduleCommandInput, DeleteMonitoringScheduleCommandOutput, @@ -146,6 +184,7 @@ import { import { DeleteUserProfileCommandInput, DeleteUserProfileCommandOutput } from "./commands/DeleteUserProfileCommand"; import { DeleteWorkforceCommandInput, DeleteWorkforceCommandOutput } from "./commands/DeleteWorkforceCommand"; import { DeleteWorkteamCommandInput, DeleteWorkteamCommandOutput } from "./commands/DeleteWorkteamCommand"; +import { DeregisterDevicesCommandInput, DeregisterDevicesCommandOutput } from "./commands/DeregisterDevicesCommand"; import { DescribeActionCommandInput, DescribeActionCommandOutput } from "./commands/DescribeActionCommand"; import { DescribeAlgorithmCommandInput, DescribeAlgorithmCommandOutput } from "./commands/DescribeAlgorithmCommand"; import { DescribeAppCommandInput, DescribeAppCommandOutput } from "./commands/DescribeAppCommand"; @@ -164,7 +203,20 @@ import { DescribeCompilationJobCommandOutput, } from "./commands/DescribeCompilationJobCommand"; import { DescribeContextCommandInput, DescribeContextCommandOutput } from "./commands/DescribeContextCommand"; +import { + DescribeDataQualityJobDefinitionCommandInput, + DescribeDataQualityJobDefinitionCommandOutput, +} from "./commands/DescribeDataQualityJobDefinitionCommand"; +import { DescribeDeviceCommandInput, DescribeDeviceCommandOutput } from "./commands/DescribeDeviceCommand"; +import { + DescribeDeviceFleetCommandInput, + DescribeDeviceFleetCommandOutput, +} from "./commands/DescribeDeviceFleetCommand"; import { DescribeDomainCommandInput, DescribeDomainCommandOutput } from "./commands/DescribeDomainCommand"; +import { + DescribeEdgePackagingJobCommandInput, + DescribeEdgePackagingJobCommandOutput, +} from "./commands/DescribeEdgePackagingJobCommand"; import { DescribeEndpointCommandInput, DescribeEndpointCommandOutput } from "./commands/DescribeEndpointCommand"; import { DescribeEndpointConfigCommandInput, @@ -196,7 +248,15 @@ import { DescribeLabelingJobCommandInput, DescribeLabelingJobCommandOutput, } from "./commands/DescribeLabelingJobCommand"; +import { + DescribeModelBiasJobDefinitionCommandInput, + DescribeModelBiasJobDefinitionCommandOutput, +} from "./commands/DescribeModelBiasJobDefinitionCommand"; import { DescribeModelCommandInput, DescribeModelCommandOutput } from "./commands/DescribeModelCommand"; +import { + DescribeModelExplainabilityJobDefinitionCommandInput, + DescribeModelExplainabilityJobDefinitionCommandOutput, +} from "./commands/DescribeModelExplainabilityJobDefinitionCommand"; import { DescribeModelPackageCommandInput, DescribeModelPackageCommandOutput, @@ -205,6 +265,10 @@ import { DescribeModelPackageGroupCommandInput, DescribeModelPackageGroupCommandOutput, } from "./commands/DescribeModelPackageGroupCommand"; +import { + DescribeModelQualityJobDefinitionCommandInput, + DescribeModelQualityJobDefinitionCommandOutput, +} from "./commands/DescribeModelQualityJobDefinitionCommand"; import { DescribeMonitoringScheduleCommandInput, DescribeMonitoringScheduleCommandOutput, @@ -266,6 +330,10 @@ import { EnableSagemakerServicecatalogPortfolioCommandInput, EnableSagemakerServicecatalogPortfolioCommandOutput, } from "./commands/EnableSagemakerServicecatalogPortfolioCommand"; +import { + GetDeviceFleetReportCommandInput, + GetDeviceFleetReportCommandOutput, +} from "./commands/GetDeviceFleetReportCommand"; import { GetModelPackageGroupPolicyCommandInput, GetModelPackageGroupPolicyCommandOutput, @@ -301,7 +369,17 @@ import { ListCompilationJobsCommandOutput, } from "./commands/ListCompilationJobsCommand"; import { ListContextsCommandInput, ListContextsCommandOutput } from "./commands/ListContextsCommand"; +import { + ListDataQualityJobDefinitionsCommandInput, + ListDataQualityJobDefinitionsCommandOutput, +} from "./commands/ListDataQualityJobDefinitionsCommand"; +import { ListDeviceFleetsCommandInput, ListDeviceFleetsCommandOutput } from "./commands/ListDeviceFleetsCommand"; +import { ListDevicesCommandInput, ListDevicesCommandOutput } from "./commands/ListDevicesCommand"; import { ListDomainsCommandInput, ListDomainsCommandOutput } from "./commands/ListDomainsCommand"; +import { + ListEdgePackagingJobsCommandInput, + ListEdgePackagingJobsCommandOutput, +} from "./commands/ListEdgePackagingJobsCommand"; import { ListEndpointConfigsCommandInput, ListEndpointConfigsCommandOutput, @@ -325,11 +403,23 @@ import { ListLabelingJobsForWorkteamCommandInput, ListLabelingJobsForWorkteamCommandOutput, } from "./commands/ListLabelingJobsForWorkteamCommand"; +import { + ListModelBiasJobDefinitionsCommandInput, + ListModelBiasJobDefinitionsCommandOutput, +} from "./commands/ListModelBiasJobDefinitionsCommand"; +import { + ListModelExplainabilityJobDefinitionsCommandInput, + ListModelExplainabilityJobDefinitionsCommandOutput, +} from "./commands/ListModelExplainabilityJobDefinitionsCommand"; import { ListModelPackageGroupsCommandInput, ListModelPackageGroupsCommandOutput, } from "./commands/ListModelPackageGroupsCommand"; import { ListModelPackagesCommandInput, ListModelPackagesCommandOutput } from "./commands/ListModelPackagesCommand"; +import { + ListModelQualityJobDefinitionsCommandInput, + ListModelQualityJobDefinitionsCommandOutput, +} from "./commands/ListModelQualityJobDefinitionsCommand"; import { ListModelsCommandInput, ListModelsCommandOutput } from "./commands/ListModelsCommand"; import { ListMonitoringExecutionsCommandInput, @@ -385,6 +475,7 @@ import { PutModelPackageGroupPolicyCommandInput, PutModelPackageGroupPolicyCommandOutput, } from "./commands/PutModelPackageGroupPolicyCommand"; +import { RegisterDevicesCommandInput, RegisterDevicesCommandOutput } from "./commands/RegisterDevicesCommand"; import { RenderUiTemplateCommandInput, RenderUiTemplateCommandOutput } from "./commands/RenderUiTemplateCommand"; import { SearchCommandInput, SearchCommandOutput } from "./commands/SearchCommand"; import { @@ -401,6 +492,10 @@ import { } from "./commands/StartPipelineExecutionCommand"; import { StopAutoMLJobCommandInput, StopAutoMLJobCommandOutput } from "./commands/StopAutoMLJobCommand"; import { StopCompilationJobCommandInput, StopCompilationJobCommandOutput } from "./commands/StopCompilationJobCommand"; +import { + StopEdgePackagingJobCommandInput, + StopEdgePackagingJobCommandOutput, +} from "./commands/StopEdgePackagingJobCommand"; import { StopHyperParameterTuningJobCommandInput, StopHyperParameterTuningJobCommandOutput, @@ -432,6 +527,8 @@ import { UpdateCodeRepositoryCommandOutput, } from "./commands/UpdateCodeRepositoryCommand"; import { UpdateContextCommandInput, UpdateContextCommandOutput } from "./commands/UpdateContextCommand"; +import { UpdateDeviceFleetCommandInput, UpdateDeviceFleetCommandOutput } from "./commands/UpdateDeviceFleetCommand"; +import { UpdateDevicesCommandInput, UpdateDevicesCommandOutput } from "./commands/UpdateDevicesCommand"; import { UpdateDomainCommandInput, UpdateDomainCommandOutput } from "./commands/UpdateDomainCommand"; import { UpdateEndpointCommandInput, UpdateEndpointCommandOutput } from "./commands/UpdateEndpointCommand"; import { @@ -458,6 +555,7 @@ import { UpdatePipelineExecutionCommandInput, UpdatePipelineExecutionCommandOutput, } from "./commands/UpdatePipelineExecutionCommand"; +import { UpdateTrainingJobCommandInput, UpdateTrainingJobCommandOutput } from "./commands/UpdateTrainingJobCommand"; import { UpdateTrialCommandInput, UpdateTrialCommandOutput } from "./commands/UpdateTrialCommand"; import { UpdateTrialComponentCommandInput, @@ -528,7 +626,10 @@ export type ServiceInputTypes = | CreateCodeRepositoryCommandInput | CreateCompilationJobCommandInput | CreateContextCommandInput + | CreateDataQualityJobDefinitionCommandInput + | CreateDeviceFleetCommandInput | CreateDomainCommandInput + | CreateEdgePackagingJobCommandInput | CreateEndpointCommandInput | CreateEndpointConfigCommandInput | CreateExperimentCommandInput @@ -539,9 +640,12 @@ export type ServiceInputTypes = | CreateImageCommandInput | CreateImageVersionCommandInput | CreateLabelingJobCommandInput + | CreateModelBiasJobDefinitionCommandInput | CreateModelCommandInput + | CreateModelExplainabilityJobDefinitionCommandInput | CreateModelPackageCommandInput | CreateModelPackageGroupCommandInput + | CreateModelQualityJobDefinitionCommandInput | CreateMonitoringScheduleCommandInput | CreateNotebookInstanceCommandInput | CreateNotebookInstanceLifecycleConfigCommandInput @@ -565,6 +669,8 @@ export type ServiceInputTypes = | DeleteAssociationCommandInput | DeleteCodeRepositoryCommandInput | DeleteContextCommandInput + | DeleteDataQualityJobDefinitionCommandInput + | DeleteDeviceFleetCommandInput | DeleteDomainCommandInput | DeleteEndpointCommandInput | DeleteEndpointConfigCommandInput @@ -574,10 +680,13 @@ export type ServiceInputTypes = | DeleteHumanTaskUiCommandInput | DeleteImageCommandInput | DeleteImageVersionCommandInput + | DeleteModelBiasJobDefinitionCommandInput | DeleteModelCommandInput + | DeleteModelExplainabilityJobDefinitionCommandInput | DeleteModelPackageCommandInput | DeleteModelPackageGroupCommandInput | DeleteModelPackageGroupPolicyCommandInput + | DeleteModelQualityJobDefinitionCommandInput | DeleteMonitoringScheduleCommandInput | DeleteNotebookInstanceCommandInput | DeleteNotebookInstanceLifecycleConfigCommandInput @@ -589,6 +698,7 @@ export type ServiceInputTypes = | DeleteUserProfileCommandInput | DeleteWorkforceCommandInput | DeleteWorkteamCommandInput + | DeregisterDevicesCommandInput | DescribeActionCommandInput | DescribeAlgorithmCommandInput | DescribeAppCommandInput @@ -598,7 +708,11 @@ export type ServiceInputTypes = | DescribeCodeRepositoryCommandInput | DescribeCompilationJobCommandInput | DescribeContextCommandInput + | DescribeDataQualityJobDefinitionCommandInput + | DescribeDeviceCommandInput + | DescribeDeviceFleetCommandInput | DescribeDomainCommandInput + | DescribeEdgePackagingJobCommandInput | DescribeEndpointCommandInput | DescribeEndpointConfigCommandInput | DescribeExperimentCommandInput @@ -609,9 +723,12 @@ export type ServiceInputTypes = | DescribeImageCommandInput | DescribeImageVersionCommandInput | DescribeLabelingJobCommandInput + | DescribeModelBiasJobDefinitionCommandInput | DescribeModelCommandInput + | DescribeModelExplainabilityJobDefinitionCommandInput | DescribeModelPackageCommandInput | DescribeModelPackageGroupCommandInput + | DescribeModelQualityJobDefinitionCommandInput | DescribeMonitoringScheduleCommandInput | DescribeNotebookInstanceCommandInput | DescribeNotebookInstanceLifecycleConfigCommandInput @@ -631,6 +748,7 @@ export type ServiceInputTypes = | DisableSagemakerServicecatalogPortfolioCommandInput | DisassociateTrialComponentCommandInput | EnableSagemakerServicecatalogPortfolioCommandInput + | GetDeviceFleetReportCommandInput | GetModelPackageGroupPolicyCommandInput | GetSagemakerServicecatalogPortfolioStatusCommandInput | GetSearchSuggestionsCommandInput @@ -645,7 +763,11 @@ export type ServiceInputTypes = | ListCodeRepositoriesCommandInput | ListCompilationJobsCommandInput | ListContextsCommandInput + | ListDataQualityJobDefinitionsCommandInput + | ListDeviceFleetsCommandInput + | ListDevicesCommandInput | ListDomainsCommandInput + | ListEdgePackagingJobsCommandInput | ListEndpointConfigsCommandInput | ListEndpointsCommandInput | ListExperimentsCommandInput @@ -657,8 +779,11 @@ export type ServiceInputTypes = | ListImagesCommandInput | ListLabelingJobsCommandInput | ListLabelingJobsForWorkteamCommandInput + | ListModelBiasJobDefinitionsCommandInput + | ListModelExplainabilityJobDefinitionsCommandInput | ListModelPackageGroupsCommandInput | ListModelPackagesCommandInput + | ListModelQualityJobDefinitionsCommandInput | ListModelsCommandInput | ListMonitoringExecutionsCommandInput | ListMonitoringSchedulesCommandInput @@ -681,6 +806,7 @@ export type ServiceInputTypes = | ListWorkforcesCommandInput | ListWorkteamsCommandInput | PutModelPackageGroupPolicyCommandInput + | RegisterDevicesCommandInput | RenderUiTemplateCommandInput | SearchCommandInput | StartMonitoringScheduleCommandInput @@ -688,6 +814,7 @@ export type ServiceInputTypes = | StartPipelineExecutionCommandInput | StopAutoMLJobCommandInput | StopCompilationJobCommandInput + | StopEdgePackagingJobCommandInput | StopHyperParameterTuningJobCommandInput | StopLabelingJobCommandInput | StopMonitoringScheduleCommandInput @@ -701,6 +828,8 @@ export type ServiceInputTypes = | UpdateArtifactCommandInput | UpdateCodeRepositoryCommandInput | UpdateContextCommandInput + | UpdateDeviceFleetCommandInput + | UpdateDevicesCommandInput | UpdateDomainCommandInput | UpdateEndpointCommandInput | UpdateEndpointWeightsAndCapacitiesCommandInput @@ -712,6 +841,7 @@ export type ServiceInputTypes = | UpdateNotebookInstanceLifecycleConfigCommandInput | UpdatePipelineCommandInput | UpdatePipelineExecutionCommandInput + | UpdateTrainingJobCommandInput | UpdateTrialCommandInput | UpdateTrialComponentCommandInput | UpdateUserProfileCommandInput @@ -731,7 +861,10 @@ export type ServiceOutputTypes = | CreateCodeRepositoryCommandOutput | CreateCompilationJobCommandOutput | CreateContextCommandOutput + | CreateDataQualityJobDefinitionCommandOutput + | CreateDeviceFleetCommandOutput | CreateDomainCommandOutput + | CreateEdgePackagingJobCommandOutput | CreateEndpointCommandOutput | CreateEndpointConfigCommandOutput | CreateExperimentCommandOutput @@ -742,9 +875,12 @@ export type ServiceOutputTypes = | CreateImageCommandOutput | CreateImageVersionCommandOutput | CreateLabelingJobCommandOutput + | CreateModelBiasJobDefinitionCommandOutput | CreateModelCommandOutput + | CreateModelExplainabilityJobDefinitionCommandOutput | CreateModelPackageCommandOutput | CreateModelPackageGroupCommandOutput + | CreateModelQualityJobDefinitionCommandOutput | CreateMonitoringScheduleCommandOutput | CreateNotebookInstanceCommandOutput | CreateNotebookInstanceLifecycleConfigCommandOutput @@ -768,6 +904,8 @@ export type ServiceOutputTypes = | DeleteAssociationCommandOutput | DeleteCodeRepositoryCommandOutput | DeleteContextCommandOutput + | DeleteDataQualityJobDefinitionCommandOutput + | DeleteDeviceFleetCommandOutput | DeleteDomainCommandOutput | DeleteEndpointCommandOutput | DeleteEndpointConfigCommandOutput @@ -777,10 +915,13 @@ export type ServiceOutputTypes = | DeleteHumanTaskUiCommandOutput | DeleteImageCommandOutput | DeleteImageVersionCommandOutput + | DeleteModelBiasJobDefinitionCommandOutput | DeleteModelCommandOutput + | DeleteModelExplainabilityJobDefinitionCommandOutput | DeleteModelPackageCommandOutput | DeleteModelPackageGroupCommandOutput | DeleteModelPackageGroupPolicyCommandOutput + | DeleteModelQualityJobDefinitionCommandOutput | DeleteMonitoringScheduleCommandOutput | DeleteNotebookInstanceCommandOutput | DeleteNotebookInstanceLifecycleConfigCommandOutput @@ -792,6 +933,7 @@ export type ServiceOutputTypes = | DeleteUserProfileCommandOutput | DeleteWorkforceCommandOutput | DeleteWorkteamCommandOutput + | DeregisterDevicesCommandOutput | DescribeActionCommandOutput | DescribeAlgorithmCommandOutput | DescribeAppCommandOutput @@ -801,7 +943,11 @@ export type ServiceOutputTypes = | DescribeCodeRepositoryCommandOutput | DescribeCompilationJobCommandOutput | DescribeContextCommandOutput + | DescribeDataQualityJobDefinitionCommandOutput + | DescribeDeviceCommandOutput + | DescribeDeviceFleetCommandOutput | DescribeDomainCommandOutput + | DescribeEdgePackagingJobCommandOutput | DescribeEndpointCommandOutput | DescribeEndpointConfigCommandOutput | DescribeExperimentCommandOutput @@ -812,9 +958,12 @@ export type ServiceOutputTypes = | DescribeImageCommandOutput | DescribeImageVersionCommandOutput | DescribeLabelingJobCommandOutput + | DescribeModelBiasJobDefinitionCommandOutput | DescribeModelCommandOutput + | DescribeModelExplainabilityJobDefinitionCommandOutput | DescribeModelPackageCommandOutput | DescribeModelPackageGroupCommandOutput + | DescribeModelQualityJobDefinitionCommandOutput | DescribeMonitoringScheduleCommandOutput | DescribeNotebookInstanceCommandOutput | DescribeNotebookInstanceLifecycleConfigCommandOutput @@ -834,6 +983,7 @@ export type ServiceOutputTypes = | DisableSagemakerServicecatalogPortfolioCommandOutput | DisassociateTrialComponentCommandOutput | EnableSagemakerServicecatalogPortfolioCommandOutput + | GetDeviceFleetReportCommandOutput | GetModelPackageGroupPolicyCommandOutput | GetSagemakerServicecatalogPortfolioStatusCommandOutput | GetSearchSuggestionsCommandOutput @@ -848,7 +998,11 @@ export type ServiceOutputTypes = | ListCodeRepositoriesCommandOutput | ListCompilationJobsCommandOutput | ListContextsCommandOutput + | ListDataQualityJobDefinitionsCommandOutput + | ListDeviceFleetsCommandOutput + | ListDevicesCommandOutput | ListDomainsCommandOutput + | ListEdgePackagingJobsCommandOutput | ListEndpointConfigsCommandOutput | ListEndpointsCommandOutput | ListExperimentsCommandOutput @@ -860,8 +1014,11 @@ export type ServiceOutputTypes = | ListImagesCommandOutput | ListLabelingJobsCommandOutput | ListLabelingJobsForWorkteamCommandOutput + | ListModelBiasJobDefinitionsCommandOutput + | ListModelExplainabilityJobDefinitionsCommandOutput | ListModelPackageGroupsCommandOutput | ListModelPackagesCommandOutput + | ListModelQualityJobDefinitionsCommandOutput | ListModelsCommandOutput | ListMonitoringExecutionsCommandOutput | ListMonitoringSchedulesCommandOutput @@ -884,6 +1041,7 @@ export type ServiceOutputTypes = | ListWorkforcesCommandOutput | ListWorkteamsCommandOutput | PutModelPackageGroupPolicyCommandOutput + | RegisterDevicesCommandOutput | RenderUiTemplateCommandOutput | SearchCommandOutput | StartMonitoringScheduleCommandOutput @@ -891,6 +1049,7 @@ export type ServiceOutputTypes = | StartPipelineExecutionCommandOutput | StopAutoMLJobCommandOutput | StopCompilationJobCommandOutput + | StopEdgePackagingJobCommandOutput | StopHyperParameterTuningJobCommandOutput | StopLabelingJobCommandOutput | StopMonitoringScheduleCommandOutput @@ -904,6 +1063,8 @@ export type ServiceOutputTypes = | UpdateArtifactCommandOutput | UpdateCodeRepositoryCommandOutput | UpdateContextCommandOutput + | UpdateDeviceFleetCommandOutput + | UpdateDevicesCommandOutput | UpdateDomainCommandOutput | UpdateEndpointCommandOutput | UpdateEndpointWeightsAndCapacitiesCommandOutput @@ -915,6 +1076,7 @@ export type ServiceOutputTypes = | UpdateNotebookInstanceLifecycleConfigCommandOutput | UpdatePipelineCommandOutput | UpdatePipelineExecutionCommandOutput + | UpdateTrainingJobCommandOutput | UpdateTrialCommandOutput | UpdateTrialComponentCommandOutput | UpdateUserProfileCommandOutput diff --git a/clients/client-sagemaker/commands/CreateDataQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/CreateDataQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..52b4a15fad703 --- /dev/null +++ b/clients/client-sagemaker/commands/CreateDataQualityJobDefinitionCommand.ts @@ -0,0 +1,95 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { CreateDataQualityJobDefinitionRequest, CreateDataQualityJobDefinitionResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateDataQualityJobDefinitionCommand, + serializeAws_json1_1CreateDataQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateDataQualityJobDefinitionCommandInput = CreateDataQualityJobDefinitionRequest; +export type CreateDataQualityJobDefinitionCommandOutput = CreateDataQualityJobDefinitionResponse & __MetadataBearer; + +/** + *

                      Creates a definition for a job that monitors data quality and drift. For information + * about model monitor, see Amazon SageMaker Model Monitor.

                      + */ +export class CreateDataQualityJobDefinitionCommand extends $Command< + CreateDataQualityJobDefinitionCommandInput, + CreateDataQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateDataQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateDataQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateDataQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateDataQualityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CreateDataQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1CreateDataQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateDataQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateDeviceFleetCommand.ts b/clients/client-sagemaker/commands/CreateDeviceFleetCommand.ts new file mode 100644 index 0000000000000..c863a091f2f1b --- /dev/null +++ b/clients/client-sagemaker/commands/CreateDeviceFleetCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { CreateDeviceFleetRequest } from "../models/models_0"; +import { + deserializeAws_json1_1CreateDeviceFleetCommand, + serializeAws_json1_1CreateDeviceFleetCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateDeviceFleetCommandInput = CreateDeviceFleetRequest; +export type CreateDeviceFleetCommandOutput = __MetadataBearer; + +/** + *

                      Creates a device fleet.

                      + */ +export class CreateDeviceFleetCommand extends $Command< + CreateDeviceFleetCommandInput, + CreateDeviceFleetCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateDeviceFleetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateDeviceFleetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateDeviceFleetRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateDeviceFleetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateDeviceFleetCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateDeviceFleetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateEdgePackagingJobCommand.ts b/clients/client-sagemaker/commands/CreateEdgePackagingJobCommand.ts new file mode 100644 index 0000000000000..ab857ddf536ec --- /dev/null +++ b/clients/client-sagemaker/commands/CreateEdgePackagingJobCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { CreateEdgePackagingJobRequest } from "../models/models_0"; +import { + deserializeAws_json1_1CreateEdgePackagingJobCommand, + serializeAws_json1_1CreateEdgePackagingJobCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateEdgePackagingJobCommandInput = CreateEdgePackagingJobRequest; +export type CreateEdgePackagingJobCommandOutput = __MetadataBearer; + +/** + *

                      Starts a SageMaker Edge Manager model packaging job. Edge Manager will use the model artifacts from the Amazon Simple Storage Service bucket that you specify. After the model has been packaged, Amazon SageMaker saves the resulting artifacts to an S3 bucket that you specify.

                      + */ +export class CreateEdgePackagingJobCommand extends $Command< + CreateEdgePackagingJobCommandInput, + CreateEdgePackagingJobCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateEdgePackagingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateEdgePackagingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateEdgePackagingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateEdgePackagingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateEdgePackagingJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateEdgePackagingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateModelBiasJobDefinitionCommand.ts b/clients/client-sagemaker/commands/CreateModelBiasJobDefinitionCommand.ts new file mode 100644 index 0000000000000..602703bf3b0bf --- /dev/null +++ b/clients/client-sagemaker/commands/CreateModelBiasJobDefinitionCommand.ts @@ -0,0 +1,91 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { CreateModelBiasJobDefinitionRequest, CreateModelBiasJobDefinitionResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateModelBiasJobDefinitionCommand, + serializeAws_json1_1CreateModelBiasJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateModelBiasJobDefinitionCommandInput = CreateModelBiasJobDefinitionRequest; +export type CreateModelBiasJobDefinitionCommandOutput = CreateModelBiasJobDefinitionResponse & __MetadataBearer; + +/** + *

                      Creates the definition for a model bias job.

                      + */ +export class CreateModelBiasJobDefinitionCommand extends $Command< + CreateModelBiasJobDefinitionCommandInput, + CreateModelBiasJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateModelBiasJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateModelBiasJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateModelBiasJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateModelBiasJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateModelBiasJobDefinitionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateModelBiasJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateModelBiasJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateModelExplainabilityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/CreateModelExplainabilityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..fd1b9c957d41e --- /dev/null +++ b/clients/client-sagemaker/commands/CreateModelExplainabilityJobDefinitionCommand.ts @@ -0,0 +1,98 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { + CreateModelExplainabilityJobDefinitionRequest, + CreateModelExplainabilityJobDefinitionResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand, + serializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateModelExplainabilityJobDefinitionCommandInput = CreateModelExplainabilityJobDefinitionRequest; +export type CreateModelExplainabilityJobDefinitionCommandOutput = CreateModelExplainabilityJobDefinitionResponse & + __MetadataBearer; + +/** + *

                      Creates the definition for a model explainability job.

                      + */ +export class CreateModelExplainabilityJobDefinitionCommand extends $Command< + CreateModelExplainabilityJobDefinitionCommandInput, + CreateModelExplainabilityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateModelExplainabilityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateModelExplainabilityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateModelExplainabilityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateModelExplainabilityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CreateModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateModelQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/CreateModelQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..1e0af659447b8 --- /dev/null +++ b/clients/client-sagemaker/commands/CreateModelQualityJobDefinitionCommand.ts @@ -0,0 +1,95 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { CreateModelQualityJobDefinitionRequest, CreateModelQualityJobDefinitionResponse } from "../models/models_1"; +import { + deserializeAws_json1_1CreateModelQualityJobDefinitionCommand, + serializeAws_json1_1CreateModelQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateModelQualityJobDefinitionCommandInput = CreateModelQualityJobDefinitionRequest; +export type CreateModelQualityJobDefinitionCommandOutput = CreateModelQualityJobDefinitionResponse & __MetadataBearer; + +/** + *

                      Creates a definition for a job that monitors model quality and drift. For information + * about model monitor, see Amazon SageMaker Model Monitor.

                      + */ +export class CreateModelQualityJobDefinitionCommand extends $Command< + CreateModelQualityJobDefinitionCommandInput, + CreateModelQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateModelQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "CreateModelQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateModelQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateModelQualityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CreateModelQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1CreateModelQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1CreateModelQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/CreateMonitoringScheduleCommand.ts b/clients/client-sagemaker/commands/CreateMonitoringScheduleCommand.ts index de2ed9ef52178..e763a1cb9cbb7 100644 --- a/clients/client-sagemaker/commands/CreateMonitoringScheduleCommand.ts +++ b/clients/client-sagemaker/commands/CreateMonitoringScheduleCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { CreateMonitoringScheduleRequest, CreateMonitoringScheduleResponse } from "../models/models_0"; +import { CreateMonitoringScheduleRequest, CreateMonitoringScheduleResponse } from "../models/models_1"; import { deserializeAws_json1_1CreateMonitoringScheduleCommand, serializeAws_json1_1CreateMonitoringScheduleCommand, diff --git a/clients/client-sagemaker/commands/CreateNotebookInstanceCommand.ts b/clients/client-sagemaker/commands/CreateNotebookInstanceCommand.ts index e2bc6879494a3..225dd92db04c5 100644 --- a/clients/client-sagemaker/commands/CreateNotebookInstanceCommand.ts +++ b/clients/client-sagemaker/commands/CreateNotebookInstanceCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { CreateNotebookInstanceInput, CreateNotebookInstanceOutput } from "../models/models_0"; +import { CreateNotebookInstanceInput, CreateNotebookInstanceOutput } from "../models/models_1"; import { deserializeAws_json1_1CreateNotebookInstanceCommand, serializeAws_json1_1CreateNotebookInstanceCommand, diff --git a/clients/client-sagemaker/commands/CreateNotebookInstanceLifecycleConfigCommand.ts b/clients/client-sagemaker/commands/CreateNotebookInstanceLifecycleConfigCommand.ts index 8a7bb080b88d1..bb76acd9031cb 100644 --- a/clients/client-sagemaker/commands/CreateNotebookInstanceLifecycleConfigCommand.ts +++ b/clients/client-sagemaker/commands/CreateNotebookInstanceLifecycleConfigCommand.ts @@ -2,7 +2,7 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } import { CreateNotebookInstanceLifecycleConfigInput, CreateNotebookInstanceLifecycleConfigOutput, -} from "../models/models_0"; +} from "../models/models_1"; import { deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommand, serializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommand, diff --git a/clients/client-sagemaker/commands/CreatePipelineCommand.ts b/clients/client-sagemaker/commands/CreatePipelineCommand.ts index a8500687eb9e8..e5c2f27f6577c 100644 --- a/clients/client-sagemaker/commands/CreatePipelineCommand.ts +++ b/clients/client-sagemaker/commands/CreatePipelineCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { CreatePipelineRequest, CreatePipelineResponse } from "../models/models_0"; +import { CreatePipelineRequest, CreatePipelineResponse } from "../models/models_1"; import { deserializeAws_json1_1CreatePipelineCommand, serializeAws_json1_1CreatePipelineCommand, diff --git a/clients/client-sagemaker/commands/CreatePresignedDomainUrlCommand.ts b/clients/client-sagemaker/commands/CreatePresignedDomainUrlCommand.ts index f3af193307fe3..f7be71e5aef3a 100644 --- a/clients/client-sagemaker/commands/CreatePresignedDomainUrlCommand.ts +++ b/clients/client-sagemaker/commands/CreatePresignedDomainUrlCommand.ts @@ -1,6 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { CreatePresignedDomainUrlRequest } from "../models/models_0"; -import { CreatePresignedDomainUrlResponse } from "../models/models_1"; +import { CreatePresignedDomainUrlRequest, CreatePresignedDomainUrlResponse } from "../models/models_1"; import { deserializeAws_json1_1CreatePresignedDomainUrlCommand, serializeAws_json1_1CreatePresignedDomainUrlCommand, diff --git a/clients/client-sagemaker/commands/DeleteDataQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DeleteDataQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..5928c62c53ae8 --- /dev/null +++ b/clients/client-sagemaker/commands/DeleteDataQualityJobDefinitionCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeleteDataQualityJobDefinitionRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeleteDataQualityJobDefinitionCommand, + serializeAws_json1_1DeleteDataQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteDataQualityJobDefinitionCommandInput = DeleteDataQualityJobDefinitionRequest; +export type DeleteDataQualityJobDefinitionCommandOutput = __MetadataBearer; + +/** + *

                      Deletes a data quality monitoring job definition.

                      + */ +export class DeleteDataQualityJobDefinitionCommand extends $Command< + DeleteDataQualityJobDefinitionCommandInput, + DeleteDataQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteDataQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeleteDataQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteDataQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteDataQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteDataQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteDataQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DeleteDeviceFleetCommand.ts b/clients/client-sagemaker/commands/DeleteDeviceFleetCommand.ts new file mode 100644 index 0000000000000..b78cb651e24eb --- /dev/null +++ b/clients/client-sagemaker/commands/DeleteDeviceFleetCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeleteDeviceFleetRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeleteDeviceFleetCommand, + serializeAws_json1_1DeleteDeviceFleetCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteDeviceFleetCommandInput = DeleteDeviceFleetRequest; +export type DeleteDeviceFleetCommandOutput = __MetadataBearer; + +/** + *

                      Deletes a fleet.

                      + */ +export class DeleteDeviceFleetCommand extends $Command< + DeleteDeviceFleetCommandInput, + DeleteDeviceFleetCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteDeviceFleetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeleteDeviceFleetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteDeviceFleetRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteDeviceFleetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteDeviceFleetCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteDeviceFleetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DeleteModelBiasJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DeleteModelBiasJobDefinitionCommand.ts new file mode 100644 index 0000000000000..a3ef1b56fe2e0 --- /dev/null +++ b/clients/client-sagemaker/commands/DeleteModelBiasJobDefinitionCommand.ts @@ -0,0 +1,91 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeleteModelBiasJobDefinitionRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeleteModelBiasJobDefinitionCommand, + serializeAws_json1_1DeleteModelBiasJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteModelBiasJobDefinitionCommandInput = DeleteModelBiasJobDefinitionRequest; +export type DeleteModelBiasJobDefinitionCommandOutput = __MetadataBearer; + +/** + *

                      Deletes an Amazon SageMaker model bias job definition.

                      + */ +export class DeleteModelBiasJobDefinitionCommand extends $Command< + DeleteModelBiasJobDefinitionCommandInput, + DeleteModelBiasJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteModelBiasJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeleteModelBiasJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteModelBiasJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteModelBiasJobDefinitionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteModelBiasJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteModelBiasJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DeleteModelExplainabilityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DeleteModelExplainabilityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..0a622a8c0c89b --- /dev/null +++ b/clients/client-sagemaker/commands/DeleteModelExplainabilityJobDefinitionCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeleteModelExplainabilityJobDefinitionRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand, + serializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteModelExplainabilityJobDefinitionCommandInput = DeleteModelExplainabilityJobDefinitionRequest; +export type DeleteModelExplainabilityJobDefinitionCommandOutput = __MetadataBearer; + +/** + *

                      Deletes an Amazon SageMaker model explainability job definition.

                      + */ +export class DeleteModelExplainabilityJobDefinitionCommand extends $Command< + DeleteModelExplainabilityJobDefinitionCommandInput, + DeleteModelExplainabilityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteModelExplainabilityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeleteModelExplainabilityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteModelExplainabilityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DeleteModelQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DeleteModelQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..55d7448eab409 --- /dev/null +++ b/clients/client-sagemaker/commands/DeleteModelQualityJobDefinitionCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeleteModelQualityJobDefinitionRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeleteModelQualityJobDefinitionCommand, + serializeAws_json1_1DeleteModelQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteModelQualityJobDefinitionCommandInput = DeleteModelQualityJobDefinitionRequest; +export type DeleteModelQualityJobDefinitionCommandOutput = __MetadataBearer; + +/** + *

                      Deletes the secified model quality monitoring job definition.

                      + */ +export class DeleteModelQualityJobDefinitionCommand extends $Command< + DeleteModelQualityJobDefinitionCommandInput, + DeleteModelQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteModelQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeleteModelQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteModelQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteModelQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteModelQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteModelQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DeletePipelineCommand.ts b/clients/client-sagemaker/commands/DeletePipelineCommand.ts index 40142286ba2df..8a1996f3c4380 100644 --- a/clients/client-sagemaker/commands/DeletePipelineCommand.ts +++ b/clients/client-sagemaker/commands/DeletePipelineCommand.ts @@ -21,7 +21,7 @@ export type DeletePipelineCommandInput = DeletePipelineRequest; export type DeletePipelineCommandOutput = DeletePipelineResponse & __MetadataBearer; /** - *

                      Deletes a pipeline.

                      + *

                      Deletes a pipeline if there are no in-progress executions.

                      */ export class DeletePipelineCommand extends $Command< DeletePipelineCommandInput, diff --git a/clients/client-sagemaker/commands/DeregisterDevicesCommand.ts b/clients/client-sagemaker/commands/DeregisterDevicesCommand.ts new file mode 100644 index 0000000000000..d2067b890e3ea --- /dev/null +++ b/clients/client-sagemaker/commands/DeregisterDevicesCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DeregisterDevicesRequest } from "../models/models_1"; +import { + deserializeAws_json1_1DeregisterDevicesCommand, + serializeAws_json1_1DeregisterDevicesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeregisterDevicesCommandInput = DeregisterDevicesRequest; +export type DeregisterDevicesCommandOutput = __MetadataBearer; + +/** + *

                      Deregisters the specified devices. After you deregister a device, you will need to re-register the devices.

                      + */ +export class DeregisterDevicesCommand extends $Command< + DeregisterDevicesCommandInput, + DeregisterDevicesCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeregisterDevicesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DeregisterDevicesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeregisterDevicesRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeregisterDevicesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeregisterDevicesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeregisterDevicesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeDataQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DescribeDataQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..ac4f48c09ef02 --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeDataQualityJobDefinitionCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DescribeDataQualityJobDefinitionRequest, DescribeDataQualityJobDefinitionResponse } from "../models/models_1"; +import { + deserializeAws_json1_1DescribeDataQualityJobDefinitionCommand, + serializeAws_json1_1DescribeDataQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeDataQualityJobDefinitionCommandInput = DescribeDataQualityJobDefinitionRequest; +export type DescribeDataQualityJobDefinitionCommandOutput = DescribeDataQualityJobDefinitionResponse & __MetadataBearer; + +/** + *

                      Gets the details of a data quality monitoring job definition.

                      + */ +export class DescribeDataQualityJobDefinitionCommand extends $Command< + DescribeDataQualityJobDefinitionCommandInput, + DescribeDataQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeDataQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeDataQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeDataQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeDataQualityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeDataQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeDataQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeDataQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeDeviceCommand.ts b/clients/client-sagemaker/commands/DescribeDeviceCommand.ts new file mode 100644 index 0000000000000..c6699e1ebbcea --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeDeviceCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DescribeDeviceRequest, DescribeDeviceResponse } from "../models/models_1"; +import { + deserializeAws_json1_1DescribeDeviceCommand, + serializeAws_json1_1DescribeDeviceCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeDeviceCommandInput = DescribeDeviceRequest; +export type DescribeDeviceCommandOutput = DescribeDeviceResponse & __MetadataBearer; + +/** + *

                      Describes the device.

                      + */ +export class DescribeDeviceCommand extends $Command< + DescribeDeviceCommandInput, + DescribeDeviceCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeDeviceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeDeviceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeDeviceRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeDeviceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeDeviceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeDeviceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeDeviceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeDeviceFleetCommand.ts b/clients/client-sagemaker/commands/DescribeDeviceFleetCommand.ts new file mode 100644 index 0000000000000..435eabb578891 --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeDeviceFleetCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DescribeDeviceFleetRequest, DescribeDeviceFleetResponse } from "../models/models_1"; +import { + deserializeAws_json1_1DescribeDeviceFleetCommand, + serializeAws_json1_1DescribeDeviceFleetCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeDeviceFleetCommandInput = DescribeDeviceFleetRequest; +export type DescribeDeviceFleetCommandOutput = DescribeDeviceFleetResponse & __MetadataBearer; + +/** + *

                      A description of the fleet the device belongs to.

                      + */ +export class DescribeDeviceFleetCommand extends $Command< + DescribeDeviceFleetCommandInput, + DescribeDeviceFleetCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeDeviceFleetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeDeviceFleetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeDeviceFleetRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeDeviceFleetResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeDeviceFleetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeDeviceFleetCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeDeviceFleetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeEdgePackagingJobCommand.ts b/clients/client-sagemaker/commands/DescribeEdgePackagingJobCommand.ts new file mode 100644 index 0000000000000..c65663fb4efdf --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeEdgePackagingJobCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DescribeEdgePackagingJobRequest, DescribeEdgePackagingJobResponse } from "../models/models_1"; +import { + deserializeAws_json1_1DescribeEdgePackagingJobCommand, + serializeAws_json1_1DescribeEdgePackagingJobCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeEdgePackagingJobCommandInput = DescribeEdgePackagingJobRequest; +export type DescribeEdgePackagingJobCommandOutput = DescribeEdgePackagingJobResponse & __MetadataBearer; + +/** + *

                      A description of edge packaging jobs.

                      + */ +export class DescribeEdgePackagingJobCommand extends $Command< + DescribeEdgePackagingJobCommandInput, + DescribeEdgePackagingJobCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeEdgePackagingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeEdgePackagingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeEdgePackagingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeEdgePackagingJobResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeEdgePackagingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeEdgePackagingJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeEdgePackagingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeModelBiasJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DescribeModelBiasJobDefinitionCommand.ts new file mode 100644 index 0000000000000..e9ef8871256a6 --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeModelBiasJobDefinitionCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { DescribeModelBiasJobDefinitionRequest, DescribeModelBiasJobDefinitionResponse } from "../models/models_1"; +import { + deserializeAws_json1_1DescribeModelBiasJobDefinitionCommand, + serializeAws_json1_1DescribeModelBiasJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeModelBiasJobDefinitionCommandInput = DescribeModelBiasJobDefinitionRequest; +export type DescribeModelBiasJobDefinitionCommandOutput = DescribeModelBiasJobDefinitionResponse & __MetadataBearer; + +/** + *

                      Returns a description of a model bias job definition.

                      + */ +export class DescribeModelBiasJobDefinitionCommand extends $Command< + DescribeModelBiasJobDefinitionCommandInput, + DescribeModelBiasJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeModelBiasJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeModelBiasJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeModelBiasJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeModelBiasJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeModelBiasJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeModelBiasJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeModelBiasJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeModelExplainabilityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DescribeModelExplainabilityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..f1476c448beec --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeModelExplainabilityJobDefinitionCommand.ts @@ -0,0 +1,101 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { + DescribeModelExplainabilityJobDefinitionRequest, + DescribeModelExplainabilityJobDefinitionResponse, +} from "../models/models_1"; +import { + deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand, + serializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeModelExplainabilityJobDefinitionCommandInput = DescribeModelExplainabilityJobDefinitionRequest; +export type DescribeModelExplainabilityJobDefinitionCommandOutput = DescribeModelExplainabilityJobDefinitionResponse & + __MetadataBearer; + +/** + *

                      Returns a description of a model explainability job definition.

                      + */ +export class DescribeModelExplainabilityJobDefinitionCommand extends $Command< + DescribeModelExplainabilityJobDefinitionCommandInput, + DescribeModelExplainabilityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeModelExplainabilityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DescribeModelExplainabilityJobDefinitionCommandInput, + DescribeModelExplainabilityJobDefinitionCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeModelExplainabilityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeModelExplainabilityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeModelExplainabilityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DescribeModelQualityJobDefinitionCommand.ts b/clients/client-sagemaker/commands/DescribeModelQualityJobDefinitionCommand.ts new file mode 100644 index 0000000000000..aacfdeb037b79 --- /dev/null +++ b/clients/client-sagemaker/commands/DescribeModelQualityJobDefinitionCommand.ts @@ -0,0 +1,98 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { + DescribeModelQualityJobDefinitionRequest, + DescribeModelQualityJobDefinitionResponse, +} from "../models/models_1"; +import { + deserializeAws_json1_1DescribeModelQualityJobDefinitionCommand, + serializeAws_json1_1DescribeModelQualityJobDefinitionCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DescribeModelQualityJobDefinitionCommandInput = DescribeModelQualityJobDefinitionRequest; +export type DescribeModelQualityJobDefinitionCommandOutput = DescribeModelQualityJobDefinitionResponse & + __MetadataBearer; + +/** + *

                      Returns a description of a model quality job definition.

                      + */ +export class DescribeModelQualityJobDefinitionCommand extends $Command< + DescribeModelQualityJobDefinitionCommandInput, + DescribeModelQualityJobDefinitionCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeModelQualityJobDefinitionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "DescribeModelQualityJobDefinitionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeModelQualityJobDefinitionRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeModelQualityJobDefinitionResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeModelQualityJobDefinitionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeModelQualityJobDefinitionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeModelQualityJobDefinitionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/DisassociateTrialComponentCommand.ts b/clients/client-sagemaker/commands/DisassociateTrialComponentCommand.ts index 489c2beebb4d4..72bae04866589 100644 --- a/clients/client-sagemaker/commands/DisassociateTrialComponentCommand.ts +++ b/clients/client-sagemaker/commands/DisassociateTrialComponentCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { DisassociateTrialComponentRequest, DisassociateTrialComponentResponse } from "../models/models_1"; +import { DisassociateTrialComponentRequest, DisassociateTrialComponentResponse } from "../models/models_2"; import { deserializeAws_json1_1DisassociateTrialComponentCommand, serializeAws_json1_1DisassociateTrialComponentCommand, diff --git a/clients/client-sagemaker/commands/EnableSagemakerServicecatalogPortfolioCommand.ts b/clients/client-sagemaker/commands/EnableSagemakerServicecatalogPortfolioCommand.ts index 2c9a8940e2194..1b1b1dd9fb275 100644 --- a/clients/client-sagemaker/commands/EnableSagemakerServicecatalogPortfolioCommand.ts +++ b/clients/client-sagemaker/commands/EnableSagemakerServicecatalogPortfolioCommand.ts @@ -2,7 +2,7 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } import { EnableSagemakerServicecatalogPortfolioInput, EnableSagemakerServicecatalogPortfolioOutput, -} from "../models/models_1"; +} from "../models/models_2"; import { deserializeAws_json1_1EnableSagemakerServicecatalogPortfolioCommand, serializeAws_json1_1EnableSagemakerServicecatalogPortfolioCommand, diff --git a/clients/client-sagemaker/commands/GetDeviceFleetReportCommand.ts b/clients/client-sagemaker/commands/GetDeviceFleetReportCommand.ts new file mode 100644 index 0000000000000..52000a9a9b0e1 --- /dev/null +++ b/clients/client-sagemaker/commands/GetDeviceFleetReportCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { GetDeviceFleetReportRequest, GetDeviceFleetReportResponse } from "../models/models_2"; +import { + deserializeAws_json1_1GetDeviceFleetReportCommand, + serializeAws_json1_1GetDeviceFleetReportCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetDeviceFleetReportCommandInput = GetDeviceFleetReportRequest; +export type GetDeviceFleetReportCommandOutput = GetDeviceFleetReportResponse & __MetadataBearer; + +/** + *

                      Describes a fleet.

                      + */ +export class GetDeviceFleetReportCommand extends $Command< + GetDeviceFleetReportCommandInput, + GetDeviceFleetReportCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetDeviceFleetReportCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "GetDeviceFleetReportCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetDeviceFleetReportRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetDeviceFleetReportResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetDeviceFleetReportCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetDeviceFleetReportCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetDeviceFleetReportCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/GetModelPackageGroupPolicyCommand.ts b/clients/client-sagemaker/commands/GetModelPackageGroupPolicyCommand.ts index 764cfffd8df59..e163396824372 100644 --- a/clients/client-sagemaker/commands/GetModelPackageGroupPolicyCommand.ts +++ b/clients/client-sagemaker/commands/GetModelPackageGroupPolicyCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { GetModelPackageGroupPolicyInput, GetModelPackageGroupPolicyOutput } from "../models/models_1"; +import { GetModelPackageGroupPolicyInput, GetModelPackageGroupPolicyOutput } from "../models/models_2"; import { deserializeAws_json1_1GetModelPackageGroupPolicyCommand, serializeAws_json1_1GetModelPackageGroupPolicyCommand, diff --git a/clients/client-sagemaker/commands/GetSagemakerServicecatalogPortfolioStatusCommand.ts b/clients/client-sagemaker/commands/GetSagemakerServicecatalogPortfolioStatusCommand.ts index 005df582cff4a..a3a74f50ed4c0 100644 --- a/clients/client-sagemaker/commands/GetSagemakerServicecatalogPortfolioStatusCommand.ts +++ b/clients/client-sagemaker/commands/GetSagemakerServicecatalogPortfolioStatusCommand.ts @@ -2,7 +2,7 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } import { GetSagemakerServicecatalogPortfolioStatusInput, GetSagemakerServicecatalogPortfolioStatusOutput, -} from "../models/models_1"; +} from "../models/models_2"; import { deserializeAws_json1_1GetSagemakerServicecatalogPortfolioStatusCommand, serializeAws_json1_1GetSagemakerServicecatalogPortfolioStatusCommand, diff --git a/clients/client-sagemaker/commands/GetSearchSuggestionsCommand.ts b/clients/client-sagemaker/commands/GetSearchSuggestionsCommand.ts index cf1d4609d30c6..67b6ba653598f 100644 --- a/clients/client-sagemaker/commands/GetSearchSuggestionsCommand.ts +++ b/clients/client-sagemaker/commands/GetSearchSuggestionsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { GetSearchSuggestionsRequest, GetSearchSuggestionsResponse } from "../models/models_1"; +import { GetSearchSuggestionsRequest, GetSearchSuggestionsResponse } from "../models/models_2"; import { deserializeAws_json1_1GetSearchSuggestionsCommand, serializeAws_json1_1GetSearchSuggestionsCommand, diff --git a/clients/client-sagemaker/commands/ListActionsCommand.ts b/clients/client-sagemaker/commands/ListActionsCommand.ts index 8adc9a183e934..ad93303f6a1b6 100644 --- a/clients/client-sagemaker/commands/ListActionsCommand.ts +++ b/clients/client-sagemaker/commands/ListActionsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListActionsRequest, ListActionsResponse } from "../models/models_1"; +import { ListActionsRequest, ListActionsResponse } from "../models/models_2"; import { deserializeAws_json1_1ListActionsCommand, serializeAws_json1_1ListActionsCommand, diff --git a/clients/client-sagemaker/commands/ListAlgorithmsCommand.ts b/clients/client-sagemaker/commands/ListAlgorithmsCommand.ts index 1dec38f389095..3ae7b78f7eae1 100644 --- a/clients/client-sagemaker/commands/ListAlgorithmsCommand.ts +++ b/clients/client-sagemaker/commands/ListAlgorithmsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListAlgorithmsInput, ListAlgorithmsOutput } from "../models/models_1"; +import { ListAlgorithmsInput, ListAlgorithmsOutput } from "../models/models_2"; import { deserializeAws_json1_1ListAlgorithmsCommand, serializeAws_json1_1ListAlgorithmsCommand, diff --git a/clients/client-sagemaker/commands/ListAppImageConfigsCommand.ts b/clients/client-sagemaker/commands/ListAppImageConfigsCommand.ts index ea5d3e93df6ad..33d5dab6f15a7 100644 --- a/clients/client-sagemaker/commands/ListAppImageConfigsCommand.ts +++ b/clients/client-sagemaker/commands/ListAppImageConfigsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListAppImageConfigsRequest, ListAppImageConfigsResponse } from "../models/models_1"; +import { ListAppImageConfigsRequest, ListAppImageConfigsResponse } from "../models/models_2"; import { deserializeAws_json1_1ListAppImageConfigsCommand, serializeAws_json1_1ListAppImageConfigsCommand, diff --git a/clients/client-sagemaker/commands/ListAppsCommand.ts b/clients/client-sagemaker/commands/ListAppsCommand.ts index 569e78daee422..6544836550b97 100644 --- a/clients/client-sagemaker/commands/ListAppsCommand.ts +++ b/clients/client-sagemaker/commands/ListAppsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListAppsRequest, ListAppsResponse } from "../models/models_1"; +import { ListAppsRequest, ListAppsResponse } from "../models/models_2"; import { deserializeAws_json1_1ListAppsCommand, serializeAws_json1_1ListAppsCommand } from "../protocols/Aws_json1_1"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; diff --git a/clients/client-sagemaker/commands/ListArtifactsCommand.ts b/clients/client-sagemaker/commands/ListArtifactsCommand.ts index fe2bc0eb78679..bef6e66305f6a 100644 --- a/clients/client-sagemaker/commands/ListArtifactsCommand.ts +++ b/clients/client-sagemaker/commands/ListArtifactsCommand.ts @@ -1,5 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListArtifactsRequest, ListArtifactsResponse } from "../models/models_1"; +import { ListArtifactsRequest, ListArtifactsResponse } from "../models/models_2"; import { deserializeAws_json1_1ListArtifactsCommand, serializeAws_json1_1ListArtifactsCommand, diff --git a/clients/client-sagemaker/commands/ListAssociationsCommand.ts b/clients/client-sagemaker/commands/ListAssociationsCommand.ts index 267d0b38e5e13..c7d2630835129 100644 --- a/clients/client-sagemaker/commands/ListAssociationsCommand.ts +++ b/clients/client-sagemaker/commands/ListAssociationsCommand.ts @@ -1,6 +1,5 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { ListAssociationsRequest } from "../models/models_1"; -import { ListAssociationsResponse } from "../models/models_2"; +import { ListAssociationsRequest, ListAssociationsResponse } from "../models/models_2"; import { deserializeAws_json1_1ListAssociationsCommand, serializeAws_json1_1ListAssociationsCommand, diff --git a/clients/client-sagemaker/commands/ListDataQualityJobDefinitionsCommand.ts b/clients/client-sagemaker/commands/ListDataQualityJobDefinitionsCommand.ts new file mode 100644 index 0000000000000..c2de50a6f2b60 --- /dev/null +++ b/clients/client-sagemaker/commands/ListDataQualityJobDefinitionsCommand.ts @@ -0,0 +1,91 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListDataQualityJobDefinitionsRequest, ListDataQualityJobDefinitionsResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListDataQualityJobDefinitionsCommand, + serializeAws_json1_1ListDataQualityJobDefinitionsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListDataQualityJobDefinitionsCommandInput = ListDataQualityJobDefinitionsRequest; +export type ListDataQualityJobDefinitionsCommandOutput = ListDataQualityJobDefinitionsResponse & __MetadataBearer; + +/** + *

                      Lists the data quality job definitions in your account.

                      + */ +export class ListDataQualityJobDefinitionsCommand extends $Command< + ListDataQualityJobDefinitionsCommandInput, + ListDataQualityJobDefinitionsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDataQualityJobDefinitionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListDataQualityJobDefinitionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDataQualityJobDefinitionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDataQualityJobDefinitionsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDataQualityJobDefinitionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListDataQualityJobDefinitionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListDataQualityJobDefinitionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListDeviceFleetsCommand.ts b/clients/client-sagemaker/commands/ListDeviceFleetsCommand.ts new file mode 100644 index 0000000000000..1b733c7c68170 --- /dev/null +++ b/clients/client-sagemaker/commands/ListDeviceFleetsCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListDeviceFleetsRequest, ListDeviceFleetsResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListDeviceFleetsCommand, + serializeAws_json1_1ListDeviceFleetsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListDeviceFleetsCommandInput = ListDeviceFleetsRequest; +export type ListDeviceFleetsCommandOutput = ListDeviceFleetsResponse & __MetadataBearer; + +/** + *

                      Returns a list of devices in the fleet.

                      + */ +export class ListDeviceFleetsCommand extends $Command< + ListDeviceFleetsCommandInput, + ListDeviceFleetsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDeviceFleetsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListDeviceFleetsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDeviceFleetsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDeviceFleetsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDeviceFleetsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListDeviceFleetsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListDeviceFleetsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListDevicesCommand.ts b/clients/client-sagemaker/commands/ListDevicesCommand.ts new file mode 100644 index 0000000000000..d73e19c5a4b0f --- /dev/null +++ b/clients/client-sagemaker/commands/ListDevicesCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListDevicesRequest, ListDevicesResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListDevicesCommand, + serializeAws_json1_1ListDevicesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListDevicesCommandInput = ListDevicesRequest; +export type ListDevicesCommandOutput = ListDevicesResponse & __MetadataBearer; + +/** + *

                      A list of devices.

                      + */ +export class ListDevicesCommand extends $Command< + ListDevicesCommandInput, + ListDevicesCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDevicesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListDevicesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDevicesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDevicesResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDevicesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListDevicesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListDevicesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListEdgePackagingJobsCommand.ts b/clients/client-sagemaker/commands/ListEdgePackagingJobsCommand.ts new file mode 100644 index 0000000000000..1f653b9f58983 --- /dev/null +++ b/clients/client-sagemaker/commands/ListEdgePackagingJobsCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListEdgePackagingJobsRequest, ListEdgePackagingJobsResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListEdgePackagingJobsCommand, + serializeAws_json1_1ListEdgePackagingJobsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListEdgePackagingJobsCommandInput = ListEdgePackagingJobsRequest; +export type ListEdgePackagingJobsCommandOutput = ListEdgePackagingJobsResponse & __MetadataBearer; + +/** + *

                      Returns a list of edge packaging jobs.

                      + */ +export class ListEdgePackagingJobsCommand extends $Command< + ListEdgePackagingJobsCommandInput, + ListEdgePackagingJobsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListEdgePackagingJobsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListEdgePackagingJobsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListEdgePackagingJobsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListEdgePackagingJobsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListEdgePackagingJobsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListEdgePackagingJobsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListEdgePackagingJobsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListModelBiasJobDefinitionsCommand.ts b/clients/client-sagemaker/commands/ListModelBiasJobDefinitionsCommand.ts new file mode 100644 index 0000000000000..6f5d1ee6d5d16 --- /dev/null +++ b/clients/client-sagemaker/commands/ListModelBiasJobDefinitionsCommand.ts @@ -0,0 +1,91 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListModelBiasJobDefinitionsRequest, ListModelBiasJobDefinitionsResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListModelBiasJobDefinitionsCommand, + serializeAws_json1_1ListModelBiasJobDefinitionsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListModelBiasJobDefinitionsCommandInput = ListModelBiasJobDefinitionsRequest; +export type ListModelBiasJobDefinitionsCommandOutput = ListModelBiasJobDefinitionsResponse & __MetadataBearer; + +/** + *

                      Lists model bias jobs definitions that satisfy various filters.

                      + */ +export class ListModelBiasJobDefinitionsCommand extends $Command< + ListModelBiasJobDefinitionsCommandInput, + ListModelBiasJobDefinitionsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListModelBiasJobDefinitionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListModelBiasJobDefinitionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListModelBiasJobDefinitionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListModelBiasJobDefinitionsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListModelBiasJobDefinitionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListModelBiasJobDefinitionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListModelBiasJobDefinitionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListModelExplainabilityJobDefinitionsCommand.ts b/clients/client-sagemaker/commands/ListModelExplainabilityJobDefinitionsCommand.ts new file mode 100644 index 0000000000000..4505c2f10d5d6 --- /dev/null +++ b/clients/client-sagemaker/commands/ListModelExplainabilityJobDefinitionsCommand.ts @@ -0,0 +1,98 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { + ListModelExplainabilityJobDefinitionsRequest, + ListModelExplainabilityJobDefinitionsResponse, +} from "../models/models_2"; +import { + deserializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand, + serializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListModelExplainabilityJobDefinitionsCommandInput = ListModelExplainabilityJobDefinitionsRequest; +export type ListModelExplainabilityJobDefinitionsCommandOutput = ListModelExplainabilityJobDefinitionsResponse & + __MetadataBearer; + +/** + *

                      Lists model explainability job definitions that satisfy various filters.

                      + */ +export class ListModelExplainabilityJobDefinitionsCommand extends $Command< + ListModelExplainabilityJobDefinitionsCommandInput, + ListModelExplainabilityJobDefinitionsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListModelExplainabilityJobDefinitionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListModelExplainabilityJobDefinitionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListModelExplainabilityJobDefinitionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListModelExplainabilityJobDefinitionsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListModelExplainabilityJobDefinitionsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/ListModelQualityJobDefinitionsCommand.ts b/clients/client-sagemaker/commands/ListModelQualityJobDefinitionsCommand.ts new file mode 100644 index 0000000000000..2523c8ef1f952 --- /dev/null +++ b/clients/client-sagemaker/commands/ListModelQualityJobDefinitionsCommand.ts @@ -0,0 +1,94 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { ListModelQualityJobDefinitionsRequest, ListModelQualityJobDefinitionsResponse } from "../models/models_2"; +import { + deserializeAws_json1_1ListModelQualityJobDefinitionsCommand, + serializeAws_json1_1ListModelQualityJobDefinitionsCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListModelQualityJobDefinitionsCommandInput = ListModelQualityJobDefinitionsRequest; +export type ListModelQualityJobDefinitionsCommandOutput = ListModelQualityJobDefinitionsResponse & __MetadataBearer; + +/** + *

                      Gets a list of model quality monitoring job definitions in your account.

                      + */ +export class ListModelQualityJobDefinitionsCommand extends $Command< + ListModelQualityJobDefinitionsCommandInput, + ListModelQualityJobDefinitionsCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListModelQualityJobDefinitionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "ListModelQualityJobDefinitionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListModelQualityJobDefinitionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListModelQualityJobDefinitionsResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListModelQualityJobDefinitionsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1ListModelQualityJobDefinitionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListModelQualityJobDefinitionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/RegisterDevicesCommand.ts b/clients/client-sagemaker/commands/RegisterDevicesCommand.ts new file mode 100644 index 0000000000000..cffb843114810 --- /dev/null +++ b/clients/client-sagemaker/commands/RegisterDevicesCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { RegisterDevicesRequest } from "../models/models_2"; +import { + deserializeAws_json1_1RegisterDevicesCommand, + serializeAws_json1_1RegisterDevicesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type RegisterDevicesCommandInput = RegisterDevicesRequest; +export type RegisterDevicesCommandOutput = __MetadataBearer; + +/** + *

                      Register devices.

                      + */ +export class RegisterDevicesCommand extends $Command< + RegisterDevicesCommandInput, + RegisterDevicesCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RegisterDevicesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "RegisterDevicesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RegisterDevicesRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RegisterDevicesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1RegisterDevicesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1RegisterDevicesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/SearchCommand.ts b/clients/client-sagemaker/commands/SearchCommand.ts index dc92e79b6f755..4f49a39cf18b1 100644 --- a/clients/client-sagemaker/commands/SearchCommand.ts +++ b/clients/client-sagemaker/commands/SearchCommand.ts @@ -1,5 +1,6 @@ import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; -import { SearchRequest, SearchResponse } from "../models/models_2"; +import { SearchResponse } from "../models/models_2"; +import { SearchRequest } from "../models/models_3"; import { deserializeAws_json1_1SearchCommand, serializeAws_json1_1SearchCommand } from "../protocols/Aws_json1_1"; import { getSerdePlugin } from "@aws-sdk/middleware-serde"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; diff --git a/clients/client-sagemaker/commands/StartMonitoringScheduleCommand.ts b/clients/client-sagemaker/commands/StartMonitoringScheduleCommand.ts index 416ae6bd17a27..b8401e7cfa1df 100644 --- a/clients/client-sagemaker/commands/StartMonitoringScheduleCommand.ts +++ b/clients/client-sagemaker/commands/StartMonitoringScheduleCommand.ts @@ -23,7 +23,8 @@ export type StartMonitoringScheduleCommandOutput = __MetadataBearer; /** *

                      Starts a previously stopped monitoring schedule.

                      * - *

                      New monitoring schedules are immediately started after creation.

                      + *

                      By default, when you successfully create a new schedule, the status of a monitoring + * schedule is scheduled.

                      *
                      */ export class StartMonitoringScheduleCommand extends $Command< diff --git a/clients/client-sagemaker/commands/StopEdgePackagingJobCommand.ts b/clients/client-sagemaker/commands/StopEdgePackagingJobCommand.ts new file mode 100644 index 0000000000000..4e39eb8d6b83a --- /dev/null +++ b/clients/client-sagemaker/commands/StopEdgePackagingJobCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { StopEdgePackagingJobRequest } from "../models/models_2"; +import { + deserializeAws_json1_1StopEdgePackagingJobCommand, + serializeAws_json1_1StopEdgePackagingJobCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type StopEdgePackagingJobCommandInput = StopEdgePackagingJobRequest; +export type StopEdgePackagingJobCommandOutput = __MetadataBearer; + +/** + *

                      Request to stop an edge packaging job.

                      + */ +export class StopEdgePackagingJobCommand extends $Command< + StopEdgePackagingJobCommandInput, + StopEdgePackagingJobCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StopEdgePackagingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "StopEdgePackagingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StopEdgePackagingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StopEdgePackagingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1StopEdgePackagingJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1StopEdgePackagingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/UpdateDeviceFleetCommand.ts b/clients/client-sagemaker/commands/UpdateDeviceFleetCommand.ts new file mode 100644 index 0000000000000..c946faf511413 --- /dev/null +++ b/clients/client-sagemaker/commands/UpdateDeviceFleetCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { UpdateDeviceFleetRequest } from "../models/models_2"; +import { + deserializeAws_json1_1UpdateDeviceFleetCommand, + serializeAws_json1_1UpdateDeviceFleetCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateDeviceFleetCommandInput = UpdateDeviceFleetRequest; +export type UpdateDeviceFleetCommandOutput = __MetadataBearer; + +/** + *

                      Updates a fleet of devices.

                      + */ +export class UpdateDeviceFleetCommand extends $Command< + UpdateDeviceFleetCommandInput, + UpdateDeviceFleetCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateDeviceFleetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "UpdateDeviceFleetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateDeviceFleetRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateDeviceFleetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateDeviceFleetCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateDeviceFleetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/UpdateDevicesCommand.ts b/clients/client-sagemaker/commands/UpdateDevicesCommand.ts new file mode 100644 index 0000000000000..e85f93790eac6 --- /dev/null +++ b/clients/client-sagemaker/commands/UpdateDevicesCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { UpdateDevicesRequest } from "../models/models_2"; +import { + deserializeAws_json1_1UpdateDevicesCommand, + serializeAws_json1_1UpdateDevicesCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateDevicesCommandInput = UpdateDevicesRequest; +export type UpdateDevicesCommandOutput = __MetadataBearer; + +/** + *

                      Updates one or more devices in a fleet.

                      + */ +export class UpdateDevicesCommand extends $Command< + UpdateDevicesCommandInput, + UpdateDevicesCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateDevicesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "UpdateDevicesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateDevicesRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateDevicesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateDevicesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateDevicesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/commands/UpdateTrainingJobCommand.ts b/clients/client-sagemaker/commands/UpdateTrainingJobCommand.ts new file mode 100644 index 0000000000000..990ca6e4b49f9 --- /dev/null +++ b/clients/client-sagemaker/commands/UpdateTrainingJobCommand.ts @@ -0,0 +1,88 @@ +import { SageMakerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SageMakerClient"; +import { UpdateTrainingJobRequest, UpdateTrainingJobResponse } from "../models/models_2"; +import { + deserializeAws_json1_1UpdateTrainingJobCommand, + serializeAws_json1_1UpdateTrainingJobCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateTrainingJobCommandInput = UpdateTrainingJobRequest; +export type UpdateTrainingJobCommandOutput = UpdateTrainingJobResponse & __MetadataBearer; + +/** + *

                      Update a model training job to request a new Debugger profiling configuration.

                      + */ +export class UpdateTrainingJobCommand extends $Command< + UpdateTrainingJobCommandInput, + UpdateTrainingJobCommandOutput, + SageMakerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateTrainingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SageMakerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SageMakerClient"; + const commandName = "UpdateTrainingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateTrainingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateTrainingJobResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateTrainingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateTrainingJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateTrainingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-sagemaker/index.ts b/clients/client-sagemaker/index.ts index 6a436516fa36f..7800ae4ae9788 100644 --- a/clients/client-sagemaker/index.ts +++ b/clients/client-sagemaker/index.ts @@ -12,7 +12,10 @@ export * from "./commands/CreateAutoMLJobCommand"; export * from "./commands/CreateCodeRepositoryCommand"; export * from "./commands/CreateCompilationJobCommand"; export * from "./commands/CreateContextCommand"; +export * from "./commands/CreateDataQualityJobDefinitionCommand"; +export * from "./commands/CreateDeviceFleetCommand"; export * from "./commands/CreateDomainCommand"; +export * from "./commands/CreateEdgePackagingJobCommand"; export * from "./commands/CreateEndpointCommand"; export * from "./commands/CreateEndpointConfigCommand"; export * from "./commands/CreateExperimentCommand"; @@ -24,8 +27,11 @@ export * from "./commands/CreateImageCommand"; export * from "./commands/CreateImageVersionCommand"; export * from "./commands/CreateLabelingJobCommand"; export * from "./commands/CreateModelCommand"; +export * from "./commands/CreateModelBiasJobDefinitionCommand"; +export * from "./commands/CreateModelExplainabilityJobDefinitionCommand"; export * from "./commands/CreateModelPackageCommand"; export * from "./commands/CreateModelPackageGroupCommand"; +export * from "./commands/CreateModelQualityJobDefinitionCommand"; export * from "./commands/CreateMonitoringScheduleCommand"; export * from "./commands/CreateNotebookInstanceCommand"; export * from "./commands/CreateNotebookInstanceLifecycleConfigCommand"; @@ -49,6 +55,8 @@ export * from "./commands/DeleteArtifactCommand"; export * from "./commands/DeleteAssociationCommand"; export * from "./commands/DeleteCodeRepositoryCommand"; export * from "./commands/DeleteContextCommand"; +export * from "./commands/DeleteDataQualityJobDefinitionCommand"; +export * from "./commands/DeleteDeviceFleetCommand"; export * from "./commands/DeleteDomainCommand"; export * from "./commands/DeleteEndpointCommand"; export * from "./commands/DeleteEndpointConfigCommand"; @@ -59,9 +67,12 @@ export * from "./commands/DeleteHumanTaskUiCommand"; export * from "./commands/DeleteImageCommand"; export * from "./commands/DeleteImageVersionCommand"; export * from "./commands/DeleteModelCommand"; +export * from "./commands/DeleteModelBiasJobDefinitionCommand"; +export * from "./commands/DeleteModelExplainabilityJobDefinitionCommand"; export * from "./commands/DeleteModelPackageCommand"; export * from "./commands/DeleteModelPackageGroupCommand"; export * from "./commands/DeleteModelPackageGroupPolicyCommand"; +export * from "./commands/DeleteModelQualityJobDefinitionCommand"; export * from "./commands/DeleteMonitoringScheduleCommand"; export * from "./commands/DeleteNotebookInstanceCommand"; export * from "./commands/DeleteNotebookInstanceLifecycleConfigCommand"; @@ -73,6 +84,7 @@ export * from "./commands/DeleteTrialComponentCommand"; export * from "./commands/DeleteUserProfileCommand"; export * from "./commands/DeleteWorkforceCommand"; export * from "./commands/DeleteWorkteamCommand"; +export * from "./commands/DeregisterDevicesCommand"; export * from "./commands/DescribeActionCommand"; export * from "./commands/DescribeAlgorithmCommand"; export * from "./commands/DescribeAppCommand"; @@ -82,7 +94,11 @@ export * from "./commands/DescribeAutoMLJobCommand"; export * from "./commands/DescribeCodeRepositoryCommand"; export * from "./commands/DescribeCompilationJobCommand"; export * from "./commands/DescribeContextCommand"; +export * from "./commands/DescribeDataQualityJobDefinitionCommand"; +export * from "./commands/DescribeDeviceCommand"; +export * from "./commands/DescribeDeviceFleetCommand"; export * from "./commands/DescribeDomainCommand"; +export * from "./commands/DescribeEdgePackagingJobCommand"; export * from "./commands/DescribeEndpointCommand"; export * from "./commands/DescribeEndpointConfigCommand"; export * from "./commands/DescribeExperimentCommand"; @@ -94,8 +110,11 @@ export * from "./commands/DescribeImageCommand"; export * from "./commands/DescribeImageVersionCommand"; export * from "./commands/DescribeLabelingJobCommand"; export * from "./commands/DescribeModelCommand"; +export * from "./commands/DescribeModelBiasJobDefinitionCommand"; +export * from "./commands/DescribeModelExplainabilityJobDefinitionCommand"; export * from "./commands/DescribeModelPackageCommand"; export * from "./commands/DescribeModelPackageGroupCommand"; +export * from "./commands/DescribeModelQualityJobDefinitionCommand"; export * from "./commands/DescribeMonitoringScheduleCommand"; export * from "./commands/DescribeNotebookInstanceCommand"; export * from "./commands/DescribeNotebookInstanceLifecycleConfigCommand"; @@ -115,6 +134,7 @@ export * from "./commands/DescribeWorkteamCommand"; export * from "./commands/DisableSagemakerServicecatalogPortfolioCommand"; export * from "./commands/DisassociateTrialComponentCommand"; export * from "./commands/EnableSagemakerServicecatalogPortfolioCommand"; +export * from "./commands/GetDeviceFleetReportCommand"; export * from "./commands/GetModelPackageGroupPolicyCommand"; export * from "./commands/GetSagemakerServicecatalogPortfolioStatusCommand"; export * from "./commands/GetSearchSuggestionsCommand"; @@ -140,8 +160,16 @@ export * from "./commands/ListCompilationJobsCommand"; export * from "./pagination/ListCompilationJobsPaginator"; export * from "./commands/ListContextsCommand"; export * from "./pagination/ListContextsPaginator"; +export * from "./commands/ListDataQualityJobDefinitionsCommand"; +export * from "./pagination/ListDataQualityJobDefinitionsPaginator"; +export * from "./commands/ListDeviceFleetsCommand"; +export * from "./pagination/ListDeviceFleetsPaginator"; +export * from "./commands/ListDevicesCommand"; +export * from "./pagination/ListDevicesPaginator"; export * from "./commands/ListDomainsCommand"; export * from "./pagination/ListDomainsPaginator"; +export * from "./commands/ListEdgePackagingJobsCommand"; +export * from "./pagination/ListEdgePackagingJobsPaginator"; export * from "./commands/ListEndpointConfigsCommand"; export * from "./pagination/ListEndpointConfigsPaginator"; export * from "./commands/ListEndpointsCommand"; @@ -163,10 +191,16 @@ export * from "./commands/ListLabelingJobsCommand"; export * from "./pagination/ListLabelingJobsPaginator"; export * from "./commands/ListLabelingJobsForWorkteamCommand"; export * from "./pagination/ListLabelingJobsForWorkteamPaginator"; +export * from "./commands/ListModelBiasJobDefinitionsCommand"; +export * from "./pagination/ListModelBiasJobDefinitionsPaginator"; +export * from "./commands/ListModelExplainabilityJobDefinitionsCommand"; +export * from "./pagination/ListModelExplainabilityJobDefinitionsPaginator"; export * from "./commands/ListModelPackageGroupsCommand"; export * from "./pagination/ListModelPackageGroupsPaginator"; export * from "./commands/ListModelPackagesCommand"; export * from "./pagination/ListModelPackagesPaginator"; +export * from "./commands/ListModelQualityJobDefinitionsCommand"; +export * from "./pagination/ListModelQualityJobDefinitionsPaginator"; export * from "./commands/ListModelsCommand"; export * from "./pagination/ListModelsPaginator"; export * from "./commands/ListMonitoringExecutionsCommand"; @@ -210,6 +244,7 @@ export * from "./pagination/ListWorkforcesPaginator"; export * from "./commands/ListWorkteamsCommand"; export * from "./pagination/ListWorkteamsPaginator"; export * from "./commands/PutModelPackageGroupPolicyCommand"; +export * from "./commands/RegisterDevicesCommand"; export * from "./commands/RenderUiTemplateCommand"; export * from "./commands/SearchCommand"; export * from "./pagination/SearchPaginator"; @@ -218,6 +253,7 @@ export * from "./commands/StartNotebookInstanceCommand"; export * from "./commands/StartPipelineExecutionCommand"; export * from "./commands/StopAutoMLJobCommand"; export * from "./commands/StopCompilationJobCommand"; +export * from "./commands/StopEdgePackagingJobCommand"; export * from "./commands/StopHyperParameterTuningJobCommand"; export * from "./commands/StopLabelingJobCommand"; export * from "./commands/StopMonitoringScheduleCommand"; @@ -231,6 +267,8 @@ export * from "./commands/UpdateAppImageConfigCommand"; export * from "./commands/UpdateArtifactCommand"; export * from "./commands/UpdateCodeRepositoryCommand"; export * from "./commands/UpdateContextCommand"; +export * from "./commands/UpdateDeviceFleetCommand"; +export * from "./commands/UpdateDevicesCommand"; export * from "./commands/UpdateDomainCommand"; export * from "./commands/UpdateEndpointCommand"; export * from "./commands/UpdateEndpointWeightsAndCapacitiesCommand"; @@ -242,6 +280,7 @@ export * from "./commands/UpdateNotebookInstanceCommand"; export * from "./commands/UpdateNotebookInstanceLifecycleConfigCommand"; export * from "./commands/UpdatePipelineCommand"; export * from "./commands/UpdatePipelineExecutionCommand"; +export * from "./commands/UpdateTrainingJobCommand"; export * from "./commands/UpdateTrialCommand"; export * from "./commands/UpdateTrialComponentCommand"; export * from "./commands/UpdateUserProfileCommand"; diff --git a/clients/client-sagemaker/models/index.ts b/clients/client-sagemaker/models/index.ts index fd6a6aaed0026..cdb7658f87980 100644 --- a/clients/client-sagemaker/models/index.ts +++ b/clients/client-sagemaker/models/index.ts @@ -1,3 +1,4 @@ export * from "./models_0"; export * from "./models_1"; export * from "./models_2"; +export * from "./models_3"; diff --git a/clients/client-sagemaker/models/models_0.ts b/clients/client-sagemaker/models/models_0.ts index 3b55a26400489..88edf22365922 100644 --- a/clients/client-sagemaker/models/models_0.ts +++ b/clients/client-sagemaker/models/models_0.ts @@ -242,6 +242,27 @@ export namespace AddTagsOutput { }); } +/** + *

                      Edge Manager agent version.

                      + */ +export interface AgentVersion { + /** + *

                      Version of the agent.

                      + */ + Version: string | undefined; + + /** + *

                      The number of Edge Manager agents.

                      + */ + AgentCount: number | undefined; +} + +export namespace AgentVersion { + export const filterSensitiveLog = (obj: AgentVersion): any => ({ + ...obj, + }); +} + /** *

                      This API is not supported.

                      */ @@ -4161,7 +4182,7 @@ export namespace CognitoMemberDefinition { } /** - *

                      Configuration information for tensor collections.

                      + *

                      Configuration information for the Debugger output tensor collections.

                      */ export interface CollectionConfiguration { /** @@ -6275,5891 +6296,5873 @@ export namespace CreateContextResponse { } /** - *

                      The JupyterServer app settings.

                      + *

                      Information about the container that a data quality monitoring job runs.

                      */ -export interface JupyterServerAppSettings { +export interface DataQualityAppSpecification { /** - *

                      The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.

                      + *

                      The container image that the data quality monitoring job runs.

                      */ - DefaultResourceSpec?: ResourceSpec; -} - -export namespace JupyterServerAppSettings { - export const filterSensitiveLog = (obj: JupyterServerAppSettings): any => ({ - ...obj, - }); -} + ImageUri: string | undefined; -/** - *

                      A custom SageMaker image. For more information, see - * Bring your own SageMaker image.

                      - */ -export interface CustomImage { /** - *

                      The name of the CustomImage. Must be unique to your account.

                      + *

                      The entrypoint for a container used to run a monitoring job.

                      */ - ImageName: string | undefined; + ContainerEntrypoint?: string[]; /** - *

                      The version number of the CustomImage.

                      + *

                      The arguments to send to the container that the monitoring job runs.

                      */ - ImageVersionNumber?: number; + ContainerArguments?: string[]; /** - *

                      The name of the AppImageConfig.

                      + *

                      An Amazon S3 URI to a script that is called per row prior to running analysis. It can + * base64 decode the payload and convert it into a flatted json so that the built-in container + * can use the converted data. Applicable only for the built-in (first party) + * containers.

                      */ - AppImageConfigName: string | undefined; -} - -export namespace CustomImage { - export const filterSensitiveLog = (obj: CustomImage): any => ({ - ...obj, - }); -} + RecordPreprocessorSourceUri?: string; -/** - *

                      The KernelGateway app settings.

                      - */ -export interface KernelGatewayAppSettings { /** - *

                      The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.

                      + *

                      An Amazon S3 URI to a script that is called after analysis has been performed. + * Applicable only for the built-in (first party) containers.

                      */ - DefaultResourceSpec?: ResourceSpec; + PostAnalyticsProcessorSourceUri?: string; /** - *

                      A list of custom SageMaker images that are configured to run as a KernelGateway app.

                      + *

                      Sets the environment variables in the container that the monitoring job runs.

                      */ - CustomImages?: CustomImage[]; + Environment?: { [key: string]: string }; } -export namespace KernelGatewayAppSettings { - export const filterSensitiveLog = (obj: KernelGatewayAppSettings): any => ({ +export namespace DataQualityAppSpecification { + export const filterSensitiveLog = (obj: DataQualityAppSpecification): any => ({ ...obj, }); } -export enum NotebookOutputOption { - Allowed = "Allowed", - Disabled = "Disabled", -} - /** - *

                      Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified - * as part of DefaultUserSettings when the CreateDomain API is - * called, and as part of UserSettings when the CreateUserProfile - * API is called.

                      + *

                      The constraints resource for a monitoring job.

                      */ -export interface SharingSettings { - /** - *

                      Whether to include the notebook cell output when sharing the notebook. The default - * is Disabled.

                      - */ - NotebookOutputOption?: NotebookOutputOption | string; - - /** - *

                      When NotebookOutputOption is Allowed, the Amazon S3 bucket used - * to save the notebook cell output.

                      - */ - S3OutputPath?: string; - +export interface MonitoringConstraintsResource { /** - *

                      When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) - * encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.

                      + *

                      The Amazon S3 URI for the constraints resource.

                      */ - S3KmsKeyId?: string; + S3Uri?: string; } -export namespace SharingSettings { - export const filterSensitiveLog = (obj: SharingSettings): any => ({ +export namespace MonitoringConstraintsResource { + export const filterSensitiveLog = (obj: MonitoringConstraintsResource): any => ({ ...obj, }); } /** - *

                      The TensorBoard app settings.

                      + *

                      The statistics resource for a monitoring job.

                      */ -export interface TensorBoardAppSettings { +export interface MonitoringStatisticsResource { /** - *

                      The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

                      + *

                      The Amazon S3 URI for the statistics resource.

                      */ - DefaultResourceSpec?: ResourceSpec; + S3Uri?: string; } -export namespace TensorBoardAppSettings { - export const filterSensitiveLog = (obj: TensorBoardAppSettings): any => ({ +export namespace MonitoringStatisticsResource { + export const filterSensitiveLog = (obj: MonitoringStatisticsResource): any => ({ ...obj, }); } /** - *

                      A collection of settings.

                      + *

                      Configuration for monitoring constraints and monitoring statistics. These baseline + * resources are compared against the results of the current job from the series of jobs + * scheduled to collect data periodically.

                      */ -export interface UserSettings { - /** - *

                      The execution role for the user.

                      - */ - ExecutionRole?: string; - - /** - *

                      The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                      - *

                      Optional when the CreateDomain.AppNetworkAccessType parameter is set to PublicInternetOnly.

                      - *

                      Required when the CreateDomain.AppNetworkAccessType parameter is set to VpcOnly.

                      - */ - SecurityGroups?: string[]; - - /** - *

                      The sharing settings.

                      - */ - SharingSettings?: SharingSettings; - +export interface DataQualityBaselineConfig { /** - *

                      The Jupyter server's app settings.

                      + *

                      The name of the job that performs baselining for the data quality monitoring job.

                      */ - JupyterServerAppSettings?: JupyterServerAppSettings; + BaseliningJobName?: string; /** - *

                      The kernel gateway app settings.

                      + *

                      The constraints resource for a monitoring job.

                      */ - KernelGatewayAppSettings?: KernelGatewayAppSettings; + ConstraintsResource?: MonitoringConstraintsResource; /** - *

                      The TensorBoard app settings.

                      + *

                      The statistics resource for a monitoring job.

                      */ - TensorBoardAppSettings?: TensorBoardAppSettings; + StatisticsResource?: MonitoringStatisticsResource; } -export namespace UserSettings { - export const filterSensitiveLog = (obj: UserSettings): any => ({ +export namespace DataQualityBaselineConfig { + export const filterSensitiveLog = (obj: DataQualityBaselineConfig): any => ({ ...obj, }); } -export interface CreateDomainRequest { +export enum ProcessingS3DataDistributionType { + FULLYREPLICATED = "FullyReplicated", + SHARDEDBYS3KEY = "ShardedByS3Key", +} + +export enum ProcessingS3InputMode { + FILE = "File", + PIPE = "Pipe", +} + +/** + *

                      Input object for the endpoint

                      + */ +export interface EndpointInput { /** - *

                      A name for the domain.

                      + *

                      An endpoint in customer's account which has enabled DataCaptureConfig + * enabled.

                      */ - DomainName: string | undefined; + EndpointName: string | undefined; /** - *

                      The mode of authentication that members use to access the domain.

                      + *

                      Path to the filesystem where the endpoint data is available to the container.

                      */ - AuthMode: AuthMode | string | undefined; + LocalPath: string | undefined; /** - *

                      The default user settings.

                      + *

                      Whether the Pipe or File is used as the input mode for + * transfering data for the monitoring job. Pipe mode is recommended for large + * datasets. File mode is useful for small files that fit in memory. Defaults to + * File.

                      */ - DefaultUserSettings: UserSettings | undefined; + S3InputMode?: ProcessingS3InputMode | string; /** - *

                      The VPC subnets that Studio uses for communication.

                      + *

                      Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. + * Defauts to FullyReplicated + *

                      */ - SubnetIds: string[] | undefined; + S3DataDistributionType?: ProcessingS3DataDistributionType | string; /** - *

                      The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                      + *

                      The attributes of the input data that are the input features.

                      */ - VpcId: string | undefined; + FeaturesAttribute?: string; /** - *

                      Tags to associated with the Domain. Each tag consists of a key and an optional value. - * Tag keys must be unique per resource. Tags are searchable using the - * Search API.

                      + *

                      The attribute of the input data that represents the ground truth label.

                      */ - Tags?: Tag[]; + InferenceAttribute?: string; /** - *

                      Specifies the VPC used for non-EFS traffic. The default value is - * PublicInternetOnly.

                      - *
                        - *
                      • - *

                        - * PublicInternetOnly - Non-EFS traffic is through a VPC managed by - * Amazon SageMaker, which allows direct internet access

                        - *
                      • - *
                      • - *

                        - * VpcOnly - All Studio traffic is through the specified VPC and subnets

                        - *
                      • - *
                      + *

                      In a classification problem, the attribute that represents the class probability.

                      */ - AppNetworkAccessType?: AppNetworkAccessType | string; + ProbabilityAttribute?: string; /** - *

                      This member is deprecated and replaced with KmsKeyId.

                      + *

                      The threshold for the class probability to be evaluated as a positive result.

                      */ - HomeEfsFileSystemKmsKeyId?: string; + ProbabilityThresholdAttribute?: number; /** - *

                      SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed - * customer master key (CMK) by default. For more control, specify a customer managed CMK.

                      + *

                      If specified, monitoring jobs substract this time from the start time. For information + * about using offsets for scheduling monitoring jobs, see Schedule Model + * Quality Monitoring Jobs.

                      */ - KmsKeyId?: string; + StartTimeOffset?: string; + + /** + *

                      If specified, monitoring jobs substract this time from the end time. For information + * about using offsets for scheduling monitoring jobs, see Schedule Model + * Quality Monitoring Jobs.

                      + */ + EndTimeOffset?: string; } -export namespace CreateDomainRequest { - export const filterSensitiveLog = (obj: CreateDomainRequest): any => ({ +export namespace EndpointInput { + export const filterSensitiveLog = (obj: EndpointInput): any => ({ ...obj, }); } -export interface CreateDomainResponse { - /** - *

                      The Amazon Resource Name (ARN) of the created domain.

                      - */ - DomainArn?: string; - +/** + *

                      The input for the data quality monitoring job. Currently endpoints are supported for + * input.

                      + */ +export interface DataQualityJobInput { /** - *

                      The URL to the created domain.

                      + *

                      Input object for the endpoint

                      */ - Url?: string; + EndpointInput: EndpointInput | undefined; } -export namespace CreateDomainResponse { - export const filterSensitiveLog = (obj: CreateDomainResponse): any => ({ +export namespace DataQualityJobInput { + export const filterSensitiveLog = (obj: DataQualityJobInput): any => ({ ...obj, }); } -export interface CreateEndpointInput { +export enum ProcessingS3UploadMode { + CONTINUOUS = "Continuous", + END_OF_JOB = "EndOfJob", +} + +/** + *

                      Information about where and how you want to store the results of a monitoring + * job.

                      + */ +export interface MonitoringS3Output { /** - *

                      The name of the endpoint.The name must be unique within an AWS Region in your AWS account. The name is case-insensitive in CreateEndpoint, - * but the case is preserved and must be matched in .

                      + *

                      A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a + * monitoring job.

                      */ - EndpointName: string | undefined; + S3Uri: string | undefined; /** - *

                      The name of an endpoint configuration. For more information, see - * CreateEndpointConfig.

                      + *

                      The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a + * monitoring job. LocalPath is an absolute path for the output data.

                      */ - EndpointConfigName: string | undefined; + LocalPath: string | undefined; /** - *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                      + *

                      Whether to upload the results of the monitoring job continuously or after the job + * completes.

                      */ - Tags?: Tag[]; + S3UploadMode?: ProcessingS3UploadMode | string; } -export namespace CreateEndpointInput { - export const filterSensitiveLog = (obj: CreateEndpointInput): any => ({ +export namespace MonitoringS3Output { + export const filterSensitiveLog = (obj: MonitoringS3Output): any => ({ ...obj, }); } -export interface CreateEndpointOutput { +/** + *

                      The output object for a monitoring job.

                      + */ +export interface MonitoringOutput { /** - *

                      The Amazon Resource Name (ARN) of the endpoint.

                      + *

                      The Amazon S3 storage location where the results of a monitoring job are saved.

                      */ - EndpointArn: string | undefined; + S3Output: MonitoringS3Output | undefined; } -export namespace CreateEndpointOutput { - export const filterSensitiveLog = (obj: CreateEndpointOutput): any => ({ +export namespace MonitoringOutput { + export const filterSensitiveLog = (obj: MonitoringOutput): any => ({ ...obj, }); } /** - *

                      + *

                      The output configuration for monitoring jobs.

                      */ -export interface DataCaptureConfig { - /** - *

                      - */ - EnableCapture?: boolean; - - /** - *

                      - */ - InitialSamplingPercentage: number | undefined; - +export interface MonitoringOutputConfig { /** - *

                      + *

                      Monitoring outputs for monitoring jobs. This is where the output of the periodic + * monitoring jobs is uploaded.

                      */ - DestinationS3Uri: string | undefined; + MonitoringOutputs: MonitoringOutput[] | undefined; /** - *

                      + *

                      The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model + * artifacts at rest using Amazon S3 server-side encryption.

                      */ KmsKeyId?: string; - - /** - *

                      - */ - CaptureOptions: CaptureOption[] | undefined; - - /** - *

                      - */ - CaptureContentTypeHeader?: CaptureContentTypeHeader; } -export namespace DataCaptureConfig { - export const filterSensitiveLog = (obj: DataCaptureConfig): any => ({ +export namespace MonitoringOutputConfig { + export const filterSensitiveLog = (obj: MonitoringOutputConfig): any => ({ ...obj, }); } -export enum ProductionVariantAcceleratorType { - ML_EIA1_LARGE = "ml.eia1.large", - ML_EIA1_MEDIUM = "ml.eia1.medium", - ML_EIA1_XLARGE = "ml.eia1.xlarge", - ML_EIA2_LARGE = "ml.eia2.large", - ML_EIA2_MEDIUM = "ml.eia2.medium", - ML_EIA2_XLARGE = "ml.eia2.xlarge", +export enum ProcessingInstanceType { + ML_C4_2XLARGE = "ml.c4.2xlarge", + ML_C4_4XLARGE = "ml.c4.4xlarge", + ML_C4_8XLARGE = "ml.c4.8xlarge", + ML_C4_XLARGE = "ml.c4.xlarge", + ML_C5_18XLARGE = "ml.c5.18xlarge", + ML_C5_2XLARGE = "ml.c5.2xlarge", + ML_C5_4XLARGE = "ml.c5.4xlarge", + ML_C5_9XLARGE = "ml.c5.9xlarge", + ML_C5_XLARGE = "ml.c5.xlarge", + ML_M4_10XLARGE = "ml.m4.10xlarge", + ML_M4_16XLARGE = "ml.m4.16xlarge", + ML_M4_2XLARGE = "ml.m4.2xlarge", + ML_M4_4XLARGE = "ml.m4.4xlarge", + ML_M4_XLARGE = "ml.m4.xlarge", + ML_M5_12XLARGE = "ml.m5.12xlarge", + ML_M5_24XLARGE = "ml.m5.24xlarge", + ML_M5_2XLARGE = "ml.m5.2xlarge", + ML_M5_4XLARGE = "ml.m5.4xlarge", + ML_M5_LARGE = "ml.m5.large", + ML_M5_XLARGE = "ml.m5.xlarge", + ML_P2_16XLARGE = "ml.p2.16xlarge", + ML_P2_8XLARGE = "ml.p2.8xlarge", + ML_P2_XLARGE = "ml.p2.xlarge", + ML_P3_16XLARGE = "ml.p3.16xlarge", + ML_P3_2XLARGE = "ml.p3.2xlarge", + ML_P3_8XLARGE = "ml.p3.8xlarge", + ML_R5_12XLARGE = "ml.r5.12xlarge", + ML_R5_16XLARGE = "ml.r5.16xlarge", + ML_R5_24XLARGE = "ml.r5.24xlarge", + ML_R5_2XLARGE = "ml.r5.2xlarge", + ML_R5_4XLARGE = "ml.r5.4xlarge", + ML_R5_8XLARGE = "ml.r5.8xlarge", + ML_R5_LARGE = "ml.r5.large", + ML_R5_XLARGE = "ml.r5.xlarge", + ML_T3_2XLARGE = "ml.t3.2xlarge", + ML_T3_LARGE = "ml.t3.large", + ML_T3_MEDIUM = "ml.t3.medium", + ML_T3_XLARGE = "ml.t3.xlarge", } /** - *

                      Identifies - * a model that you want to host and the resources to deploy for hosting - * it. If you are deploying multiple models, tell Amazon SageMaker how to distribute - * traffic among the models by specifying variant weights.

                      + *

                      Configuration for the cluster used to run model monitoring jobs.

                      */ -export interface ProductionVariant { - /** - *

                      The name of the production variant.

                      - */ - VariantName: string | undefined; - - /** - *

                      The name of the model that you want to host. This is the name that you specified - * when creating the model.

                      - */ - ModelName: string | undefined; - +export interface MonitoringClusterConfig { /** - *

                      Number of instances to launch initially.

                      + *

                      The number of ML compute instances to use in the model monitoring job. For distributed + * processing jobs, specify a value greater than 1. The default value is 1.

                      */ - InitialInstanceCount: number | undefined; + InstanceCount: number | undefined; /** - *

                      The ML compute instance type.

                      + *

                      The ML compute instance type for the processing job.

                      */ - InstanceType: ProductionVariantInstanceType | string | undefined; + InstanceType: ProcessingInstanceType | string | undefined; /** - *

                      Determines initial traffic distribution among all of the models that you specify in - * the endpoint configuration. The traffic to a production variant is determined by the - * ratio of the VariantWeight to the sum of all VariantWeight - * values across all ProductionVariants. If unspecified, it defaults to 1.0. - *

                      + *

                      The size of the ML storage volume, in gigabytes, that you want to provision. You must + * specify sufficient ML storage for your scenario.

                      */ - InitialVariantWeight?: number; + VolumeSizeInGB: number | undefined; /** - *

                      The size of the Elastic Inference (EI) instance to use for the production variant. EI - * instances provide on-demand GPU computing for inference. For more information, see - * Using Elastic - * Inference in Amazon SageMaker.

                      + *

                      The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data + * on the storage volume attached to the ML compute instance(s) that run the model monitoring + * job.

                      */ - AcceleratorType?: ProductionVariantAcceleratorType | string; + VolumeKmsKeyId?: string; } -export namespace ProductionVariant { - export const filterSensitiveLog = (obj: ProductionVariant): any => ({ +export namespace MonitoringClusterConfig { + export const filterSensitiveLog = (obj: MonitoringClusterConfig): any => ({ ...obj, }); } -export interface CreateEndpointConfigInput { +/** + *

                      Identifies the resources to deploy for a monitoring job.

                      + */ +export interface MonitoringResources { /** - *

                      The name of the endpoint configuration. You specify this name in a CreateEndpoint request.

                      + *

                      The configuration for the cluster resources used to run the processing job.

                      */ - EndpointConfigName: string | undefined; + ClusterConfig: MonitoringClusterConfig | undefined; +} - /** - *

                      An list of ProductionVariant objects, one for each model that you want - * to host at this endpoint.

                      - */ - ProductionVariants: ProductionVariant[] | undefined; +export namespace MonitoringResources { + export const filterSensitiveLog = (obj: MonitoringResources): any => ({ + ...obj, + }); +} +/** + *

                      The networking configuration for the monitoring job.

                      + */ +export interface MonitoringNetworkConfig { /** - *

                      + *

                      Whether to encrypt all communications between the instances used for the monitoring + * jobs. Choose True to encrypt communications. Encryption provides greater + * security for distributed jobs, but the processing might take longer.

                      */ - DataCaptureConfig?: DataCaptureConfig; + EnableInterContainerTrafficEncryption?: boolean; /** - *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                      + *

                      Whether to allow inbound and outbound network calls to and from the containers used for + * the monitoring job.

                      */ - Tags?: Tag[]; + EnableNetworkIsolation?: boolean; /** - *

                      The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on - * the storage volume attached to the ML compute instance that hosts the endpoint.

                      - *

                      The KmsKeyId can be any of the following formats:

                      - *
                        - *
                      • - *

                        Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab - *

                        - *
                      • - *
                      • - *

                        Key ARN: - * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab - *

                        - *
                      • - *
                      • - *

                        Alias name: alias/ExampleAlias - *

                        - *
                      • - *
                      • - *

                        Alias name ARN: - * arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias - *

                        - *
                      • - *
                      - *

                      The KMS key policy must grant permission to the IAM role that you specify in your - * CreateEndpoint, UpdateEndpoint requests. For more - * information, refer to the AWS Key Management Service section Using Key - * Policies in AWS KMS - *

                      - * - *

                      Certain Nitro-based instances include local storage, dependent on the instance - * type. Local storage volumes are encrypted using a hardware module on the instance. - * You can't request a KmsKeyId when using an instance type with local - * storage. If any of the models that you specify in the - * ProductionVariants parameter use nitro-based instances with local - * storage, do not specify a value for the KmsKeyId parameter. If you - * specify a value for KmsKeyId when using any nitro-based instances with - * local storage, the call to CreateEndpointConfig fails.

                      - *

                      For a list of instance types that support local instance storage, see Instance Store Volumes.

                      - *

                      For more information about local instance storage encryption, see SSD - * Instance Store Volumes.

                      - *
                      + *

                      Specifies a VPC that your training jobs and hosted models have access to. Control + * access to and from your training and model containers by configuring the VPC. For more + * information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Training Jobs + * by Using an Amazon Virtual Private Cloud.

                      */ - KmsKeyId?: string; + VpcConfig?: VpcConfig; } -export namespace CreateEndpointConfigInput { - export const filterSensitiveLog = (obj: CreateEndpointConfigInput): any => ({ +export namespace MonitoringNetworkConfig { + export const filterSensitiveLog = (obj: MonitoringNetworkConfig): any => ({ ...obj, }); } -export interface CreateEndpointConfigOutput { +/** + *

                      A time limit for how long the monitoring job is allowed to run before stopping.

                      + */ +export interface MonitoringStoppingCondition { /** - *

                      The Amazon Resource Name (ARN) of the endpoint configuration.

                      + *

                      The maximum runtime allowed in seconds.

                      */ - EndpointConfigArn: string | undefined; + MaxRuntimeInSeconds: number | undefined; } -export namespace CreateEndpointConfigOutput { - export const filterSensitiveLog = (obj: CreateEndpointConfigOutput): any => ({ +export namespace MonitoringStoppingCondition { + export const filterSensitiveLog = (obj: MonitoringStoppingCondition): any => ({ ...obj, }); } -export interface CreateExperimentRequest { +export interface CreateDataQualityJobDefinitionRequest { /** - *

                      The name of the experiment. The name must be unique in your AWS account and is not - * case-sensitive.

                      + *

                      The name for the monitoring job definition.

                      */ - ExperimentName: string | undefined; + JobDefinitionName: string | undefined; /** - *

                      The name of the experiment as displayed. The name doesn't need to be unique. If you don't - * specify DisplayName, the value in ExperimentName is - * displayed.

                      + *

                      Configures the constraints and baselines for the monitoring job.

                      */ - DisplayName?: string; + DataQualityBaselineConfig?: DataQualityBaselineConfig; /** - *

                      The description of the experiment.

                      + *

                      Specifies the container that runs the monitoring job.

                      */ - Description?: string; + DataQualityAppSpecification: DataQualityAppSpecification | undefined; /** - *

                      A list of tags to associate with the experiment. You can use Search API - * to search on the tags.

                      + *

                      A list of inputs for the monitoring job. Currently endpoints are supported as monitoring + * inputs.

                      */ - Tags?: Tag[]; -} + DataQualityJobInput: DataQualityJobInput | undefined; -export namespace CreateExperimentRequest { - export const filterSensitiveLog = (obj: CreateExperimentRequest): any => ({ + /** + *

                      The output configuration for monitoring jobs.

                      + */ + DataQualityJobOutputConfig: MonitoringOutputConfig | undefined; + + /** + *

                      Identifies the resources to deploy for a monitoring job.

                      + */ + JobResources: MonitoringResources | undefined; + + /** + *

                      Specifies networking configuration for the monitoring job.

                      + */ + NetworkConfig?: MonitoringNetworkConfig; + + /** + *

                      The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                      + */ + RoleArn: string | undefined; + + /** + *

                      A time limit for how long the monitoring job is allowed to run before stopping.

                      + */ + StoppingCondition?: MonitoringStoppingCondition; + + /** + *

                      (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                      + */ + Tags?: Tag[]; +} + +export namespace CreateDataQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: CreateDataQualityJobDefinitionRequest): any => ({ ...obj, }); } -export interface CreateExperimentResponse { +export interface CreateDataQualityJobDefinitionResponse { /** - *

                      The Amazon Resource Name (ARN) of the experiment.

                      + *

                      The Amazon Resource Name (ARN) of the job definition.

                      */ - ExperimentArn?: string; + JobDefinitionArn: string | undefined; } -export namespace CreateExperimentResponse { - export const filterSensitiveLog = (obj: CreateExperimentResponse): any => ({ +export namespace CreateDataQualityJobDefinitionResponse { + export const filterSensitiveLog = (obj: CreateDataQualityJobDefinitionResponse): any => ({ ...obj, }); } -export enum FeatureType { - FRACTIONAL = "Fractional", - INTEGRAL = "Integral", - STRING = "String", -} - /** - *

                      A list of features. You must include FeatureName and - * FeatureType. Valid feature FeatureTypes are - * Integral, Fractional and String.

                      + *

                      The output configuration.

                      */ -export interface FeatureDefinition { +export interface EdgeOutputConfig { /** - *

                      The name of a feature. The type must be a string. FeatureName cannot be any - * of the following: is_deleted, write_time, - * api_invocation_time.

                      + *

                      The Amazon Simple Storage (S3) bucker URI.

                      */ - FeatureName?: string; + S3OutputLocation: string | undefined; /** - *

                      The value type of a feature. Valid values are Integral, Fractional, or String.

                      + *

                      The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.

                      */ - FeatureType?: FeatureType | string; + KmsKeyId?: string; } -export namespace FeatureDefinition { - export const filterSensitiveLog = (obj: FeatureDefinition): any => ({ +export namespace EdgeOutputConfig { + export const filterSensitiveLog = (obj: EdgeOutputConfig): any => ({ ...obj, }); } -/** - *

                      The meta data of the Glue table which serves as data catalog for the - * OfflineStore.

                      - */ -export interface DataCatalogConfig { +export interface CreateDeviceFleetRequest { /** - *

                      The name of the Glue table.

                      + *

                      The name of the fleet that the device belongs to.

                      */ - TableName: string | undefined; + DeviceFleetName: string | undefined; /** - *

                      The name of the Glue table catalog.

                      + *

                      The Amazon Resource Name (ARN) that has access to AWS Internet of Things (IoT).

                      */ - Catalog: string | undefined; + RoleArn?: string; /** - *

                      The name of the Glue table database.

                      + *

                      A description of the fleet.

                      */ - Database: string | undefined; + Description?: string; + + /** + *

                      The output configuration for storing sample data collected by the fleet.

                      + */ + OutputConfig: EdgeOutputConfig | undefined; + + /** + *

                      Creates tags for the specified fleet.

                      + */ + Tags?: Tag[]; } -export namespace DataCatalogConfig { - export const filterSensitiveLog = (obj: DataCatalogConfig): any => ({ +export namespace CreateDeviceFleetRequest { + export const filterSensitiveLog = (obj: CreateDeviceFleetRequest): any => ({ ...obj, }); } /** - *

                      The Amazon Simple Storage (Amazon S3) location and and security configuration for OfflineStore.

                      + *

                      The JupyterServer app settings.

                      */ -export interface S3StorageConfig { - /** - *

                      The S3 URI, or location in Amazon S3, of OfflineStore.

                      - *

                      S3 URIs have a format similar to the following: s3://example-bucket/prefix/.

                      - */ - S3Uri: string | undefined; - +export interface JupyterServerAppSettings { /** - *

                      The AWS Key Management Service (KMS) key ID of the key used to encrypt any objects - * written into the OfflineStore S3 location.

                      - *

                      The IAM roleARN that is passed as a parameter to - * CreateFeatureGroup must have below permissions to the - * KmsKeyId:

                      - *
                        - *
                      • - *

                        - * "kms:GenerateDataKey" - *

                        - *
                      • - *
                      + *

                      The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.

                      */ - KmsKeyId?: string; + DefaultResourceSpec?: ResourceSpec; } -export namespace S3StorageConfig { - export const filterSensitiveLog = (obj: S3StorageConfig): any => ({ +export namespace JupyterServerAppSettings { + export const filterSensitiveLog = (obj: JupyterServerAppSettings): any => ({ ...obj, }); } /** - *

                      The configuration of an OfflineStore.

                      - *

                      Provide an OfflineStoreConfig in a request to - * CreateFeatureGroup to create an OfflineStore.

                      - *

                      To encrypt an OfflineStore using at rest data encryption, specify AWS Key - * Management Service (KMS) key ID, or KMSKeyId, in - * S3StorageConfig.

                      + *

                      A custom SageMaker image. For more information, see + * Bring your own SageMaker image.

                      */ -export interface OfflineStoreConfig { +export interface CustomImage { /** - *

                      The Amazon Simple Storage (Amazon S3) location of OfflineStore.

                      + *

                      The name of the CustomImage. Must be unique to your account.

                      */ - S3StorageConfig: S3StorageConfig | undefined; + ImageName: string | undefined; /** - *

                      Set to True to disable the automatic creation of an AWS Glue table when - * configuring an OfflineStore.

                      + *

                      The version number of the CustomImage.

                      */ - DisableGlueTableCreation?: boolean; + ImageVersionNumber?: number; /** - *

                      The meta data of the Glue table that is autogenerated when an OfflineStore - * is created.

                      + *

                      The name of the AppImageConfig.

                      */ - DataCatalogConfig?: DataCatalogConfig; + AppImageConfigName: string | undefined; } -export namespace OfflineStoreConfig { - export const filterSensitiveLog = (obj: OfflineStoreConfig): any => ({ +export namespace CustomImage { + export const filterSensitiveLog = (obj: CustomImage): any => ({ ...obj, }); } /** - *

                      The security configuration for OnlineStore.

                      + *

                      The KernelGateway app settings.

                      */ -export interface OnlineStoreSecurityConfig { +export interface KernelGatewayAppSettings { /** - *

                      The ID of the AWS Key Management Service (AWS KMS) key that SageMaker Feature Store uses - * to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.

                      - *

                      The caller (either IAM user or IAM role) of CreateFeatureGroup must have - * below permissions to the OnlineStore - * KmsKeyId:

                      - *
                        - *
                      • - *

                        - * "kms:Encrypt" - *

                        - *
                      • - *
                      • - *

                        - * "kms:Decrypt" - *

                        - *
                      • - *
                      • - *

                        - * "kms:DescribeKey" - *

                        - *
                      • - *
                      • - *

                        - * "kms:CreateGrant" - *

                        - *
                      • - *
                      • - *

                        - * "kms:RetireGrant" - *

                        - *
                      • - *
                      • - *

                        - * "kms:ReEncryptFrom" - *

                        - *
                      • - *
                      • - *

                        - * "kms:ReEncryptTo" - *

                        - *
                      • - *
                      • - *

                        - * "kms:GenerateDataKey" - *

                        - *
                      • - *
                      • - *

                        - * "kms:ListAliases" - *

                        - *
                      • - *
                      • - *

                        - * "kms:ListGrants" - *

                        - *
                      • - *
                      • - *

                        - * "kms:RevokeGrant" - *

                        - *
                      • - *
                      - *

                      The caller (either IAM user or IAM role) to all DataPlane operations - * (PutRecord, GetRecord, DeleteRecord) must have - * the following permissions to the KmsKeyId:

                      - *
                        - *
                      • - *

                        - * "kms:Decrypt" - *

                        - *
                      • - *
                      + *

                      The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.

                      */ - KmsKeyId?: string; + DefaultResourceSpec?: ResourceSpec; + + /** + *

                      A list of custom SageMaker images that are configured to run as a KernelGateway app.

                      + */ + CustomImages?: CustomImage[]; } -export namespace OnlineStoreSecurityConfig { - export const filterSensitiveLog = (obj: OnlineStoreSecurityConfig): any => ({ +export namespace KernelGatewayAppSettings { + export const filterSensitiveLog = (obj: KernelGatewayAppSettings): any => ({ ...obj, }); } +export enum NotebookOutputOption { + Allowed = "Allowed", + Disabled = "Disabled", +} + /** - *

                      Use this to specify the AWS Key Management Service (KMS) Key ID, or - * KMSKeyId, for at rest data encryption. You can turn - * OnlineStore on or off by specifying the EnableOnlineStore flag - * at General Assembly; the default value is False.

                      + *

                      Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified + * as part of DefaultUserSettings when the CreateDomain API is + * called, and as part of UserSettings when the CreateUserProfile + * API is called.

                      */ -export interface OnlineStoreConfig { +export interface SharingSettings { /** - *

                      Use to specify KMS Key ID (KMSKeyId) for at-rest encryption of your - * OnlineStore.

                      + *

                      Whether to include the notebook cell output when sharing the notebook. The default + * is Disabled.

                      */ - SecurityConfig?: OnlineStoreSecurityConfig; + NotebookOutputOption?: NotebookOutputOption | string; /** - *

                      Turn OnlineStore off by specifying False - * for the EnableOnlineStore flag. Turn OnlineStore - * on by specifying True - * for the EnableOnlineStore flag.

                      - *

                      The default value is False.

                      + *

                      When NotebookOutputOption is Allowed, the Amazon S3 bucket used + * to save the notebook cell output.

                      */ - EnableOnlineStore?: boolean; + S3OutputPath?: string; + + /** + *

                      When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) + * encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.

                      + */ + S3KmsKeyId?: string; } -export namespace OnlineStoreConfig { - export const filterSensitiveLog = (obj: OnlineStoreConfig): any => ({ +export namespace SharingSettings { + export const filterSensitiveLog = (obj: SharingSettings): any => ({ ...obj, }); } -export interface CreateFeatureGroupRequest { +/** + *

                      The TensorBoard app settings.

                      + */ +export interface TensorBoardAppSettings { /** - *

                      The name of the FeatureGroup. The name must be unique within an AWS Region - * in an AWS account. The name:

                      - *
                        - *
                      • - *

                        Must start and end with an alphanumeric character.

                        - *
                      • - *
                      • - *

                        Can only contain alphanumeric character and hyphens. Spaces are not allowed. - *

                        - *
                      • - *
                      + *

                      The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

                      */ - FeatureGroupName: string | undefined; + DefaultResourceSpec?: ResourceSpec; +} + +export namespace TensorBoardAppSettings { + export const filterSensitiveLog = (obj: TensorBoardAppSettings): any => ({ + ...obj, + }); +} +/** + *

                      A collection of settings.

                      + */ +export interface UserSettings { /** - *

                      The name of the Feature whose value uniquely identifies a - * Record defined in the FeatureStore. Only the latest record per - * identifier value will be stored in the OnlineStore. - * RecordIdentifierFeatureName must be one of feature definitions' - * names.

                      - *

                      You use the RecordIdentifierFeatureName to access data in a - * FeatureStore.

                      - *

                      This name:

                      - *
                        - *
                      • - *

                        Must start and end with an alphanumeric character.

                        - *
                      • - *
                      • - *

                        Can only contains alphanumeric characters, hyphens, underscores. Spaces are not - * allowed.

                        - *
                      • - *
                      + *

                      The execution role for the user.

                      */ - RecordIdentifierFeatureName: string | undefined; + ExecutionRole?: string; /** - *

                      The name of the feature that stores the EventTime of a Record - * in a FeatureGroup.

                      - *

                      An EventTime is a point in time when a new event occurs that corresponds to - * the creation or update of a Record in a FeatureGroup. All - * Records in the FeatureGroup must have a corresponding - * EventTime.

                      - *

                      An EventTime can be a String or Fractional.

                      - *
                        - *
                      • - *

                        - * Fractional: EventTime feature values must be a Unix - * timestamp in seconds.

                        - *
                      • - *
                      • - *

                        - * String: EventTime feature values must be an ISO-8601 - * string in the format. The following formats are supported - * yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ - * where yyyy, MM, and dd represent the year, - * month, and day respectively and HH, mm, ss, - * and if applicable, SSS represent the hour, month, second and - * milliseconds respsectively. 'T' and Z are constants.

                        - *
                      • - *
                      + *

                      The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                      + *

                      Optional when the CreateDomain.AppNetworkAccessType parameter is set to PublicInternetOnly.

                      + *

                      Required when the CreateDomain.AppNetworkAccessType parameter is set to VpcOnly.

                      */ - EventTimeFeatureName: string | undefined; + SecurityGroups?: string[]; /** - *

                      A list of Feature names and types. Name and Type - * is compulsory per Feature.

                      - *

                      Valid feature FeatureTypes are Integral, - * Fractional and String.

                      - *

                      - * FeatureNames cannot be any of the following: is_deleted, - * write_time, api_invocation_time - *

                      - *

                      You can create up to 2,500 FeatureDefinitions per - * FeatureGroup.

                      + *

                      The sharing settings.

                      */ - FeatureDefinitions: FeatureDefinition[] | undefined; + SharingSettings?: SharingSettings; /** - *

                      You can turn the OnlineStore on or off by specifying True for - * the EnableOnlineStore flag in OnlineStoreConfig; the default - * value is False.

                      - *

                      You can also include an AWS KMS key ID (KMSKeyId) for at-rest encryption of - * the OnlineStore.

                      + *

                      The Jupyter server's app settings.

                      */ - OnlineStoreConfig?: OnlineStoreConfig; + JupyterServerAppSettings?: JupyterServerAppSettings; /** - *

                      Use this to configure an OfflineFeatureStore. This parameter allows you to - * specify:

                      + *

                      The kernel gateway app settings.

                      + */ + KernelGatewayAppSettings?: KernelGatewayAppSettings; + + /** + *

                      The TensorBoard app settings.

                      + */ + TensorBoardAppSettings?: TensorBoardAppSettings; +} + +export namespace UserSettings { + export const filterSensitiveLog = (obj: UserSettings): any => ({ + ...obj, + }); +} + +export interface CreateDomainRequest { + /** + *

                      A name for the domain.

                      + */ + DomainName: string | undefined; + + /** + *

                      The mode of authentication that members use to access the domain.

                      + */ + AuthMode: AuthMode | string | undefined; + + /** + *

                      The default user settings.

                      + */ + DefaultUserSettings: UserSettings | undefined; + + /** + *

                      The VPC subnets that Studio uses for communication.

                      + */ + SubnetIds: string[] | undefined; + + /** + *

                      The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                      + */ + VpcId: string | undefined; + + /** + *

                      Tags to associated with the Domain. Each tag consists of a key and an optional value. + * Tag keys must be unique per resource. Tags are searchable using the + * Search API.

                      + */ + Tags?: Tag[]; + + /** + *

                      Specifies the VPC used for non-EFS traffic. The default value is + * PublicInternetOnly.

                      *
                        *
                      • - *

                        The Amazon Simple Storage Service (Amazon S3) location of an - * OfflineStore.

                        - *
                      • - *
                      • - *

                        A configuration for an AWS Glue or AWS Hive data cataolgue.

                        + *

                        + * PublicInternetOnly - Non-EFS traffic is through a VPC managed by + * Amazon SageMaker, which allows direct internet access

                        *
                      • *
                      • - *

                        An KMS encryption key to encrypt the Amazon S3 location used for - * OfflineStore.

                        + *

                        + * VpcOnly - All Studio traffic is through the specified VPC and subnets

                        *
                      • *
                      - *

                      To learn more about this parameter, see OfflineStoreConfig.

                      - */ - OfflineStoreConfig?: OfflineStoreConfig; - - /** - *

                      The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the - * OfflineStore if an OfflineStoreConfig is provided.

                      */ - RoleArn?: string; + AppNetworkAccessType?: AppNetworkAccessType | string; /** - *

                      A free-form description of a FeatureGroup.

                      + *

                      This member is deprecated and replaced with KmsKeyId.

                      */ - Description?: string; + HomeEfsFileSystemKmsKeyId?: string; /** - *

                      Tags used to identify Features in each FeatureGroup.

                      + *

                      SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed + * customer master key (CMK) by default. For more control, specify a customer managed CMK.

                      */ - Tags?: Tag[]; + KmsKeyId?: string; } -export namespace CreateFeatureGroupRequest { - export const filterSensitiveLog = (obj: CreateFeatureGroupRequest): any => ({ +export namespace CreateDomainRequest { + export const filterSensitiveLog = (obj: CreateDomainRequest): any => ({ ...obj, }); } -export interface CreateFeatureGroupResponse { +export interface CreateDomainResponse { /** - *

                      The Amazon Resource Name (ARN) of the FeatureGroup. This is a unique - * identifier for the feature group.

                      + *

                      The Amazon Resource Name (ARN) of the created domain.

                      */ - FeatureGroupArn: string | undefined; + DomainArn?: string; + + /** + *

                      The URL to the created domain.

                      + */ + Url?: string; } -export namespace CreateFeatureGroupResponse { - export const filterSensitiveLog = (obj: CreateFeatureGroupResponse): any => ({ +export namespace CreateDomainResponse { + export const filterSensitiveLog = (obj: CreateDomainResponse): any => ({ ...obj, }); } -/** - *

                      Defines under what conditions SageMaker creates a human loop. Used within . See for the required - * format of activation conditions.

                      - */ -export interface HumanLoopActivationConditionsConfig { +export interface CreateEdgePackagingJobRequest { /** - *

                      JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. - * The set of conditions is different for Rekognition and Textract. For more information about how to structure the JSON, see - * JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI - * in the Amazon SageMaker Developer Guide.

                      + *

                      The name of the edge packaging job.

                      */ - HumanLoopActivationConditions: __LazyJsonString | string | undefined; -} + EdgePackagingJobName: string | undefined; -export namespace HumanLoopActivationConditionsConfig { - export const filterSensitiveLog = (obj: HumanLoopActivationConditionsConfig): any => ({ - ...obj, - }); -} + /** + *

                      The name of the SageMaker Neo compilation job that will be used to locate model artifacts for packaging.

                      + */ + CompilationJobName: string | undefined; -/** - *

                      Provides information about how and under what conditions SageMaker creates a human loop. If HumanLoopActivationConfig is not given, then all requests go to humans.

                      - */ -export interface HumanLoopActivationConfig { /** - *

                      Container structure for defining under what conditions SageMaker creates a human loop.

                      + *

                      The name of the model.

                      */ - HumanLoopActivationConditionsConfig: HumanLoopActivationConditionsConfig | undefined; -} + ModelName: string | undefined; -export namespace HumanLoopActivationConfig { - export const filterSensitiveLog = (obj: HumanLoopActivationConfig): any => ({ - ...obj, - }); -} + /** + *

                      The version of the model.

                      + */ + ModelVersion: string | undefined; -/** - *

                      Represents an amount of money in United States dollars/

                      - */ -export interface USD { /** - *

                      The whole number of dollars in the amount.

                      + *

                      The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact SageMaker Neo.

                      */ - Dollars?: number; + RoleArn: string | undefined; /** - *

                      The fractional portion, in cents, of the amount.

                      + *

                      Provides information about the output location for the packaged model.

                      */ - Cents?: number; + OutputConfig: EdgeOutputConfig | undefined; /** - *

                      Fractions of a cent, in tenths.

                      + *

                      The CMK to use when encrypting the EBS volume the edge packaging job runs on.

                      */ - TenthFractionsOfACent?: number; + ResourceKey?: string; + + /** + *

                      Creates tags for the packaging job.

                      + */ + Tags?: Tag[]; } -export namespace USD { - export const filterSensitiveLog = (obj: USD): any => ({ +export namespace CreateEdgePackagingJobRequest { + export const filterSensitiveLog = (obj: CreateEdgePackagingJobRequest): any => ({ ...obj, }); } -/** - *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

                      - *

                      Use one of the following prices for bounding box tasks. Prices are in US dollars and - * should be based on the complexity of the task; the longer it takes in your initial - * testing, the more you should offer.

                      - *
                        - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for image classification, text classification, and - * custom tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        0.012

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for semantic segmentation tasks. Prices are in US - * dollars.

                      - *
                        - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon - * Augmented AI review tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        2.400

                        - *
                      • - *
                      • - *

                        2.280

                        - *
                      • - *
                      • - *

                        2.160

                        - *
                      • - *
                      • - *

                        2.040

                        - *
                      • - *
                      • - *

                        1.920

                        - *
                      • - *
                      • - *

                        1.800

                        - *
                      • - *
                      • - *

                        1.680

                        - *
                      • - *
                      • - *

                        1.560

                        - *
                      • - *
                      • - *

                        1.440

                        - *
                      • - *
                      • - *

                        1.320

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      - *

                      Use one of the following prices for Rekognition DetectModerationLabels Amazon - * Augmented AI review tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      - *

                      Use one of the following prices for Amazon Augmented AI custom human review tasks. - * Prices are in US dollars.

                      - *
                        - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      - */ -export interface PublicWorkforceTaskPrice { - /** - *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.

                      - */ - AmountInUsd?: USD; -} - -export namespace PublicWorkforceTaskPrice { - export const filterSensitiveLog = (obj: PublicWorkforceTaskPrice): any => ({ - ...obj, - }); -} - -/** - *

                      Describes the work to be performed by human workers.

                      - */ -export interface HumanLoopConfig { - /** - *

                      Amazon Resource Name (ARN) of a team of workers.

                      - */ - WorkteamArn: string | undefined; - - /** - *

                      The Amazon Resource Name (ARN) of the human task user interface.

                      - */ - HumanTaskUiArn: string | undefined; - - /** - *

                      A title for the human worker task.

                      - */ - TaskTitle: string | undefined; - - /** - *

                      A description for the human worker task.

                      - */ - TaskDescription: string | undefined; - - /** - *

                      The number of distinct workers who will perform the same task on each object. - * For example, if TaskCount is set to 3 for an image classification - * labeling job, three workers will classify each input image. - * Increasing TaskCount can improve label accuracy.

                      - */ - TaskCount: number | undefined; - - /** - *

                      The length of time that a task remains available for review by human workers.

                      - */ - TaskAvailabilityLifetimeInSeconds?: number; - - /** - *

                      The amount of time that a worker has to complete a task. The default value is 3,600 seconds (1 hour)

                      - */ - TaskTimeLimitInSeconds?: number; - - /** - *

                      Keywords used to describe the task so that workers can discover the task.

                      - */ - TaskKeywords?: string[]; - - /** - *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

                      - *

                      Use one of the following prices for bounding box tasks. Prices are in US dollars and - * should be based on the complexity of the task; the longer it takes in your initial - * testing, the more you should offer.

                      - *
                        - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for image classification, text classification, and - * custom tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        0.012

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for semantic segmentation tasks. Prices are in US - * dollars.

                      - *
                        - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      - *

                      Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon - * Augmented AI review tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        2.400

                        - *
                      • - *
                      • - *

                        2.280

                        - *
                      • - *
                      • - *

                        2.160

                        - *
                      • - *
                      • - *

                        2.040

                        - *
                      • - *
                      • - *

                        1.920

                        - *
                      • - *
                      • - *

                        1.800

                        - *
                      • - *
                      • - *

                        1.680

                        - *
                      • - *
                      • - *

                        1.560

                        - *
                      • - *
                      • - *

                        1.440

                        - *
                      • - *
                      • - *

                        1.320

                        - *
                      • - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      - *

                      Use one of the following prices for Rekognition DetectModerationLabels Amazon - * Augmented AI review tasks. Prices are in US dollars.

                      - *
                        - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      - *

                      Use one of the following prices for Amazon Augmented AI custom human review tasks. - * Prices are in US dollars.

                      - *
                        - *
                      • - *

                        1.200

                        - *
                      • - *
                      • - *

                        1.080

                        - *
                      • - *
                      • - *

                        0.960

                        - *
                      • - *
                      • - *

                        0.840

                        - *
                      • - *
                      • - *

                        0.720

                        - *
                      • - *
                      • - *

                        0.600

                        - *
                      • - *
                      • - *

                        0.480

                        - *
                      • - *
                      • - *

                        0.360

                        - *
                      • - *
                      • - *

                        0.240

                        - *
                      • - *
                      • - *

                        0.120

                        - *
                      • - *
                      • - *

                        0.072

                        - *
                      • - *
                      • - *

                        0.060

                        - *
                      • - *
                      • - *

                        0.048

                        - *
                      • - *
                      • - *

                        0.036

                        - *
                      • - *
                      • - *

                        0.024

                        - *
                      • - *
                      • - *

                        0.012

                        - *
                      • - *
                      +export interface CreateEndpointInput { + /** + *

                      The name of the endpoint.The name must be unique within an AWS Region in your AWS account. The name is case-insensitive in CreateEndpoint, + * but the case is preserved and must be matched in .

                      */ - PublicWorkforceTaskPrice?: PublicWorkforceTaskPrice; + EndpointName: string | undefined; + + /** + *

                      The name of an endpoint configuration. For more information, see + * CreateEndpointConfig.

                      + */ + EndpointConfigName: string | undefined; + + /** + *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                      + */ + Tags?: Tag[]; } -export namespace HumanLoopConfig { - export const filterSensitiveLog = (obj: HumanLoopConfig): any => ({ +export namespace CreateEndpointInput { + export const filterSensitiveLog = (obj: CreateEndpointInput): any => ({ ...obj, }); } -/** - *

                      Container for configuring the source of human task requests.

                      - */ -export interface HumanLoopRequestSource { +export interface CreateEndpointOutput { /** - *

                      Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. - * The default field settings and JSON parsing rules are different based on the integration source. Valid values:

                      + *

                      The Amazon Resource Name (ARN) of the endpoint.

                      */ - AwsManagedHumanLoopRequestSource: AwsManagedHumanLoopRequestSource | string | undefined; + EndpointArn: string | undefined; } -export namespace HumanLoopRequestSource { - export const filterSensitiveLog = (obj: HumanLoopRequestSource): any => ({ +export namespace CreateEndpointOutput { + export const filterSensitiveLog = (obj: CreateEndpointOutput): any => ({ ...obj, }); } /** - *

                      Contains information about where human output will be stored.

                      + *

                      */ -export interface FlowDefinitionOutputConfig { +export interface DataCaptureConfig { /** - *

                      The Amazon S3 path where the object containing human output will be made available.

                      + *

                      */ - S3OutputPath: string | undefined; + EnableCapture?: boolean; /** - *

                      The Amazon Key Management Service (KMS) key ID for server-side encryption.

                      + *

                      + */ + InitialSamplingPercentage: number | undefined; + + /** + *

                      + */ + DestinationS3Uri: string | undefined; + + /** + *

                      */ KmsKeyId?: string; + + /** + *

                      + */ + CaptureOptions: CaptureOption[] | undefined; + + /** + *

                      + */ + CaptureContentTypeHeader?: CaptureContentTypeHeader; } -export namespace FlowDefinitionOutputConfig { - export const filterSensitiveLog = (obj: FlowDefinitionOutputConfig): any => ({ +export namespace DataCaptureConfig { + export const filterSensitiveLog = (obj: DataCaptureConfig): any => ({ ...obj, }); } -export interface CreateFlowDefinitionRequest { - /** - *

                      The name of your flow definition.

                      - */ - FlowDefinitionName: string | undefined; +export enum ProductionVariantAcceleratorType { + ML_EIA1_LARGE = "ml.eia1.large", + ML_EIA1_MEDIUM = "ml.eia1.medium", + ML_EIA1_XLARGE = "ml.eia1.xlarge", + ML_EIA2_LARGE = "ml.eia2.large", + ML_EIA2_MEDIUM = "ml.eia2.medium", + ML_EIA2_XLARGE = "ml.eia2.xlarge", +} +/** + *

                      Identifies + * a model that you want to host and the resources to deploy for hosting + * it. If you are deploying multiple models, tell Amazon SageMaker how to distribute + * traffic among the models by specifying variant weights.

                      + */ +export interface ProductionVariant { /** - *

                      Container for configuring the source of human task requests. Use to specify if - * Amazon Rekognition or Amazon Textract is used as an integration source.

                      + *

                      The name of the production variant.

                      */ - HumanLoopRequestSource?: HumanLoopRequestSource; + VariantName: string | undefined; /** - *

                      An object containing information about the events that trigger a human workflow.

                      + *

                      The name of the model that you want to host. This is the name that you specified + * when creating the model.

                      */ - HumanLoopActivationConfig?: HumanLoopActivationConfig; + ModelName: string | undefined; /** - *

                      An object containing information about the tasks the human reviewers will perform.

                      + *

                      Number of instances to launch initially.

                      */ - HumanLoopConfig: HumanLoopConfig | undefined; + InitialInstanceCount: number | undefined; /** - *

                      An object containing information about where the human review results will be uploaded.

                      + *

                      The ML compute instance type.

                      */ - OutputConfig: FlowDefinitionOutputConfig | undefined; + InstanceType: ProductionVariantInstanceType | string | undefined; /** - *

                      The Amazon Resource Name (ARN) of the role needed to call other services on your behalf. For example, arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298.

                      + *

                      Determines initial traffic distribution among all of the models that you specify in + * the endpoint configuration. The traffic to a production variant is determined by the + * ratio of the VariantWeight to the sum of all VariantWeight + * values across all ProductionVariants. If unspecified, it defaults to 1.0. + *

                      */ - RoleArn: string | undefined; + InitialVariantWeight?: number; /** - *

                      An array of key-value pairs that contain metadata to help you categorize and organize a flow definition. Each tag consists of a key and a value, both of which you define.

                      + *

                      The size of the Elastic Inference (EI) instance to use for the production variant. EI + * instances provide on-demand GPU computing for inference. For more information, see + * Using Elastic + * Inference in Amazon SageMaker.

                      */ - Tags?: Tag[]; + AcceleratorType?: ProductionVariantAcceleratorType | string; } -export namespace CreateFlowDefinitionRequest { - export const filterSensitiveLog = (obj: CreateFlowDefinitionRequest): any => ({ +export namespace ProductionVariant { + export const filterSensitiveLog = (obj: ProductionVariant): any => ({ ...obj, }); } -export interface CreateFlowDefinitionResponse { +export interface CreateEndpointConfigInput { /** - *

                      The Amazon Resource Name (ARN) of the flow definition you create.

                      + *

                      The name of the endpoint configuration. You specify this name in a CreateEndpoint request.

                      + */ + EndpointConfigName: string | undefined; + + /** + *

                      An list of ProductionVariant objects, one for each model that you want + * to host at this endpoint.

                      + */ + ProductionVariants: ProductionVariant[] | undefined; + + /** + *

                      + */ + DataCaptureConfig?: DataCaptureConfig; + + /** + *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                      + */ + Tags?: Tag[]; + + /** + *

                      The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on + * the storage volume attached to the ML compute instance that hosts the endpoint.

                      + *

                      The KmsKeyId can be any of the following formats:

                      + *
                        + *
                      • + *

                        Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + *

                        + *
                      • + *
                      • + *

                        Key ARN: + * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + *

                        + *
                      • + *
                      • + *

                        Alias name: alias/ExampleAlias + *

                        + *
                      • + *
                      • + *

                        Alias name ARN: + * arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias + *

                        + *
                      • + *
                      + *

                      The KMS key policy must grant permission to the IAM role that you specify in your + * CreateEndpoint, UpdateEndpoint requests. For more + * information, refer to the AWS Key Management Service section Using Key + * Policies in AWS KMS + *

                      + * + *

                      Certain Nitro-based instances include local storage, dependent on the instance + * type. Local storage volumes are encrypted using a hardware module on the instance. + * You can't request a KmsKeyId when using an instance type with local + * storage. If any of the models that you specify in the + * ProductionVariants parameter use nitro-based instances with local + * storage, do not specify a value for the KmsKeyId parameter. If you + * specify a value for KmsKeyId when using any nitro-based instances with + * local storage, the call to CreateEndpointConfig fails.

                      + *

                      For a list of instance types that support local instance storage, see Instance Store Volumes.

                      + *

                      For more information about local instance storage encryption, see SSD + * Instance Store Volumes.

                      + *
                      */ - FlowDefinitionArn: string | undefined; + KmsKeyId?: string; } -export namespace CreateFlowDefinitionResponse { - export const filterSensitiveLog = (obj: CreateFlowDefinitionResponse): any => ({ +export namespace CreateEndpointConfigInput { + export const filterSensitiveLog = (obj: CreateEndpointConfigInput): any => ({ ...obj, }); } -/** - *

                      The Liquid template for the worker user interface.

                      - */ -export interface UiTemplate { +export interface CreateEndpointConfigOutput { /** - *

                      The content of the Liquid template for the worker user interface.

                      + *

                      The Amazon Resource Name (ARN) of the endpoint configuration.

                      */ - Content: string | undefined; + EndpointConfigArn: string | undefined; } -export namespace UiTemplate { - export const filterSensitiveLog = (obj: UiTemplate): any => ({ +export namespace CreateEndpointConfigOutput { + export const filterSensitiveLog = (obj: CreateEndpointConfigOutput): any => ({ ...obj, }); } -export interface CreateHumanTaskUiRequest { +export interface CreateExperimentRequest { /** - *

                      The name of the user interface you are creating.

                      + *

                      The name of the experiment. The name must be unique in your AWS account and is not + * case-sensitive.

                      */ - HumanTaskUiName: string | undefined; + ExperimentName: string | undefined; /** - *

                      The Liquid template for the worker user interface.

                      + *

                      The name of the experiment as displayed. The name doesn't need to be unique. If you don't + * specify DisplayName, the value in ExperimentName is + * displayed.

                      */ - UiTemplate: UiTemplate | undefined; + DisplayName?: string; /** - *

                      An array of key-value pairs that contain metadata to help you categorize and organize a human review workflow user interface. Each tag consists of a key and a value, both of which you define.

                      + *

                      The description of the experiment.

                      */ - Tags?: Tag[]; -} - -export namespace CreateHumanTaskUiRequest { - export const filterSensitiveLog = (obj: CreateHumanTaskUiRequest): any => ({ - ...obj, - }); -} + Description?: string; -export interface CreateHumanTaskUiResponse { /** - *

                      The Amazon Resource Name (ARN) of the human review workflow user interface you create.

                      + *

                      A list of tags to associate with the experiment. You can use Search API + * to search on the tags.

                      */ - HumanTaskUiArn: string | undefined; + Tags?: Tag[]; } -export namespace CreateHumanTaskUiResponse { - export const filterSensitiveLog = (obj: CreateHumanTaskUiResponse): any => ({ +export namespace CreateExperimentRequest { + export const filterSensitiveLog = (obj: CreateExperimentRequest): any => ({ ...obj, }); } -/** - *

                      For a hyperparameter of the integer type, specifies the range - * that - * a hyperparameter tuning job searches.

                      - */ -export interface IntegerParameterRange { - /** - *

                      The name of the hyperparameter to search.

                      - */ - Name: string | undefined; - - /** - *

                      The minimum - * value - * of the hyperparameter to search.

                      - */ - MinValue: string | undefined; - - /** - *

                      The maximum - * value - * of the hyperparameter to search.

                      - */ - MaxValue: string | undefined; - +export interface CreateExperimentResponse { /** - *

                      The scale that hyperparameter tuning uses to search the hyperparameter range. For - * information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

                      - *
                      - *
                      Auto
                      - *
                      - *

                      Amazon SageMaker hyperparameter tuning chooses the best scale for the - * hyperparameter.

                      - *
                      - *
                      Linear
                      - *
                      - *

                      Hyperparameter tuning searches the values in the hyperparameter range by - * using a linear scale.

                      - *
                      - *
                      Logarithmic
                      - *
                      - *

                      Hyperparameter tuning searches the values in the hyperparameter range by - * using a logarithmic scale.

                      - *

                      Logarithmic scaling works only for ranges that have only values greater - * than 0.

                      - *
                      - *
                      + *

                      The Amazon Resource Name (ARN) of the experiment.

                      */ - ScalingType?: HyperParameterScalingType | string; + ExperimentArn?: string; } -export namespace IntegerParameterRange { - export const filterSensitiveLog = (obj: IntegerParameterRange): any => ({ +export namespace CreateExperimentResponse { + export const filterSensitiveLog = (obj: CreateExperimentResponse): any => ({ ...obj, }); } -/** - *

                      Specifies ranges of integer, continuous, and categorical hyperparameters that a - * hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs - * with hyperparameter values within these ranges to find the combination of values that - * result in the training job with the best performance as measured by the objective metric - * of the hyperparameter tuning job.

                      - * - *

                      You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job - * can search over. Every possible value of a categorical parameter range counts - * against this limit.

                      - *
                      - */ -export interface ParameterRanges { - /** - *

                      The array of IntegerParameterRange objects that specify ranges of - * integer hyperparameters that a hyperparameter tuning job searches.

                      - */ - IntegerParameterRanges?: IntegerParameterRange[]; - - /** - *

                      The array of ContinuousParameterRange objects that specify ranges of - * continuous hyperparameters that a hyperparameter tuning job searches.

                      - */ - ContinuousParameterRanges?: ContinuousParameterRange[]; - - /** - *

                      The array of CategoricalParameterRange objects that specify ranges - * of categorical hyperparameters that a hyperparameter tuning job searches.

                      - */ - CategoricalParameterRanges?: CategoricalParameterRange[]; -} - -export namespace ParameterRanges { - export const filterSensitiveLog = (obj: ParameterRanges): any => ({ - ...obj, - }); +export enum FeatureType { + FRACTIONAL = "Fractional", + INTEGRAL = "Integral", + STRING = "String", } /** - *

                      Specifies the maximum number of - * training - * jobs and parallel training jobs that a hyperparameter tuning job can - * launch.

                      + *

                      A list of features. You must include FeatureName and + * FeatureType. Valid feature FeatureTypes are + * Integral, Fractional and String.

                      */ -export interface ResourceLimits { - /** - *

                      The - * maximum - * number of training jobs that a hyperparameter tuning job can - * launch.

                      - */ - MaxNumberOfTrainingJobs: number | undefined; - +export interface FeatureDefinition { /** - *

                      The - * maximum - * number of concurrent training jobs that a hyperparameter tuning job can - * launch.

                      + *

                      The name of a feature. The type must be a string. FeatureName cannot be any + * of the following: is_deleted, write_time, + * api_invocation_time.

                      */ - MaxParallelTrainingJobs: number | undefined; -} - -export namespace ResourceLimits { - export const filterSensitiveLog = (obj: ResourceLimits): any => ({ - ...obj, - }); -} - -export enum HyperParameterTuningJobStrategyType { - BAYESIAN = "Bayesian", - RANDOM = "Random", -} - -export enum TrainingJobEarlyStoppingType { - AUTO = "Auto", - OFF = "Off", -} + FeatureName?: string; -/** - *

                      The job completion criteria.

                      - */ -export interface TuningJobCompletionCriteria { /** - *

                      The value of the objective metric.

                      + *

                      The value type of a feature. Valid values are Integral, Fractional, or String.

                      */ - TargetObjectiveMetricValue: number | undefined; + FeatureType?: FeatureType | string; } -export namespace TuningJobCompletionCriteria { - export const filterSensitiveLog = (obj: TuningJobCompletionCriteria): any => ({ +export namespace FeatureDefinition { + export const filterSensitiveLog = (obj: FeatureDefinition): any => ({ ...obj, }); } /** - *

                      Configures a hyperparameter tuning job.

                      + *

                      The meta data of the Glue table which serves as data catalog for the + * OfflineStore.

                      */ -export interface HyperParameterTuningJobConfig { - /** - *

                      Specifies how hyperparameter tuning chooses the combinations of hyperparameter values - * to use for the training job it launches. To use the Bayesian search strategy, set this - * to Bayesian. To randomly search, set it to Random. For - * information about search strategies, see How - * Hyperparameter Tuning Works.

                      - */ - Strategy: HyperParameterTuningJobStrategyType | string | undefined; - - /** - *

                      The HyperParameterTuningJobObjective object that specifies the - * objective - * metric for this tuning job.

                      - */ - HyperParameterTuningJobObjective?: HyperParameterTuningJobObjective; - - /** - *

                      The ResourceLimits object that specifies the - * maximum - * number of training jobs and parallel training jobs for this tuning - * job.

                      - */ - ResourceLimits: ResourceLimits | undefined; - +export interface DataCatalogConfig { /** - *

                      The ParameterRanges object that specifies the ranges of - * hyperparameters - * that this tuning job searches.

                      + *

                      The name of the Glue table.

                      */ - ParameterRanges?: ParameterRanges; + TableName: string | undefined; /** - *

                      Specifies whether to use early stopping for training jobs launched by the - * hyperparameter tuning job. This can be one of the following values (the default value is - * OFF):

                      - *
                      - *
                      OFF
                      - *
                      - *

                      Training jobs launched by the hyperparameter tuning job do not use early - * stopping.

                      - *
                      - *
                      AUTO
                      - *
                      - *

                      Amazon SageMaker stops training jobs launched by the hyperparameter tuning job when - * they are unlikely to perform better than previously completed training jobs. - * For more information, see Stop Training Jobs Early.

                      - *
                      - *
                      + *

                      The name of the Glue table catalog.

                      */ - TrainingJobEarlyStoppingType?: TrainingJobEarlyStoppingType | string; + Catalog: string | undefined; /** - *

                      The tuning job's completion criteria.

                      + *

                      The name of the Glue table database.

                      */ - TuningJobCompletionCriteria?: TuningJobCompletionCriteria; + Database: string | undefined; } -export namespace HyperParameterTuningJobConfig { - export const filterSensitiveLog = (obj: HyperParameterTuningJobConfig): any => ({ +export namespace DataCatalogConfig { + export const filterSensitiveLog = (obj: DataCatalogConfig): any => ({ ...obj, }); } /** - *

                      Specifies - * which - * training algorithm to use for training jobs that a hyperparameter - * tuning job launches and the metrics to monitor.

                      + *

                      The Amazon Simple Storage (Amazon S3) location and and security configuration for OfflineStore.

                      */ -export interface HyperParameterAlgorithmSpecification { - /** - *

                      The registry path of the Docker image that contains the training algorithm. For - * information about Docker registry paths for built-in algorithms, see Algorithms - * Provided by Amazon SageMaker: Common Parameters. Amazon SageMaker supports both - * registry/repository[:tag] and registry/repository[@digest] - * image path formats. For more information, see Using Your Own Algorithms with Amazon - * SageMaker.

                      - */ - TrainingImage?: string; - - /** - *

                      The input mode that the algorithm supports: - * File - * or Pipe. In File input mode, Amazon SageMaker downloads the training data from - * Amazon S3 to the - * storage - * volume that is attached to the training instance and mounts the directory to the Docker - * volume for the training container. In Pipe input mode, Amazon SageMaker streams - * data directly from Amazon S3 to the container.

                      - *

                      If you specify File mode, make sure that - * you - * provision the storage volume that is attached to the training instance with enough - * capacity to accommodate the training data downloaded from Amazon S3, the model artifacts, and - * intermediate - * information.

                      - *

                      - *

                      For more information about input modes, see Algorithms.

                      - */ - TrainingInputMode: TrainingInputMode | string | undefined; - +export interface S3StorageConfig { /** - *

                      The name of the resource algorithm to use for the hyperparameter tuning job. If you - * specify a value for this parameter, do not specify a value for - * TrainingImage.

                      + *

                      The S3 URI, or location in Amazon S3, of OfflineStore.

                      + *

                      S3 URIs have a format similar to the following: s3://example-bucket/prefix/.

                      */ - AlgorithmName?: string; + S3Uri: string | undefined; /** - *

                      An array of MetricDefinition objects that specify the - * metrics - * that the algorithm emits.

                      + *

                      The AWS Key Management Service (KMS) key ID of the key used to encrypt any objects + * written into the OfflineStore S3 location.

                      + *

                      The IAM roleARN that is passed as a parameter to + * CreateFeatureGroup must have below permissions to the + * KmsKeyId:

                      + *
                        + *
                      • + *

                        + * "kms:GenerateDataKey" + *

                        + *
                      • + *
                      */ - MetricDefinitions?: MetricDefinition[]; + KmsKeyId?: string; } -export namespace HyperParameterAlgorithmSpecification { - export const filterSensitiveLog = (obj: HyperParameterAlgorithmSpecification): any => ({ +export namespace S3StorageConfig { + export const filterSensitiveLog = (obj: S3StorageConfig): any => ({ ...obj, }); } /** - *

                      Defines - * the training jobs launched by a hyperparameter tuning job.

                      + *

                      The configuration of an OfflineStore.

                      + *

                      Provide an OfflineStoreConfig in a request to + * CreateFeatureGroup to create an OfflineStore.

                      + *

                      To encrypt an OfflineStore using at rest data encryption, specify AWS Key + * Management Service (KMS) key ID, or KMSKeyId, in + * S3StorageConfig.

                      */ -export interface HyperParameterTrainingJobDefinition { +export interface OfflineStoreConfig { /** - *

                      The job definition name.

                      + *

                      The Amazon Simple Storage (Amazon S3) location of OfflineStore.

                      */ - DefinitionName?: string; + S3StorageConfig: S3StorageConfig | undefined; /** - *

                      Defines the objective metric for a hyperparameter tuning job. - * Hyperparameter - * tuning uses the value of this metric to evaluate the training jobs it launches, and - * returns the training job that results in either the highest or lowest value for this - * metric, depending on the value you specify for the Type - * parameter.

                      + *

                      Set to True to disable the automatic creation of an AWS Glue table when + * configuring an OfflineStore.

                      */ - TuningObjective?: HyperParameterTuningJobObjective; + DisableGlueTableCreation?: boolean; /** - *

                      Specifies ranges of integer, continuous, and categorical hyperparameters that a - * hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs - * with hyperparameter values within these ranges to find the combination of values that - * result in the training job with the best performance as measured by the objective metric - * of the hyperparameter tuning job.

                      - * - *

                      You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job - * can search over. Every possible value of a categorical parameter range counts - * against this limit.

                      - *
                      + *

                      The meta data of the Glue table that is autogenerated when an OfflineStore + * is created.

                      */ - HyperParameterRanges?: ParameterRanges; + DataCatalogConfig?: DataCatalogConfig; +} +export namespace OfflineStoreConfig { + export const filterSensitiveLog = (obj: OfflineStoreConfig): any => ({ + ...obj, + }); +} + +/** + *

                      The security configuration for OnlineStore.

                      + */ +export interface OnlineStoreSecurityConfig { /** - *

                      Specifies the values of hyperparameters - * that - * do not change for the tuning job.

                      + *

                      The ID of the AWS Key Management Service (AWS KMS) key that SageMaker Feature Store uses + * to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.

                      + *

                      The caller (either IAM user or IAM role) of CreateFeatureGroup must have + * below permissions to the OnlineStore + * KmsKeyId:

                      + *
                        + *
                      • + *

                        + * "kms:Encrypt" + *

                        + *
                      • + *
                      • + *

                        + * "kms:Decrypt" + *

                        + *
                      • + *
                      • + *

                        + * "kms:DescribeKey" + *

                        + *
                      • + *
                      • + *

                        + * "kms:CreateGrant" + *

                        + *
                      • + *
                      • + *

                        + * "kms:RetireGrant" + *

                        + *
                      • + *
                      • + *

                        + * "kms:ReEncryptFrom" + *

                        + *
                      • + *
                      • + *

                        + * "kms:ReEncryptTo" + *

                        + *
                      • + *
                      • + *

                        + * "kms:GenerateDataKey" + *

                        + *
                      • + *
                      • + *

                        + * "kms:ListAliases" + *

                        + *
                      • + *
                      • + *

                        + * "kms:ListGrants" + *

                        + *
                      • + *
                      • + *

                        + * "kms:RevokeGrant" + *

                        + *
                      • + *
                      + *

                      The caller (either IAM user or IAM role) to all DataPlane operations + * (PutRecord, GetRecord, DeleteRecord) must have + * the following permissions to the KmsKeyId:

                      + *
                        + *
                      • + *

                        + * "kms:Decrypt" + *

                        + *
                      • + *
                      */ - StaticHyperParameters?: { [key: string]: string }; + KmsKeyId?: string; +} +export namespace OnlineStoreSecurityConfig { + export const filterSensitiveLog = (obj: OnlineStoreSecurityConfig): any => ({ + ...obj, + }); +} + +/** + *

                      Use this to specify the AWS Key Management Service (KMS) Key ID, or + * KMSKeyId, for at rest data encryption. You can turn + * OnlineStore on or off by specifying the EnableOnlineStore flag + * at General Assembly; the default value is False.

                      + */ +export interface OnlineStoreConfig { /** - *

                      The HyperParameterAlgorithmSpecification object that - * specifies - * the resource algorithm to use for the training jobs that the tuning - * job launches.

                      + *

                      Use to specify KMS Key ID (KMSKeyId) for at-rest encryption of your + * OnlineStore.

                      */ - AlgorithmSpecification: HyperParameterAlgorithmSpecification | undefined; + SecurityConfig?: OnlineStoreSecurityConfig; /** - *

                      The Amazon Resource Name (ARN) of the - * IAM - * role associated with the training jobs that the tuning job - * launches.

                      + *

                      Turn OnlineStore off by specifying False + * for the EnableOnlineStore flag. Turn OnlineStore + * on by specifying True + * for the EnableOnlineStore flag.

                      + *

                      The default value is False.

                      */ - RoleArn: string | undefined; + EnableOnlineStore?: boolean; +} + +export namespace OnlineStoreConfig { + export const filterSensitiveLog = (obj: OnlineStoreConfig): any => ({ + ...obj, + }); +} +export interface CreateFeatureGroupRequest { /** - *

                      An array of Channel objects that specify - * the - * input for the training jobs that the tuning job launches.

                      + *

                      The name of the FeatureGroup. The name must be unique within an AWS Region + * in an AWS account. The name:

                      + *
                        + *
                      • + *

                        Must start and end with an alphanumeric character.

                        + *
                      • + *
                      • + *

                        Can only contain alphanumeric character and hyphens. Spaces are not allowed. + *

                        + *
                      • + *
                      */ - InputDataConfig?: Channel[]; + FeatureGroupName: string | undefined; /** - *

                      The VpcConfig object that - * specifies - * the VPC that you want the training jobs that this hyperparameter - * tuning job launches to connect to. Control access to and from your - * training - * container by configuring the VPC. For more information, see Protect Training Jobs - * by Using an Amazon Virtual Private Cloud.

                      + *

                      The name of the Feature whose value uniquely identifies a + * Record defined in the FeatureStore. Only the latest record per + * identifier value will be stored in the OnlineStore. + * RecordIdentifierFeatureName must be one of feature definitions' + * names.

                      + *

                      You use the RecordIdentifierFeatureName to access data in a + * FeatureStore.

                      + *

                      This name:

                      + *
                        + *
                      • + *

                        Must start and end with an alphanumeric character.

                        + *
                      • + *
                      • + *

                        Can only contains alphanumeric characters, hyphens, underscores. Spaces are not + * allowed.

                        + *
                      • + *
                      */ - VpcConfig?: VpcConfig; + RecordIdentifierFeatureName: string | undefined; /** - *

                      Specifies the path to the Amazon S3 bucket where you - * store - * model artifacts from the training jobs that the tuning job - * launches.

                      + *

                      The name of the feature that stores the EventTime of a Record + * in a FeatureGroup.

                      + *

                      An EventTime is a point in time when a new event occurs that corresponds to + * the creation or update of a Record in a FeatureGroup. All + * Records in the FeatureGroup must have a corresponding + * EventTime.

                      + *

                      An EventTime can be a String or Fractional.

                      + *
                        + *
                      • + *

                        + * Fractional: EventTime feature values must be a Unix + * timestamp in seconds.

                        + *
                      • + *
                      • + *

                        + * String: EventTime feature values must be an ISO-8601 + * string in the format. The following formats are supported + * yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ + * where yyyy, MM, and dd represent the year, + * month, and day respectively and HH, mm, ss, + * and if applicable, SSS represent the hour, month, second and + * milliseconds respsectively. 'T' and Z are constants.

                        + *
                      • + *
                      */ - OutputDataConfig: OutputDataConfig | undefined; + EventTimeFeatureName: string | undefined; /** - *

                      The resources, - * including - * the compute instances and storage volumes, to use for the training - * jobs that the tuning job launches.

                      - *

                      Storage - * volumes store model artifacts and - * incremental - * states. Training algorithms might also use storage volumes for - * scratch - * space. If you want Amazon SageMaker to use the storage volume - * to store the training data, choose File as the - * TrainingInputMode in the algorithm specification. For distributed - * training algorithms, specify an instance count greater than 1.

                      + *

                      A list of Feature names and types. Name and Type + * is compulsory per Feature.

                      + *

                      Valid feature FeatureTypes are Integral, + * Fractional and String.

                      + *

                      + * FeatureNames cannot be any of the following: is_deleted, + * write_time, api_invocation_time + *

                      + *

                      You can create up to 2,500 FeatureDefinitions per + * FeatureGroup.

                      */ - ResourceConfig: ResourceConfig | undefined; + FeatureDefinitions: FeatureDefinition[] | undefined; /** - *

                      Specifies a limit to how long a model hyperparameter training job can run. It also - * specifies how long you are willing to wait for a managed spot training job to complete. - * When the job reaches the a limit, Amazon SageMaker ends the training job. Use this API to cap model - * training costs.

                      + *

                      You can turn the OnlineStore on or off by specifying True for + * the EnableOnlineStore flag in OnlineStoreConfig; the default + * value is False.

                      + *

                      You can also include an AWS KMS key ID (KMSKeyId) for at-rest encryption of + * the OnlineStore.

                      */ - StoppingCondition: StoppingCondition | undefined; + OnlineStoreConfig?: OnlineStoreConfig; /** - *

                      Isolates the training container. No inbound or outbound network calls can be made, - * except for calls between peers within a training cluster for distributed training. If - * network isolation is used for training jobs that are configured to use a VPC, Amazon SageMaker - * downloads and uploads customer data and model artifacts through the specified VPC, but - * the training container does not have network access.

                      + *

                      Use this to configure an OfflineFeatureStore. This parameter allows you to + * specify:

                      + *
                        + *
                      • + *

                        The Amazon Simple Storage Service (Amazon S3) location of an + * OfflineStore.

                        + *
                      • + *
                      • + *

                        A configuration for an AWS Glue or AWS Hive data cataolgue.

                        + *
                      • + *
                      • + *

                        An KMS encryption key to encrypt the Amazon S3 location used for + * OfflineStore.

                        + *
                      • + *
                      + *

                      To learn more about this parameter, see OfflineStoreConfig.

                      */ - EnableNetworkIsolation?: boolean; + OfflineStoreConfig?: OfflineStoreConfig; /** - *

                      To encrypt all communications between ML compute instances in distributed training, - * choose True. Encryption provides greater security for distributed training, - * but training might take longer. How long it takes depends on the amount of communication - * between compute instances, especially if you use a deep learning algorithm in - * distributed training.

                      + *

                      The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the + * OfflineStore if an OfflineStoreConfig is provided.

                      */ - EnableInterContainerTrafficEncryption?: boolean; + RoleArn?: string; /** - *

                      A Boolean indicating whether managed spot training is enabled (True) or - * not (False).

                      + *

                      A free-form description of a FeatureGroup.

                      */ - EnableManagedSpotTraining?: boolean; + Description?: string; /** - *

                      Contains information about the output location for managed spot training checkpoint - * data.

                      + *

                      Tags used to identify Features in each FeatureGroup.

                      */ - CheckpointConfig?: CheckpointConfig; + Tags?: Tag[]; } -export namespace HyperParameterTrainingJobDefinition { - export const filterSensitiveLog = (obj: HyperParameterTrainingJobDefinition): any => ({ +export namespace CreateFeatureGroupRequest { + export const filterSensitiveLog = (obj: CreateFeatureGroupRequest): any => ({ ...obj, }); } -/** - *

                      A previously completed or stopped hyperparameter tuning job to be used as a starting - * point for a new hyperparameter tuning job.

                      - */ -export interface ParentHyperParameterTuningJob { +export interface CreateFeatureGroupResponse { /** - *

                      The name of the hyperparameter tuning job to be used as a starting point for a new - * hyperparameter tuning job.

                      + *

                      The Amazon Resource Name (ARN) of the FeatureGroup. This is a unique + * identifier for the feature group.

                      */ - HyperParameterTuningJobName?: string; + FeatureGroupArn: string | undefined; } -export namespace ParentHyperParameterTuningJob { - export const filterSensitiveLog = (obj: ParentHyperParameterTuningJob): any => ({ +export namespace CreateFeatureGroupResponse { + export const filterSensitiveLog = (obj: CreateFeatureGroupResponse): any => ({ ...obj, }); } -export enum HyperParameterTuningJobWarmStartType { - IDENTICAL_DATA_AND_ALGORITHM = "IdenticalDataAndAlgorithm", - TRANSFER_LEARNING = "TransferLearning", -} - /** - *

                      Specifies the configuration for a hyperparameter tuning job that uses one or more - * previous hyperparameter tuning jobs as a starting point. The results of previous tuning - * jobs are used to inform which combinations of hyperparameters to search over in the new - * tuning job.

                      - *

                      All training jobs launched by the new hyperparameter tuning job are evaluated by using - * the objective metric, and the training job that performs the best is compared to the - * best training jobs from the parent tuning jobs. From these, the training job that - * performs the best as measured by the objective metric is returned as the overall best - * training job.

                      - * - *

                      All training jobs launched by parent hyperparameter tuning jobs and the new - * hyperparameter tuning jobs count against the limit of training jobs for the tuning - * job.

                      - *
                      + *

                      Defines under what conditions SageMaker creates a human loop. Used within . See for the required + * format of activation conditions.

                      */ -export interface HyperParameterTuningJobWarmStartConfig { - /** - *

                      An array of hyperparameter tuning jobs that are used as the starting point for the new - * hyperparameter tuning job. For more information about warm starting a hyperparameter - * tuning job, see Using a Previous - * Hyperparameter Tuning Job as a Starting Point.

                      - *

                      Hyperparameter tuning jobs created before October 1, 2018 cannot be used as parent - * jobs for warm start tuning jobs.

                      - */ - ParentHyperParameterTuningJobs: ParentHyperParameterTuningJob[] | undefined; - +export interface HumanLoopActivationConditionsConfig { /** - *

                      Specifies one of the following:

                      - *
                      - *
                      IDENTICAL_DATA_AND_ALGORITHM
                      - *
                      - *

                      The new hyperparameter tuning job uses the same input data and training - * image as the parent tuning jobs. You can change the hyperparameter ranges to - * search and the maximum number of training jobs that the hyperparameter - * tuning job launches. You cannot use a new version of the training algorithm, - * unless the changes in the new version do not affect the algorithm itself. - * For example, changes that improve logging or adding support for a different - * data format are allowed. You can also change hyperparameters from tunable to - * static, and from static to tunable, but the total number of static plus - * tunable hyperparameters must remain the same as it is in all parent jobs. - * The objective metric for the new tuning job must be the same as for all - * parent jobs.

                      - *
                      - *
                      TRANSFER_LEARNING
                      - *
                      - *

                      The new hyperparameter tuning job can include input data, hyperparameter - * ranges, maximum number of concurrent training jobs, and maximum number of - * training jobs that are different than those of its parent hyperparameter - * tuning jobs. The training image can also be a different version from the - * version used in the parent hyperparameter tuning job. You can also change - * hyperparameters from tunable to static, and from static to tunable, but the - * total number of static plus tunable hyperparameters must remain the same as - * it is in all parent jobs. The objective metric for the new tuning job must - * be the same as for all parent jobs.

                      - *
                      - *
                      + *

                      JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. + * The set of conditions is different for Rekognition and Textract. For more information about how to structure the JSON, see + * JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI + * in the Amazon SageMaker Developer Guide.

                      */ - WarmStartType: HyperParameterTuningJobWarmStartType | string | undefined; + HumanLoopActivationConditions: __LazyJsonString | string | undefined; } -export namespace HyperParameterTuningJobWarmStartConfig { - export const filterSensitiveLog = (obj: HyperParameterTuningJobWarmStartConfig): any => ({ +export namespace HumanLoopActivationConditionsConfig { + export const filterSensitiveLog = (obj: HumanLoopActivationConditionsConfig): any => ({ ...obj, }); } -export interface CreateHyperParameterTuningJobRequest { - /** - *

                      The name of the tuning job. This name is the prefix for the names of all training jobs - * that this tuning job launches. The name must be unique within the same AWS account and - * AWS Region. The name must have 1 to 32 characters. Valid characters are a-z, A-Z, - * 0-9, and : + = @ _ % - (hyphen). The name is not case sensitive.

                      - */ - HyperParameterTuningJobName: string | undefined; - +/** + *

                      Provides information about how and under what conditions SageMaker creates a human loop. If HumanLoopActivationConfig is not given, then all requests go to humans.

                      + */ +export interface HumanLoopActivationConfig { /** - *

                      The HyperParameterTuningJobConfig object that describes the tuning - * job, including the search strategy, the objective metric used to evaluate training jobs, - * ranges of parameters to search, and resource limits for the tuning job. For more - * information, see How - * Hyperparameter Tuning Works.

                      + *

                      Container structure for defining under what conditions SageMaker creates a human loop.

                      */ - HyperParameterTuningJobConfig: HyperParameterTuningJobConfig | undefined; + HumanLoopActivationConditionsConfig: HumanLoopActivationConditionsConfig | undefined; +} - /** - *

                      The HyperParameterTrainingJobDefinition object that describes the - * training jobs that this tuning job launches, - * including - * static hyperparameters, input data configuration, output data configuration, resource - * configuration, and stopping condition.

                      - */ - TrainingJobDefinition?: HyperParameterTrainingJobDefinition; +export namespace HumanLoopActivationConfig { + export const filterSensitiveLog = (obj: HumanLoopActivationConfig): any => ({ + ...obj, + }); +} +/** + *

                      Represents an amount of money in United States dollars/

                      + */ +export interface USD { /** - *

                      A list of the HyperParameterTrainingJobDefinition objects launched - * for this tuning job.

                      + *

                      The whole number of dollars in the amount.

                      */ - TrainingJobDefinitions?: HyperParameterTrainingJobDefinition[]; + Dollars?: number; /** - *

                      Specifies the configuration for starting the hyperparameter tuning job using one or - * more previous tuning jobs as a starting point. The results of previous tuning jobs are - * used to inform which combinations of hyperparameters to search over in the new tuning - * job.

                      - *

                      All training jobs launched by the new hyperparameter tuning job are evaluated by using - * the objective metric. If you specify IDENTICAL_DATA_AND_ALGORITHM as the - * WarmStartType value for the warm start configuration, the training job - * that performs the best in the new tuning job is compared to the best training jobs from - * the parent tuning jobs. From these, the training job that performs the best as measured - * by the objective metric is returned as the overall best training job.

                      - * - *

                      All training jobs launched by parent hyperparameter tuning jobs and the new - * hyperparameter tuning jobs count against the limit of training jobs for the tuning - * job.

                      - *
                      + *

                      The fractional portion, in cents, of the amount.

                      */ - WarmStartConfig?: HyperParameterTuningJobWarmStartConfig; + Cents?: number; /** - *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                      - *

                      Tags that you specify for the tuning job are also added to all training jobs that the - * tuning job launches.

                      + *

                      Fractions of a cent, in tenths.

                      */ - Tags?: Tag[]; + TenthFractionsOfACent?: number; } -export namespace CreateHyperParameterTuningJobRequest { - export const filterSensitiveLog = (obj: CreateHyperParameterTuningJobRequest): any => ({ +export namespace USD { + export const filterSensitiveLog = (obj: USD): any => ({ ...obj, }); } -export interface CreateHyperParameterTuningJobResponse { +/** + *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

                      + *

                      Use one of the following prices for bounding box tasks. Prices are in US dollars and + * should be based on the complexity of the task; the longer it takes in your initial + * testing, the more you should offer.

                      + *
                        + *
                      • + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        1.200

                        + *
                      • + *
                      + *

                      Use one of the following prices for image classification, text classification, and + * custom tasks. Prices are in US dollars.

                      + *
                        + *
                      • + *

                        0.012

                        + *
                      • + *
                      • + *

                        0.024

                        + *
                      • + *
                      • + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        1.200

                        + *
                      • + *
                      + *

                      Use one of the following prices for semantic segmentation tasks. Prices are in US + * dollars.

                      + *
                        + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        1.200

                        + *
                      • + *
                      + *

                      Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon + * Augmented AI review tasks. Prices are in US dollars.

                      + *
                        + *
                      • + *

                        2.400

                        + *
                      • + *
                      • + *

                        2.280

                        + *
                      • + *
                      • + *

                        2.160

                        + *
                      • + *
                      • + *

                        2.040

                        + *
                      • + *
                      • + *

                        1.920

                        + *
                      • + *
                      • + *

                        1.800

                        + *
                      • + *
                      • + *

                        1.680

                        + *
                      • + *
                      • + *

                        1.560

                        + *
                      • + *
                      • + *

                        1.440

                        + *
                      • + *
                      • + *

                        1.320

                        + *
                      • + *
                      • + *

                        1.200

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.024

                        + *
                      • + *
                      • + *

                        0.012

                        + *
                      • + *
                      + *

                      Use one of the following prices for Rekognition DetectModerationLabels Amazon + * Augmented AI review tasks. Prices are in US dollars.

                      + *
                        + *
                      • + *

                        1.200

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.024

                        + *
                      • + *
                      • + *

                        0.012

                        + *
                      • + *
                      + *

                      Use one of the following prices for Amazon Augmented AI custom human review tasks. + * Prices are in US dollars.

                      + *
                        + *
                      • + *

                        1.200

                        + *
                      • + *
                      • + *

                        1.080

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.024

                        + *
                      • + *
                      • + *

                        0.012

                        + *
                      • + *
                      + */ +export interface PublicWorkforceTaskPrice { /** - *

                      The Amazon Resource Name (ARN) of the tuning job. Amazon SageMaker assigns an ARN to a - * hyperparameter tuning job when you create it.

                      + *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.

                      */ - HyperParameterTuningJobArn: string | undefined; + AmountInUsd?: USD; } -export namespace CreateHyperParameterTuningJobResponse { - export const filterSensitiveLog = (obj: CreateHyperParameterTuningJobResponse): any => ({ +export namespace PublicWorkforceTaskPrice { + export const filterSensitiveLog = (obj: PublicWorkforceTaskPrice): any => ({ ...obj, }); } -export interface CreateImageRequest { - /** - *

                      The description of the image.

                      - */ - Description?: string; - - /** - *

                      The display name of the image. If not provided, ImageName is displayed.

                      - */ - DisplayName?: string; - - /** - *

                      The name of the image. Must be unique to your account.

                      - */ - ImageName: string | undefined; - +/** + *

                      Describes the work to be performed by human workers.

                      + */ +export interface HumanLoopConfig { /** - *

                      The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.

                      + *

                      Amazon Resource Name (ARN) of a team of workers.

                      */ - RoleArn: string | undefined; + WorkteamArn: string | undefined; /** - *

                      A list of tags to apply to the image.

                      + *

                      The Amazon Resource Name (ARN) of the human task user interface.

                      */ - Tags?: Tag[]; -} - -export namespace CreateImageRequest { - export const filterSensitiveLog = (obj: CreateImageRequest): any => ({ - ...obj, - }); -} + HumanTaskUiArn: string | undefined; -export interface CreateImageResponse { /** - *

                      The Amazon Resource Name (ARN) of the image.

                      + *

                      A title for the human worker task.

                      */ - ImageArn?: string; -} - -export namespace CreateImageResponse { - export const filterSensitiveLog = (obj: CreateImageResponse): any => ({ - ...obj, - }); -} + TaskTitle: string | undefined; -export interface CreateImageVersionRequest { /** - *

                      The registry path of the container image to use as the starting point for this - * version. The path is an Amazon Container Registry (ECR) URI in the following format:

                      - *

                      - * .dkr.ecr..amazonaws.com/ - *

                      + *

                      A description for the human worker task.

                      */ - BaseImage: string | undefined; + TaskDescription: string | undefined; /** - *

                      A unique ID. If not specified, the AWS CLI and AWS SDKs, such as the SDK for Python - * (Boto3), add a unique value to the call.

                      + *

                      The number of distinct workers who will perform the same task on each object. + * For example, if TaskCount is set to 3 for an image classification + * labeling job, three workers will classify each input image. + * Increasing TaskCount can improve label accuracy.

                      */ - ClientToken?: string; + TaskCount: number | undefined; /** - *

                      The ImageName of the Image to create a version of.

                      + *

                      The length of time that a task remains available for review by human workers.

                      */ - ImageName: string | undefined; -} - -export namespace CreateImageVersionRequest { - export const filterSensitiveLog = (obj: CreateImageVersionRequest): any => ({ - ...obj, - }); -} + TaskAvailabilityLifetimeInSeconds?: number; -export interface CreateImageVersionResponse { /** - *

                      The Amazon Resource Name (ARN) of the image version.

                      + *

                      The amount of time that a worker has to complete a task. The default value is 3,600 seconds (1 hour)

                      */ - ImageVersionArn?: string; -} - -export namespace CreateImageVersionResponse { - export const filterSensitiveLog = (obj: CreateImageVersionResponse): any => ({ - ...obj, - }); -} + TaskTimeLimitInSeconds?: number; -/** - *

                      Provided configuration information for the worker UI for a labeling job.

                      - */ -export interface UiConfig { /** - *

                      The Amazon S3 bucket location of the UI template, or worker task template. This is the - * template used to render the worker UI and tools for labeling job tasks. For more - * information about the contents of a UI template, see Creating Your Custom - * Labeling Task Template.

                      + *

                      Keywords used to describe the task so that workers can discover the task.

                      */ - UiTemplateS3Uri?: string; + TaskKeywords?: string[]; /** - *

                      The ARN of the worker task template used to render the worker UI and tools for - * labeling job tasks.

                      - *

                      Use this parameter when you are creating a labeling job for 3D point cloud and video - * fram labeling jobs. Use your labeling job task type to select one of the following ARN's - * and use it with this parameter when you create a labeling job. Replace - * aws-region with the AWS region you are creating your labeling job - * in.

                      - * - *

                      - * 3D Point Cloud HumanTaskUiArns - *

                      - * - *

                      Use this HumanTaskUiArn for 3D point cloud object detection and 3D point - * cloud object detection adjustment labeling jobs.

                      + *

                      Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.

                      + *

                      Use one of the following prices for bounding box tasks. Prices are in US dollars and + * should be based on the complexity of the task; the longer it takes in your initial + * testing, the more you should offer.

                      *
                        *
                      • - *

                        - * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection - *

                        + *

                        0.036

                        + *
                      • + *
                      • + *

                        0.048

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.600

                        + *
                      • + *
                      • + *

                        0.720

                        + *
                      • + *
                      • + *

                        0.840

                        + *
                      • + *
                      • + *

                        0.960

                        + *
                      • + *
                      • + *

                        1.080

                        *
                      • - *
                      - * - *

                      Use this HumanTaskUiArn for 3D point cloud object tracking and 3D point - * cloud object tracking adjustment labeling jobs.

                      - *
                        *
                      • - *

                        - * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking - *

                        + *

                        1.200

                        *
                      • *
                      - * - *

                      Use this HumanTaskUiArn for 3D point cloud semantic segmentation and 3D - * point cloud semantic segmentation adjustment labeling jobs.

                      + *

                      Use one of the following prices for image classification, text classification, and + * custom tasks. Prices are in US dollars.

                      *
                        *
                      • - *

                        - * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation - *

                        + *

                        0.012

                        *
                      • - *
                      - * - *

                      - * Video Frame HumanTaskUiArns - *

                      - * - *

                      Use this HumanTaskUiArn for video frame object detection and video frame - * object detection adjustment labeling jobs.

                      - *
                        *
                      • - *

                        - * arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection - *

                        + *

                        0.024

                        *
                      • - *
                      - * - *

                      Use this HumanTaskUiArn for video frame object tracking and video frame - * object tracking adjustment labeling jobs.

                      - *
                        *
                      • - *

                        - * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking - *

                        + *

                        0.036

                        *
                      • - *
                      - */ - HumanTaskUiArn?: string; -} - -export namespace UiConfig { - export const filterSensitiveLog = (obj: UiConfig): any => ({ - ...obj, - }); -} - -/** - *

                      Information required for human workers to complete a labeling task.

                      - */ -export interface HumanTaskConfig { - /** - *

                      The Amazon Resource Name (ARN) of the work team assigned to complete the tasks.

                      - */ - WorkteamArn: string | undefined; - - /** - *

                      Information about the user interface that workers use to complete the labeling - * task.

                      - */ - UiConfig: UiConfig | undefined; - - /** - *

                      The Amazon Resource Name (ARN) of a Lambda function that is run before a data object - * is sent to a human worker. Use this function to provide input to a custom labeling - * job.

                      - *

                      For built-in - * task types, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for - * PreHumanTaskLambdaArn. For custom labeling workflows, see Pre-annotation Lambda.

                      - * - * - * - *

                      - * Bounding box - Finds the most similar boxes from - * different workers based on the Jaccard index of the boxes.

                      - *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox - *

                        + *

                        0.048

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox - *

                        + *

                        0.060

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox - *

                        + *

                        0.072

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox - *

                        + *

                        0.120

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox - *

                        + *

                        0.240

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox - *

                        + *

                        0.360

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox - *

                        + *

                        0.480

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox - *

                        + *

                        0.600

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox - *

                        + *

                        0.720

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox - *

                        + *

                        0.840

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox - *

                        + *

                        0.960

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox - *

                        + *

                        1.080

                        + *
                      • + *
                      • + *

                        1.200

                        *
                      • *
                      - * - * - *

                      - * Image classification - Uses a variant of the Expectation - * Maximization approach to estimate the true class of an image based on - * annotations from individual workers.

                      - * + *

                      Use one of the following prices for semantic segmentation tasks. Prices are in US + * dollars.

                      *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass - *

                        + *

                        0.840

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass - *

                        + *

                        0.960

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass - *

                        + *

                        1.080

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass - *

                        + *

                        1.200

                        *
                      • + *
                      + *

                      Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon + * Augmented AI review tasks. Prices are in US dollars.

                      + *
                        *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass - *

                        + *

                        2.400

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass - *

                        + *

                        2.280

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass - *

                        + *

                        2.160

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass - *

                        + *

                        2.040

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass - *

                        + *

                        1.920

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass - *

                        + *

                        1.800

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass - *

                        + *

                        1.680

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass - *

                        + *

                        1.560

                        *
                      • - *
                      - * - *

                      - * Multi-label image classification - Uses a variant of the Expectation - * Maximization approach to estimate the true classes of an image based on - * annotations from individual workers.

                      - *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        1.440

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        1.320

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        1.200

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        1.080

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.960

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.840

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.720

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.600

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.480

                        + *
                      • + *
                      • + *

                        0.360

                        + *
                      • + *
                      • + *

                        0.240

                        + *
                      • + *
                      • + *

                        0.120

                        + *
                      • + *
                      • + *

                        0.072

                        + *
                      • + *
                      • + *

                        0.060

                        + *
                      • + *
                      • + *

                        0.048

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.036

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.024

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel - *

                        + *

                        0.012

                        *
                      • *
                      - * - *

                      - * Semantic segmentation - Treats each pixel in an image as - * a multi-class classification and treats pixel annotations from workers as - * "votes" for the correct label.

                      + *

                      Use one of the following prices for Rekognition DetectModerationLabels Amazon + * Augmented AI review tasks. Prices are in US dollars.

                      *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation - *

                        + *

                        1.200

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation - *

                        + *

                        1.080

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation - *

                        + *

                        0.960

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation - *

                        + *

                        0.840

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation - *

                        + *

                        0.720

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation - *

                        + *

                        0.600

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation - *

                        + *

                        0.480

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation - *

                        + *

                        0.360

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation - *

                        + *

                        0.240

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation - *

                        + *

                        0.120

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation - *

                        + *

                        0.072

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation - *

                        + *

                        0.060

                        *
                      • - *
                      - * - *

                      - * Text classification - Uses a variant of the Expectation - * Maximization approach to estimate the true class of text based on annotations - * from individual workers.

                      - *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass - *

                        + *

                        0.048

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass - *

                        + *

                        0.036

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass - *

                        + *

                        0.024

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass - *

                        + *

                        0.012

                        *
                      • + *
                      + *

                      Use one of the following prices for Amazon Augmented AI custom human review tasks. + * Prices are in US dollars.

                      + *
                        *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass - *

                        + *

                        1.200

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass - *

                        + *

                        1.080

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass - *

                        + *

                        0.960

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass - *

                        + *

                        0.840

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass - *

                        + *

                        0.720

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass - *

                        + *

                        0.600

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass - *

                        + *

                        0.480

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass - *

                        + *

                        0.360

                        *
                      • - *
                      - * - *

                      - * Multi-label text classification - Uses a variant of the - * Expectation Maximization approach to estimate the true classes of text based on - * annotations from individual workers.

                      - *
                        *
                      • - *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.240

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.120

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.072

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.060

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.048

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.036

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel - *

                        + *

                        0.024

                        + *
                      • + *
                      • + *

                        0.012

                        *
                      • + *
                      + */ + PublicWorkforceTaskPrice?: PublicWorkforceTaskPrice; +} + +export namespace HumanLoopConfig { + export const filterSensitiveLog = (obj: HumanLoopConfig): any => ({ + ...obj, + }); +} + +/** + *

                      Container for configuring the source of human task requests.

                      + */ +export interface HumanLoopRequestSource { + /** + *

                      Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. + * The default field settings and JSON parsing rules are different based on the integration source. Valid values:

                      + */ + AwsManagedHumanLoopRequestSource: AwsManagedHumanLoopRequestSource | string | undefined; +} + +export namespace HumanLoopRequestSource { + export const filterSensitiveLog = (obj: HumanLoopRequestSource): any => ({ + ...obj, + }); +} + +/** + *

                      Contains information about where human output will be stored.

                      + */ +export interface FlowDefinitionOutputConfig { + /** + *

                      The Amazon S3 path where the object containing human output will be made available.

                      + */ + S3OutputPath: string | undefined; + + /** + *

                      The Amazon Key Management Service (KMS) key ID for server-side encryption.

                      + */ + KmsKeyId?: string; +} + +export namespace FlowDefinitionOutputConfig { + export const filterSensitiveLog = (obj: FlowDefinitionOutputConfig): any => ({ + ...obj, + }); +} + +export interface CreateFlowDefinitionRequest { + /** + *

                      The name of your flow definition.

                      + */ + FlowDefinitionName: string | undefined; + + /** + *

                      Container for configuring the source of human task requests. Use to specify if + * Amazon Rekognition or Amazon Textract is used as an integration source.

                      + */ + HumanLoopRequestSource?: HumanLoopRequestSource; + + /** + *

                      An object containing information about the events that trigger a human workflow.

                      + */ + HumanLoopActivationConfig?: HumanLoopActivationConfig; + + /** + *

                      An object containing information about the tasks the human reviewers will perform.

                      + */ + HumanLoopConfig: HumanLoopConfig | undefined; + + /** + *

                      An object containing information about where the human review results will be uploaded.

                      + */ + OutputConfig: FlowDefinitionOutputConfig | undefined; + + /** + *

                      The Amazon Resource Name (ARN) of the role needed to call other services on your behalf. For example, arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298.

                      + */ + RoleArn: string | undefined; + + /** + *

                      An array of key-value pairs that contain metadata to help you categorize and organize a flow definition. Each tag consists of a key and a value, both of which you define.

                      + */ + Tags?: Tag[]; +} + +export namespace CreateFlowDefinitionRequest { + export const filterSensitiveLog = (obj: CreateFlowDefinitionRequest): any => ({ + ...obj, + }); +} + +export interface CreateFlowDefinitionResponse { + /** + *

                      The Amazon Resource Name (ARN) of the flow definition you create.

                      + */ + FlowDefinitionArn: string | undefined; +} + +export namespace CreateFlowDefinitionResponse { + export const filterSensitiveLog = (obj: CreateFlowDefinitionResponse): any => ({ + ...obj, + }); +} + +/** + *

                      The Liquid template for the worker user interface.

                      + */ +export interface UiTemplate { + /** + *

                      The content of the Liquid template for the worker user interface.

                      + */ + Content: string | undefined; +} + +export namespace UiTemplate { + export const filterSensitiveLog = (obj: UiTemplate): any => ({ + ...obj, + }); +} + +export interface CreateHumanTaskUiRequest { + /** + *

                      The name of the user interface you are creating.

                      + */ + HumanTaskUiName: string | undefined; + + /** + *

                      The Liquid template for the worker user interface.

                      + */ + UiTemplate: UiTemplate | undefined; + + /** + *

                      An array of key-value pairs that contain metadata to help you categorize and organize a human review workflow user interface. Each tag consists of a key and a value, both of which you define.

                      + */ + Tags?: Tag[]; +} + +export namespace CreateHumanTaskUiRequest { + export const filterSensitiveLog = (obj: CreateHumanTaskUiRequest): any => ({ + ...obj, + }); +} + +export interface CreateHumanTaskUiResponse { + /** + *

                      The Amazon Resource Name (ARN) of the human review workflow user interface you create.

                      + */ + HumanTaskUiArn: string | undefined; +} + +export namespace CreateHumanTaskUiResponse { + export const filterSensitiveLog = (obj: CreateHumanTaskUiResponse): any => ({ + ...obj, + }); +} + +/** + *

                      For a hyperparameter of the integer type, specifies the range + * that + * a hyperparameter tuning job searches.

                      + */ +export interface IntegerParameterRange { + /** + *

                      The name of the hyperparameter to search.

                      + */ + Name: string | undefined; + + /** + *

                      The minimum + * value + * of the hyperparameter to search.

                      + */ + MinValue: string | undefined; + + /** + *

                      The maximum + * value + * of the hyperparameter to search.

                      + */ + MaxValue: string | undefined; + + /** + *

                      The scale that hyperparameter tuning uses to search the hyperparameter range. For + * information about choosing a hyperparameter scale, see Hyperparameter Scaling. One of the following values:

                      + *
                      + *
                      Auto
                      + *
                      + *

                      Amazon SageMaker hyperparameter tuning chooses the best scale for the + * hyperparameter.

                      + *
                      + *
                      Linear
                      + *
                      + *

                      Hyperparameter tuning searches the values in the hyperparameter range by + * using a linear scale.

                      + *
                      + *
                      Logarithmic
                      + *
                      + *

                      Hyperparameter tuning searches the values in the hyperparameter range by + * using a logarithmic scale.

                      + *

                      Logarithmic scaling works only for ranges that have only values greater + * than 0.

                      + *
                      + *
                      + */ + ScalingType?: HyperParameterScalingType | string; +} + +export namespace IntegerParameterRange { + export const filterSensitiveLog = (obj: IntegerParameterRange): any => ({ + ...obj, + }); +} + +/** + *

                      Specifies ranges of integer, continuous, and categorical hyperparameters that a + * hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs + * with hyperparameter values within these ranges to find the combination of values that + * result in the training job with the best performance as measured by the objective metric + * of the hyperparameter tuning job.

                      + * + *

                      You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job + * can search over. Every possible value of a categorical parameter range counts + * against this limit.

                      + *
                      + */ +export interface ParameterRanges { + /** + *

                      The array of IntegerParameterRange objects that specify ranges of + * integer hyperparameters that a hyperparameter tuning job searches.

                      + */ + IntegerParameterRanges?: IntegerParameterRange[]; + + /** + *

                      The array of ContinuousParameterRange objects that specify ranges of + * continuous hyperparameters that a hyperparameter tuning job searches.

                      + */ + ContinuousParameterRanges?: ContinuousParameterRange[]; + + /** + *

                      The array of CategoricalParameterRange objects that specify ranges + * of categorical hyperparameters that a hyperparameter tuning job searches.

                      + */ + CategoricalParameterRanges?: CategoricalParameterRange[]; +} + +export namespace ParameterRanges { + export const filterSensitiveLog = (obj: ParameterRanges): any => ({ + ...obj, + }); +} + +/** + *

                      Specifies the maximum number of + * training + * jobs and parallel training jobs that a hyperparameter tuning job can + * launch.

                      + */ +export interface ResourceLimits { + /** + *

                      The + * maximum + * number of training jobs that a hyperparameter tuning job can + * launch.

                      + */ + MaxNumberOfTrainingJobs: number | undefined; + + /** + *

                      The + * maximum + * number of concurrent training jobs that a hyperparameter tuning job can + * launch.

                      + */ + MaxParallelTrainingJobs: number | undefined; +} + +export namespace ResourceLimits { + export const filterSensitiveLog = (obj: ResourceLimits): any => ({ + ...obj, + }); +} + +export enum HyperParameterTuningJobStrategyType { + BAYESIAN = "Bayesian", + RANDOM = "Random", +} + +export enum TrainingJobEarlyStoppingType { + AUTO = "Auto", + OFF = "Off", +} + +/** + *

                      The job completion criteria.

                      + */ +export interface TuningJobCompletionCriteria { + /** + *

                      The value of the objective metric.

                      + */ + TargetObjectiveMetricValue: number | undefined; +} + +export namespace TuningJobCompletionCriteria { + export const filterSensitiveLog = (obj: TuningJobCompletionCriteria): any => ({ + ...obj, + }); +} + +/** + *

                      Configures a hyperparameter tuning job.

                      + */ +export interface HyperParameterTuningJobConfig { + /** + *

                      Specifies how hyperparameter tuning chooses the combinations of hyperparameter values + * to use for the training job it launches. To use the Bayesian search strategy, set this + * to Bayesian. To randomly search, set it to Random. For + * information about search strategies, see How + * Hyperparameter Tuning Works.

                      + */ + Strategy: HyperParameterTuningJobStrategyType | string | undefined; + + /** + *

                      The HyperParameterTuningJobObjective object that specifies the + * objective + * metric for this tuning job.

                      + */ + HyperParameterTuningJobObjective?: HyperParameterTuningJobObjective; + + /** + *

                      The ResourceLimits object that specifies the + * maximum + * number of training jobs and parallel training jobs for this tuning + * job.

                      + */ + ResourceLimits: ResourceLimits | undefined; + + /** + *

                      The ParameterRanges object that specifies the ranges of + * hyperparameters + * that this tuning job searches.

                      + */ + ParameterRanges?: ParameterRanges; + + /** + *

                      Specifies whether to use early stopping for training jobs launched by the + * hyperparameter tuning job. This can be one of the following values (the default value is + * OFF):

                      + *
                      + *
                      OFF
                      + *
                      + *

                      Training jobs launched by the hyperparameter tuning job do not use early + * stopping.

                      + *
                      + *
                      AUTO
                      + *
                      + *

                      Amazon SageMaker stops training jobs launched by the hyperparameter tuning job when + * they are unlikely to perform better than previously completed training jobs. + * For more information, see Stop Training Jobs Early.

                      + *
                      + *
                      + */ + TrainingJobEarlyStoppingType?: TrainingJobEarlyStoppingType | string; + + /** + *

                      The tuning job's completion criteria.

                      + */ + TuningJobCompletionCriteria?: TuningJobCompletionCriteria; +} + +export namespace HyperParameterTuningJobConfig { + export const filterSensitiveLog = (obj: HyperParameterTuningJobConfig): any => ({ + ...obj, + }); +} + +/** + *

                      Specifies + * which + * training algorithm to use for training jobs that a hyperparameter + * tuning job launches and the metrics to monitor.

                      + */ +export interface HyperParameterAlgorithmSpecification { + /** + *

                      The registry path of the Docker image that contains the training algorithm. For + * information about Docker registry paths for built-in algorithms, see Algorithms + * Provided by Amazon SageMaker: Common Parameters. Amazon SageMaker supports both + * registry/repository[:tag] and registry/repository[@digest] + * image path formats. For more information, see Using Your Own Algorithms with Amazon + * SageMaker.

                      + */ + TrainingImage?: string; + + /** + *

                      The input mode that the algorithm supports: + * File + * or Pipe. In File input mode, Amazon SageMaker downloads the training data from + * Amazon S3 to the + * storage + * volume that is attached to the training instance and mounts the directory to the Docker + * volume for the training container. In Pipe input mode, Amazon SageMaker streams + * data directly from Amazon S3 to the container.

                      + *

                      If you specify File mode, make sure that + * you + * provision the storage volume that is attached to the training instance with enough + * capacity to accommodate the training data downloaded from Amazon S3, the model artifacts, and + * intermediate + * information.

                      + *

                      + *

                      For more information about input modes, see Algorithms.

                      + */ + TrainingInputMode: TrainingInputMode | string | undefined; + + /** + *

                      The name of the resource algorithm to use for the hyperparameter tuning job. If you + * specify a value for this parameter, do not specify a value for + * TrainingImage.

                      + */ + AlgorithmName?: string; + + /** + *

                      An array of MetricDefinition objects that specify the + * metrics + * that the algorithm emits.

                      + */ + MetricDefinitions?: MetricDefinition[]; +} + +export namespace HyperParameterAlgorithmSpecification { + export const filterSensitiveLog = (obj: HyperParameterAlgorithmSpecification): any => ({ + ...obj, + }); +} + +/** + *

                      Defines + * the training jobs launched by a hyperparameter tuning job.

                      + */ +export interface HyperParameterTrainingJobDefinition { + /** + *

                      The job definition name.

                      + */ + DefinitionName?: string; + + /** + *

                      Defines the objective metric for a hyperparameter tuning job. + * Hyperparameter + * tuning uses the value of this metric to evaluate the training jobs it launches, and + * returns the training job that results in either the highest or lowest value for this + * metric, depending on the value you specify for the Type + * parameter.

                      + */ + TuningObjective?: HyperParameterTuningJobObjective; + + /** + *

                      Specifies ranges of integer, continuous, and categorical hyperparameters that a + * hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs + * with hyperparameter values within these ranges to find the combination of values that + * result in the training job with the best performance as measured by the objective metric + * of the hyperparameter tuning job.

                      + * + *

                      You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job + * can search over. Every possible value of a categorical parameter range counts + * against this limit.

                      + *
                      + */ + HyperParameterRanges?: ParameterRanges; + + /** + *

                      Specifies the values of hyperparameters + * that + * do not change for the tuning job.

                      + */ + StaticHyperParameters?: { [key: string]: string }; + + /** + *

                      The HyperParameterAlgorithmSpecification object that + * specifies + * the resource algorithm to use for the training jobs that the tuning + * job launches.

                      + */ + AlgorithmSpecification: HyperParameterAlgorithmSpecification | undefined; + + /** + *

                      The Amazon Resource Name (ARN) of the + * IAM + * role associated with the training jobs that the tuning job + * launches.

                      + */ + RoleArn: string | undefined; + + /** + *

                      An array of Channel objects that specify + * the + * input for the training jobs that the tuning job launches.

                      + */ + InputDataConfig?: Channel[]; + + /** + *

                      The VpcConfig object that + * specifies + * the VPC that you want the training jobs that this hyperparameter + * tuning job launches to connect to. Control access to and from your + * training + * container by configuring the VPC. For more information, see Protect Training Jobs + * by Using an Amazon Virtual Private Cloud.

                      + */ + VpcConfig?: VpcConfig; + + /** + *

                      Specifies the path to the Amazon S3 bucket where you + * store + * model artifacts from the training jobs that the tuning job + * launches.

                      + */ + OutputDataConfig: OutputDataConfig | undefined; + + /** + *

                      The resources, + * including + * the compute instances and storage volumes, to use for the training + * jobs that the tuning job launches.

                      + *

                      Storage + * volumes store model artifacts and + * incremental + * states. Training algorithms might also use storage volumes for + * scratch + * space. If you want Amazon SageMaker to use the storage volume + * to store the training data, choose File as the + * TrainingInputMode in the algorithm specification. For distributed + * training algorithms, specify an instance count greater than 1.

                      + */ + ResourceConfig: ResourceConfig | undefined; + + /** + *

                      Specifies a limit to how long a model hyperparameter training job can run. It also + * specifies how long you are willing to wait for a managed spot training job to complete. + * When the job reaches the a limit, Amazon SageMaker ends the training job. Use this API to cap model + * training costs.

                      + */ + StoppingCondition: StoppingCondition | undefined; + + /** + *

                      Isolates the training container. No inbound or outbound network calls can be made, + * except for calls between peers within a training cluster for distributed training. If + * network isolation is used for training jobs that are configured to use a VPC, Amazon SageMaker + * downloads and uploads customer data and model artifacts through the specified VPC, but + * the training container does not have network access.

                      + */ + EnableNetworkIsolation?: boolean; + + /** + *

                      To encrypt all communications between ML compute instances in distributed training, + * choose True. Encryption provides greater security for distributed training, + * but training might take longer. How long it takes depends on the amount of communication + * between compute instances, especially if you use a deep learning algorithm in + * distributed training.

                      + */ + EnableInterContainerTrafficEncryption?: boolean; + + /** + *

                      A Boolean indicating whether managed spot training is enabled (True) or + * not (False).

                      + */ + EnableManagedSpotTraining?: boolean; + + /** + *

                      Contains information about the output location for managed spot training checkpoint + * data.

                      + */ + CheckpointConfig?: CheckpointConfig; +} + +export namespace HyperParameterTrainingJobDefinition { + export const filterSensitiveLog = (obj: HyperParameterTrainingJobDefinition): any => ({ + ...obj, + }); +} + +/** + *

                      A previously completed or stopped hyperparameter tuning job to be used as a starting + * point for a new hyperparameter tuning job.

                      + */ +export interface ParentHyperParameterTuningJob { + /** + *

                      The name of the hyperparameter tuning job to be used as a starting point for a new + * hyperparameter tuning job.

                      + */ + HyperParameterTuningJobName?: string; +} + +export namespace ParentHyperParameterTuningJob { + export const filterSensitiveLog = (obj: ParentHyperParameterTuningJob): any => ({ + ...obj, + }); +} + +export enum HyperParameterTuningJobWarmStartType { + IDENTICAL_DATA_AND_ALGORITHM = "IdenticalDataAndAlgorithm", + TRANSFER_LEARNING = "TransferLearning", +} + +/** + *

                      Specifies the configuration for a hyperparameter tuning job that uses one or more + * previous hyperparameter tuning jobs as a starting point. The results of previous tuning + * jobs are used to inform which combinations of hyperparameters to search over in the new + * tuning job.

                      + *

                      All training jobs launched by the new hyperparameter tuning job are evaluated by using + * the objective metric, and the training job that performs the best is compared to the + * best training jobs from the parent tuning jobs. From these, the training job that + * performs the best as measured by the objective metric is returned as the overall best + * training job.

                      + * + *

                      All training jobs launched by parent hyperparameter tuning jobs and the new + * hyperparameter tuning jobs count against the limit of training jobs for the tuning + * job.

                      + *
                      + */ +export interface HyperParameterTuningJobWarmStartConfig { + /** + *

                      An array of hyperparameter tuning jobs that are used as the starting point for the new + * hyperparameter tuning job. For more information about warm starting a hyperparameter + * tuning job, see Using a Previous + * Hyperparameter Tuning Job as a Starting Point.

                      + *

                      Hyperparameter tuning jobs created before October 1, 2018 cannot be used as parent + * jobs for warm start tuning jobs.

                      + */ + ParentHyperParameterTuningJobs: ParentHyperParameterTuningJob[] | undefined; + + /** + *

                      Specifies one of the following:

                      + *
                      + *
                      IDENTICAL_DATA_AND_ALGORITHM
                      + *
                      + *

                      The new hyperparameter tuning job uses the same input data and training + * image as the parent tuning jobs. You can change the hyperparameter ranges to + * search and the maximum number of training jobs that the hyperparameter + * tuning job launches. You cannot use a new version of the training algorithm, + * unless the changes in the new version do not affect the algorithm itself. + * For example, changes that improve logging or adding support for a different + * data format are allowed. You can also change hyperparameters from tunable to + * static, and from static to tunable, but the total number of static plus + * tunable hyperparameters must remain the same as it is in all parent jobs. + * The objective metric for the new tuning job must be the same as for all + * parent jobs.

                      + *
                      + *
                      TRANSFER_LEARNING
                      + *
                      + *

                      The new hyperparameter tuning job can include input data, hyperparameter + * ranges, maximum number of concurrent training jobs, and maximum number of + * training jobs that are different than those of its parent hyperparameter + * tuning jobs. The training image can also be a different version from the + * version used in the parent hyperparameter tuning job. You can also change + * hyperparameters from tunable to static, and from static to tunable, but the + * total number of static plus tunable hyperparameters must remain the same as + * it is in all parent jobs. The objective metric for the new tuning job must + * be the same as for all parent jobs.

                      + *
                      + *
                      + */ + WarmStartType: HyperParameterTuningJobWarmStartType | string | undefined; +} + +export namespace HyperParameterTuningJobWarmStartConfig { + export const filterSensitiveLog = (obj: HyperParameterTuningJobWarmStartConfig): any => ({ + ...obj, + }); +} + +export interface CreateHyperParameterTuningJobRequest { + /** + *

                      The name of the tuning job. This name is the prefix for the names of all training jobs + * that this tuning job launches. The name must be unique within the same AWS account and + * AWS Region. The name must have 1 to 32 characters. Valid characters are a-z, A-Z, + * 0-9, and : + = @ _ % - (hyphen). The name is not case sensitive.

                      + */ + HyperParameterTuningJobName: string | undefined; + + /** + *

                      The HyperParameterTuningJobConfig object that describes the tuning + * job, including the search strategy, the objective metric used to evaluate training jobs, + * ranges of parameters to search, and resource limits for the tuning job. For more + * information, see How + * Hyperparameter Tuning Works.

                      + */ + HyperParameterTuningJobConfig: HyperParameterTuningJobConfig | undefined; + + /** + *

                      The HyperParameterTrainingJobDefinition object that describes the + * training jobs that this tuning job launches, + * including + * static hyperparameters, input data configuration, output data configuration, resource + * configuration, and stopping condition.

                      + */ + TrainingJobDefinition?: HyperParameterTrainingJobDefinition; + + /** + *

                      A list of the HyperParameterTrainingJobDefinition objects launched + * for this tuning job.

                      + */ + TrainingJobDefinitions?: HyperParameterTrainingJobDefinition[]; + + /** + *

                      Specifies the configuration for starting the hyperparameter tuning job using one or + * more previous tuning jobs as a starting point. The results of previous tuning jobs are + * used to inform which combinations of hyperparameters to search over in the new tuning + * job.

                      + *

                      All training jobs launched by the new hyperparameter tuning job are evaluated by using + * the objective metric. If you specify IDENTICAL_DATA_AND_ALGORITHM as the + * WarmStartType value for the warm start configuration, the training job + * that performs the best in the new tuning job is compared to the best training jobs from + * the parent tuning jobs. From these, the training job that performs the best as measured + * by the objective metric is returned as the overall best training job.

                      + * + *

                      All training jobs launched by parent hyperparameter tuning jobs and the new + * hyperparameter tuning jobs count against the limit of training jobs for the tuning + * job.

                      + *
                      + */ + WarmStartConfig?: HyperParameterTuningJobWarmStartConfig; + + /** + *

                      An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                      + *

                      Tags that you specify for the tuning job are also added to all training jobs that the + * tuning job launches.

                      + */ + Tags?: Tag[]; +} + +export namespace CreateHyperParameterTuningJobRequest { + export const filterSensitiveLog = (obj: CreateHyperParameterTuningJobRequest): any => ({ + ...obj, + }); +} + +export interface CreateHyperParameterTuningJobResponse { + /** + *

                      The Amazon Resource Name (ARN) of the tuning job. Amazon SageMaker assigns an ARN to a + * hyperparameter tuning job when you create it.

                      + */ + HyperParameterTuningJobArn: string | undefined; +} + +export namespace CreateHyperParameterTuningJobResponse { + export const filterSensitiveLog = (obj: CreateHyperParameterTuningJobResponse): any => ({ + ...obj, + }); +} + +export interface CreateImageRequest { + /** + *

                      The description of the image.

                      + */ + Description?: string; + + /** + *

                      The display name of the image. If not provided, ImageName is displayed.

                      + */ + DisplayName?: string; + + /** + *

                      The name of the image. Must be unique to your account.

                      + */ + ImageName: string | undefined; + + /** + *

                      The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.

                      + */ + RoleArn: string | undefined; + + /** + *

                      A list of tags to apply to the image.

                      + */ + Tags?: Tag[]; +} + +export namespace CreateImageRequest { + export const filterSensitiveLog = (obj: CreateImageRequest): any => ({ + ...obj, + }); +} + +export interface CreateImageResponse { + /** + *

                      The Amazon Resource Name (ARN) of the image.

                      + */ + ImageArn?: string; +} + +export namespace CreateImageResponse { + export const filterSensitiveLog = (obj: CreateImageResponse): any => ({ + ...obj, + }); +} + +export interface CreateImageVersionRequest { + /** + *

                      The registry path of the container image to use as the starting point for this + * version. The path is an Amazon Container Registry (ECR) URI in the following format:

                      + *

                      + * .dkr.ecr..amazonaws.com/ + *

                      + */ + BaseImage: string | undefined; + + /** + *

                      A unique ID. If not specified, the AWS CLI and AWS SDKs, such as the SDK for Python + * (Boto3), add a unique value to the call.

                      + */ + ClientToken?: string; + + /** + *

                      The ImageName of the Image to create a version of.

                      + */ + ImageName: string | undefined; +} + +export namespace CreateImageVersionRequest { + export const filterSensitiveLog = (obj: CreateImageVersionRequest): any => ({ + ...obj, + }); +} + +export interface CreateImageVersionResponse { + /** + *

                      The Amazon Resource Name (ARN) of the image version.

                      + */ + ImageVersionArn?: string; +} + +export namespace CreateImageVersionResponse { + export const filterSensitiveLog = (obj: CreateImageVersionResponse): any => ({ + ...obj, + }); +} + +/** + *

                      Provided configuration information for the worker UI for a labeling job.

                      + */ +export interface UiConfig { + /** + *

                      The Amazon S3 bucket location of the UI template, or worker task template. This is the + * template used to render the worker UI and tools for labeling job tasks. For more + * information about the contents of a UI template, see Creating Your Custom + * Labeling Task Template.

                      + */ + UiTemplateS3Uri?: string; + + /** + *

                      The ARN of the worker task template used to render the worker UI and tools for + * labeling job tasks.

                      + *

                      Use this parameter when you are creating a labeling job for 3D point cloud and video + * fram labeling jobs. Use your labeling job task type to select one of the following ARN's + * and use it with this parameter when you create a labeling job. Replace + * aws-region with the AWS region you are creating your labeling job + * in.

                      + * + *

                      + * 3D Point Cloud HumanTaskUiArns + *

                      + * + *

                      Use this HumanTaskUiArn for 3D point cloud object detection and 3D point + * cloud object detection adjustment labeling jobs.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel - *

                        + * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection + *

                        *
                      • + *
                      + * + *

                      Use this HumanTaskUiArn for 3D point cloud object tracking and 3D point + * cloud object tracking adjustment labeling jobs.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel - *

                        + * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking + *

                        *
                      • + *
                      + * + *

                      Use this HumanTaskUiArn for 3D point cloud semantic segmentation and 3D + * point cloud semantic segmentation adjustment labeling jobs.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel - *

                        + * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation + *

                        *
                      • + *
                      + * + *

                      + * Video Frame HumanTaskUiArns + *

                      + * + *

                      Use this HumanTaskUiArn for video frame object detection and video frame + * object detection adjustment labeling jobs.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel - *

                        + * arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection + *

                        *
                      • + *
                      + * + *

                      Use this HumanTaskUiArn for video frame object tracking and video frame + * object tracking adjustment labeling jobs.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel - *

                        + * arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking + *

                        *
                      • *
                      + */ + HumanTaskUiArn?: string; +} + +export namespace UiConfig { + export const filterSensitiveLog = (obj: UiConfig): any => ({ + ...obj, + }); +} + +/** + *

                      Information required for human workers to complete a labeling task.

                      + */ +export interface HumanTaskConfig { + /** + *

                      The Amazon Resource Name (ARN) of the work team assigned to complete the tasks.

                      + */ + WorkteamArn: string | undefined; + + /** + *

                      Information about the user interface that workers use to complete the labeling + * task.

                      + */ + UiConfig: UiConfig | undefined; + + /** + *

                      The Amazon Resource Name (ARN) of a Lambda function that is run before a data object + * is sent to a human worker. Use this function to provide input to a custom labeling + * job.

                      + *

                      For built-in + * task types, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for + * PreHumanTaskLambdaArn. For custom labeling workflows, see Pre-annotation Lambda.

                      * - *

                      - * Named entity recognition - Groups similar selections and - * calculates aggregate boundaries, resolving to most-assigned label.

                      + * + * + *

                      + * Bounding box - Finds the most similar boxes from + * different workers based on the Jaccard index of the boxes.

                      *
                        *
                      • *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition + * arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition + * arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition + * arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox *

                        *
                      • *
                      * * - * - * - *

                      - * Video Classification - Use this task type when you need workers to classify videos using - * predefined labels that you specify. Workers are shown videos and are asked to choose one - * label for each video.

                      + *

                      + * Image classification - Uses a variant of the Expectation + * Maximization approach to estimate the true class of an image based on + * annotations from individual workers.

                      * *
                        *
                      • *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass + * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass + * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass + * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass *

                        *
                      • *
                      * - *

                      - * Video Frame Object Detection - Use this task type to - * have workers identify and locate objects in a sequence of video frames (images extracted - * from a video) using bounding boxes. For example, you can use this task to ask workers to - * identify and localize various objects in a series of video frames, such as cars, bikes, - * and pedestrians.

                      - * + *

                      + * Multi-label image classification - Uses a variant of the Expectation + * Maximization approach to estimate the true classes of an image based on + * annotations from individual workers.

                      *
                        *
                      • *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection - *

                        + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel + *

                        *
                      • *
                      * - *

                      - * Video Frame Object Tracking - Use this task type to - * have workers track the movement of objects in a sequence of video frames (images - * extracted from a video) using bounding boxes. For example, you can use this task to ask - * workers to track the movement of objects, such as cars, bikes, and pedestrians.

                      + *

                      + * Semantic segmentation - Treats each pixel in an image as + * a multi-class classification and treats pixel annotations from workers as + * "votes" for the correct label.

                      *
                        *
                      • *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking + * arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking + * arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking + * arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation *

                        *
                      • *
                      • - *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking - *

                        - *
                      • - *
                      - * - * - * - * - *

                      - * 3D Point Cloud Modalities - *

                      - *

                      Use the following pre-annotation lambdas for 3D point cloud labeling modality tasks. - * See 3D Point Cloud Task types - * to learn more.

                      - * + *

                      + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation + *

                      + *
                    • + *
                    * - *

                    - * 3D Point Cloud Object Detection - - * Use this task type when you want workers to classify objects in a 3D point cloud by - * drawing 3D cuboids around objects. For example, you can use this task type to ask workers - * to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians.

                    - *
                      + *

                      + * Text classification - Uses a variant of the Expectation + * Maximization approach to estimate the true class of text based on annotations + * from individual workers.

                      + *
                        *
                      • *

                        - * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass *

                        *
                      • *
                      • *

                        - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass *

                        *
                      • *
                      * - *

                      - * 3D Point Cloud Object Tracking - - * Use this task type when you want workers to draw 3D cuboids around objects - * that appear in a sequence of 3D point cloud frames. - * For example, you can use this task type to ask workers to track - * the movement of vehicles across multiple point cloud frames. - *

                      - *
                        + *

                        + * Multi-label text classification - Uses a variant of the + * Expectation Maximization approach to estimate the true classes of text based on + * annotations from individual workers.

                        + *
                          *
                        • *

                          - * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel + *

                          *
                        • *
                        * - * - * - *

                        - * 3D Point Cloud Semantic Segmentation - - * Use this task type when you want workers to create a point-level semantic segmentation masks by - * painting objects in a 3D point cloud using different colors where each color is assigned to one of - * the classes you specify.

                        + *

                        + * Named entity recognition - Groups similar selections and + * calculates aggregate boundaries, resolving to most-assigned label.

                        *
                          *
                        • *

                          - * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition *

                          *
                        • *
                        * + * + * + * *

                        - * Use the following ARNs for Label Verification and Adjustment Jobs - *

                        - *

                        Use label verification and adjustment jobs to review and adjust labels. To learn more, - * see Verify and Adjust Labels .

                        + * Video Classification - Use this task type when you need workers to classify videos using + * predefined labels that you specify. Workers are shown videos and are asked to choose one + * label for each video.

                        * - *

                        - * Bounding box verification - Uses a variant of the - * Expectation Maximization approach to estimate the true class of verification - * judgement for bounding box labels based on annotations from individual - * workers.

                        *
                          *
                        • *

                          - * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass + *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking - *

                          + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass + *

                          *
                        • *
                        * - *

                        - * Bounding box adjustment - Finds the most similar boxes - * from different workers based on the Jaccard index of the adjusted - * annotations.

                        + *

                        + * Video Frame Object Detection - Use this task type to + * have workers identify and locate objects in a sequence of video frames (images extracted + * from a video) using bounding boxes. For example, you can use this task to ask workers to + * identify and localize various objects in a series of video frames, such as cars, bikes, + * and pedestrians.

                        + * *
                          *
                        • *

                          - * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection *

                          *
                        • *
                        * - *

                        - * Semantic segmentation verification - Uses a variant of - * the Expectation Maximization approach to estimate the true class of verification - * judgment for semantic segmentation labels based on annotations from individual - * workers.

                        + *

                        + * Video Frame Object Tracking - Use this task type to + * have workers track the movement of objects in a sequence of video frames (images + * extracted from a video) using bounding boxes. For example, you can use this task to ask + * workers to track the movement of objects, such as cars, bikes, and pedestrians.

                        *
                          *
                        • *

                          - * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking *

                          *
                        • *
                        • *

                          - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking *

                          *
                        • *
                        * - *

                        - * Semantic segmentation adjustment - Treats each pixel in - * an image as a multi-class classification and treats pixel adjusted annotations - * from workers as "votes" for the correct label.

                        - *
                          + * + * + * + *

                          + * 3D Point Cloud Modalities + *

                          + *

                          Use the following pre-annotation lambdas for 3D point cloud labeling modality tasks. + * See 3D Point Cloud Task types + * to learn more.

                          + * + * + *

                          + * 3D Point Cloud Object Detection - + * Use this task type when you want workers to classify objects in a 3D point cloud by + * drawing 3D cuboids around objects. For example, you can use this task type to ask workers + * to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians.

                          + *
                            *
                          • *

                            - * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          • *

                            - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection *

                            *
                          • *
                          * - * - * - * *

                          - * Video Frame Object Detection Adjustment - - * Use this task type when you want workers to adjust bounding boxes that workers have added - * to video frames to classify and localize objects in a sequence of video frames.

                          - * - *
                            + * 3D Point Cloud Object Tracking - + * Use this task type when you want workers to draw 3D cuboids around objects + * that appear in a sequence of 3D point cloud frames. + * For example, you can use this task type to ask workers to track + * the movement of vehicles across multiple point cloud frames. + *

                            + *
                              *
                            • *

                              - * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection - *

                              + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking *

                              *
                            • *
                            * + * + * *

                            - * Video Frame Object Tracking Adjustment - - * Use this task type when you want workers to adjust bounding boxes that workers have added - * to video frames to track object movement across a sequence of video frames.

                            + * 3D Point Cloud Semantic Segmentation - + * Use this task type when you want workers to create a point-level semantic segmentation masks by + * painting objects in a 3D point cloud using different colors where each color is assigned to one of + * the classes you specify.

                            *
                              *
                            • *

                              - * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation *

                              *
                            • *
                            * - * - * - * *

                            - * 3D point cloud object detection adjustment - Adjust - * 3D cuboids in a point cloud frame.

                            + * Use the following ARNs for Label Verification and Adjustment Jobs + *

                            + *

                            Use label verification and adjustment jobs to review and adjust labels. To learn more, + * see Verify and Adjust Labels .

                            + * + *

                            + * Bounding box verification - Uses a variant of the + * Expectation Maximization approach to estimate the true class of verification + * judgement for bounding box labels based on annotations from individual + * workers.

                            *
                              *
                            • *

                              - * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking *

                              *
                            • *
                            * - *

                            - * 3D point cloud object tracking adjustment - Adjust 3D - * cuboids across a sequence of point cloud frames.

                            + *

                            + * Bounding box adjustment - Finds the most similar boxes + * from different workers based on the Jaccard index of the adjusted + * annotations.

                            *
                              *
                            • *

                              - * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox + *

                              + *
                            • + *
                            + * + *

                            + * Semantic segmentation verification - Uses a variant of + * the Expectation Maximization approach to estimate the true class of verification + * judgment for semantic segmentation labels based on annotations from individual + * workers.

                            + *
                              + *
                            • + *

                              + * arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking - *

                              + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • - *
                            - * - *

                            - * 3D point cloud semantic segmentation adjustment - - * Adjust semantic segmentation masks in a 3D point cloud.

                            - *
                              *
                            • *

                              - * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation + *

                              *
                            • + *
                            + * + *

                            + * Semantic segmentation adjustment - Treats each pixel in + * an image as a multi-class classification and treats pixel adjusted annotations + * from workers as "votes" for the correct label.

                            + *
                              *
                            • *

                              - * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation + *

                              *
                            • *
                            • *

                              - * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation - *

                              - *
                            • - *
                            - */ - PreHumanTaskLambdaArn: string | undefined; - - /** - *

                            Keywords used to describe the task so that workers on Amazon Mechanical Turk can - * discover the task.

                            - */ - TaskKeywords?: string[]; - - /** - *

                            A title for the task for your human workers.

                            - */ - TaskTitle: string | undefined; - - /** - *

                            A description of the task for your human workers.

                            - */ - TaskDescription: string | undefined; - - /** - *

                            The number of human workers that will label an object.

                            - */ - NumberOfHumanWorkersPerDataObject: number | undefined; - - /** - *

                            The amount of time that a worker has to complete a task.

                            - */ - TaskTimeLimitInSeconds: number | undefined; - - /** - *

                            The length of time that a task remains available for labeling by human workers. - * If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours - * (43200). The default value is 864000 seconds (10 days). For private and vendor workforces, the maximum is as - * listed.

                            - */ - TaskAvailabilityLifetimeInSeconds?: number; - - /** - *

                            Defines the maximum number of data objects that can be labeled by human workers at the - * same time. Also referred to as batch size. Each object may have more than one worker at one time. - * The default value is 1000 objects.

                            - */ - MaxConcurrentTaskCount?: number; - - /** - *

                            Configures how labels are consolidated across human workers.

                            - */ - AnnotationConsolidationConfig: AnnotationConsolidationConfig | undefined; - - /** - *

                            The price that you pay for each task performed by an Amazon Mechanical Turk worker.

                            - */ - PublicWorkforceTaskPrice?: PublicWorkforceTaskPrice; -} - -export namespace HumanTaskConfig { - export const filterSensitiveLog = (obj: HumanTaskConfig): any => ({ - ...obj, - }); -} - -/** - *

                            Attributes of the data specified by the customer. Use these to describe the data to be - * labeled.

                            - */ -export interface LabelingJobDataAttributes { - /** - *

                            Declares that your content is free of personally identifiable information or adult - * content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task - * based on this information.

                            - */ - ContentClassifiers?: (ContentClassifier | string)[]; -} - -export namespace LabelingJobDataAttributes { - export const filterSensitiveLog = (obj: LabelingJobDataAttributes): any => ({ - ...obj, - }); -} - -/** - *

                            The Amazon S3 location of the input data objects.

                            - */ -export interface LabelingJobS3DataSource { - /** - *

                            The Amazon S3 location of the manifest file that describes the input data objects.

                            - */ - ManifestS3Uri: string | undefined; -} - -export namespace LabelingJobS3DataSource { - export const filterSensitiveLog = (obj: LabelingJobS3DataSource): any => ({ - ...obj, - }); -} - -/** - *

                            An Amazon SNS data source used for streaming labeling jobs.

                            - */ -export interface LabelingJobSnsDataSource { - /** - *

                            The Amazon SNS input topic Amazon Resource Name (ARN). Specify the ARN of the input topic - * you will use to send new data objects to a streaming labeling job.

                            - *

                            If you specify an input topic for SnsTopicArn in InputConfig, - * you must specify a value for SnsTopicArn in OutputConfig.

                            - */ - SnsTopicArn: string | undefined; -} - -export namespace LabelingJobSnsDataSource { - export const filterSensitiveLog = (obj: LabelingJobSnsDataSource): any => ({ - ...obj, - }); -} - -/** - *

                            Provides information about the location of input data.

                            - *

                            You must specify at least one of the following: S3DataSource or SnsDataSource.

                            - *

                            Use SnsDataSource to specify an SNS input topic - * for a streaming labeling job. If you do not specify - * and SNS input topic ARN, Ground Truth will create a one-time labeling job.

                            - *

                            Use S3DataSource to specify an input - * manifest file for both streaming and one-time labeling jobs. - * Adding an S3DataSource is optional if you use SnsDataSource to create a streaming labeling job.

                            - */ -export interface LabelingJobDataSource { - /** - *

                            The Amazon S3 location of the input data objects.

                            - */ - S3DataSource?: LabelingJobS3DataSource; - - /** - *

                            An Amazon SNS data source used for streaming labeling jobs.

                            - */ - SnsDataSource?: LabelingJobSnsDataSource; -} - -export namespace LabelingJobDataSource { - export const filterSensitiveLog = (obj: LabelingJobDataSource): any => ({ - ...obj, - }); -} - -/** - *

                            Input configuration information for a labeling job.

                            - */ -export interface LabelingJobInputConfig { - /** - *

                            The location of the input data.

                            - */ - DataSource: LabelingJobDataSource | undefined; - - /** - *

                            Attributes of the data specified by the customer.

                            - */ - DataAttributes?: LabelingJobDataAttributes; -} - -export namespace LabelingJobInputConfig { - export const filterSensitiveLog = (obj: LabelingJobInputConfig): any => ({ - ...obj, - }); -} - -/** - *

                            Provides configuration information for labeling jobs.

                            - */ -export interface LabelingJobResourceConfig { - /** - *

                            The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume - * attached to the ML compute instance(s) that run the training job. The - * VolumeKmsKeyId can be any of the following formats:

                            - *
                              + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation + *

                              + * *
                            • - *

                              // KMS Key ID

                              *

                              - * "1234abcd-12ab-34cd-56ef-1234567890ab" + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation *

                              *
                            • *
                            • - *

                              // Amazon Resource Name (ARN) of a KMS Key

                              *

                              - * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation + *

                              + *
                            • + *
                            • + *

                              + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation *

                              *
                            • *
                            - */ - VolumeKmsKeyId?: string; -} - -export namespace LabelingJobResourceConfig { - export const filterSensitiveLog = (obj: LabelingJobResourceConfig): any => ({ - ...obj, - }); -} - -/** - *

                            Provides configuration information for auto-labeling of your data objects. A - * LabelingJobAlgorithmsConfig object must be supplied in order to use - * auto-labeling.

                            - */ -export interface LabelingJobAlgorithmsConfig { - /** - *

                            Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. You - * must select one of the following ARNs:

                            + * + * + * + * + *

                            + * Video Frame Object Detection Adjustment - + * Use this task type when you want workers to adjust bounding boxes that workers have added + * to video frames to classify and localize objects in a sequence of video frames.

                            + * *
                              *
                            • *

                              - * Image classification + * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection *

                              + *
                            • + *
                            • *

                              - * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification + * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection *

                              *
                            • *
                            • *

                              - * Text classification + * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection *

                              + *
                            • + *
                            • *

                              - * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection *

                              *
                            • *
                            • *

                              - * Object detection + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection *

                              + *
                            • + *
                            • *

                              - * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection *

                              *
                            • *
                            • *

                              - * Semantic Segmentation + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection *

                              + *
                            • + *
                            • *

                              - * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection *

                              *
                            • - *
                            - */ - LabelingJobAlgorithmSpecificationArn: string | undefined; - - /** - *

                            At the end of an auto-label job Ground Truth sends the Amazon Resource Name (ARN) of the final - * model used for auto-labeling. You can use this model as the starting point for - * subsequent similar jobs by providing the ARN of the model here.

                            - */ - InitialActiveLearningModelArn?: string; - - /** - *

                            Provides configuration information for a labeling job.

                            - */ - LabelingJobResourceConfig?: LabelingJobResourceConfig; -} - -export namespace LabelingJobAlgorithmsConfig { - export const filterSensitiveLog = (obj: LabelingJobAlgorithmsConfig): any => ({ - ...obj, - }); -} - -/** - *

                            Output configuration information for a labeling job.

                            - */ -export interface LabelingJobOutputConfig { - /** - *

                            The Amazon S3 location to write output data.

                            - */ - S3OutputPath: string | undefined; - - /** - *

                            The AWS Key Management Service ID of the key used to encrypt the output data, if any.

                            - *

                            If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must - * include permissions to call kms:Encrypt. If you don't provide a KMS key ID, - * Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side - * encryption with KMS-managed keys for LabelingJobOutputConfig. If you use a - * bucket policy with an s3:PutObject permission that only allows objects with - * server-side encryption, set the condition key of - * s3:x-amz-server-side-encryption to "aws:kms". For more - * information, see KMS-Managed Encryption Keys in the Amazon Simple Storage Service Developer - * Guide. - *

                            - *

                            The KMS key policy must grant permission to the IAM role that you specify in your - * CreateLabelingJob request. For more information, see Using - * Key Policies in AWS KMS in the AWS Key Management Service Developer - * Guide.

                            - */ - KmsKeyId?: string; - - /** - *

                            An Amazon Simple Notification Service (Amazon SNS) output topic ARN.

                            - *

                            When workers complete labeling tasks, Ground Truth will send - * labeling task output data to the SNS output topic you specify here.

                            - *

                            You must provide a value for this parameter - * if you provide an Amazon SNS input topic in SnsDataSource - * in InputConfig.

                            - */ - SnsTopicArn?: string; -} - -export namespace LabelingJobOutputConfig { - export const filterSensitiveLog = (obj: LabelingJobOutputConfig): any => ({ - ...obj, - }); -} - -/** - *

                            A set of conditions for stopping a labeling job. If any of the conditions are met, the - * job is automatically stopped. You can use these conditions to control the cost of data - * labeling.

                            - * - *

                            Labeling jobs fail after 30 days with an appropriate client error message.

                            - *
                            - */ -export interface LabelingJobStoppingConditions { - /** - *

                            The maximum number of objects that can be labeled by human workers.

                            - */ - MaxHumanLabeledObjectCount?: number; - - /** - *

                            The maximum number of input data objects that should be labeled.

                            - */ - MaxPercentageOfInputDatasetLabeled?: number; -} - -export namespace LabelingJobStoppingConditions { - export const filterSensitiveLog = (obj: LabelingJobStoppingConditions): any => ({ - ...obj, - }); -} - -export interface CreateLabelingJobRequest { - /** - *

                            The name of the labeling job. This name is used to identify the job in a list of - * labeling jobs.

                            - */ - LabelingJobName: string | undefined; - - /** - *

                            The attribute name to use for the label in the output manifest file. This is the key - * for the key/value pair formed with the label that a worker assigns to the object. The - * name can't end with "-metadata". If you are running a semantic segmentation labeling - * job, the attribute name must end with "-ref". If you are running any other kind of - * labeling job, the attribute name must not end with "-ref".

                            - */ - LabelAttributeName: string | undefined; - - /** - *

                            Input data for the labeling job, such as the Amazon S3 location of the data objects and the - * location of the manifest file that describes the data objects.

                            - */ - InputConfig: LabelingJobInputConfig | undefined; - - /** - *

                            The location of the output data and the AWS Key Management Service key ID for the key used to encrypt - * the output data, if any.

                            - */ - OutputConfig: LabelingJobOutputConfig | undefined; - - /** - *

                            The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf - * during data labeling. You must grant this role the necessary permissions so that Amazon SageMaker - * can successfully complete data labeling.

                            - */ - RoleArn: string | undefined; - - /** - *

                            The S3 URI of the file that defines the categories used to label the data - * objects.

                            - *

                            For 3D point cloud task types, see Create a - * Labeling Category Configuration File for 3D Point Cloud Labeling Jobs.

                            - *

                            For all other built-in task types and custom - * tasks, your label category configuration file must be a JSON file in the - * following format. Identify the labels you want to use by replacing label_1, - * label_2,...,label_n with your label - * categories.

                            - *

                            - * { - *

                            - *

                            - * "document-version": "2018-11-28" - *

                            - *

                            - * "labels": [ - *

                            - *

                            - * { - *

                            - *

                            - * "label": "label_1" - *

                            - *

                            - * }, - *

                            - *

                            - * { - *

                            - *

                            - * "label": "label_2" - *

                            - *

                            - * }, - *

                            - *

                            - * ... - *

                            - *

                            - * { - *

                            - *

                            - * "label": "label_n" - *

                            + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection + *

                            + *
                          • + *
                          + * *

                          - * } - *

                          + * Video Frame Object Tracking Adjustment - + * Use this task type when you want workers to adjust bounding boxes that workers have added + * to video frames to track object movement across a sequence of video frames.

                          + *
                            + *
                          • + *

                            + * arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking + *

                            + *
                          • + *
                          + * + * + * + * *

                          - * ] - *

                          + * 3D point cloud object detection adjustment - Adjust + * 3D cuboids in a point cloud frame.

                          + *
                            + *
                          • + *

                            + * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection + *

                            + *
                          • + *
                          + * *

                          - * } - *

                          - */ - LabelCategoryConfigS3Uri?: string; - - /** - *

                          A set of conditions for stopping the labeling job. If any of the conditions are met, - * the job is automatically stopped. You can use these conditions to control the cost of - * data labeling.

                          - */ - StoppingConditions?: LabelingJobStoppingConditions; - - /** - *

                          Configures the information required to perform automated data labeling.

                          - */ - LabelingJobAlgorithmsConfig?: LabelingJobAlgorithmsConfig; - - /** - *

                          Configures the labeling task and how it is presented to workers; including, but not limited to price, keywords, and batch size (task count).

                          - */ - HumanTaskConfig: HumanTaskConfig | undefined; - - /** - *

                          An array of key/value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management - * User Guide.

                          - */ - Tags?: Tag[]; -} - -export namespace CreateLabelingJobRequest { - export const filterSensitiveLog = (obj: CreateLabelingJobRequest): any => ({ - ...obj, - }); -} - -export interface CreateLabelingJobResponse { - /** - *

                          The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the - * labeling job.

                          - */ - LabelingJobArn: string | undefined; -} - -export namespace CreateLabelingJobResponse { - export const filterSensitiveLog = (obj: CreateLabelingJobResponse): any => ({ - ...obj, - }); -} - -export interface CreateModelInput { - /** - *

                          The name of the new model.

                          - */ - ModelName: string | undefined; - - /** - *

                          The location of the primary docker image containing inference code, associated - * artifacts, and custom environment map that the inference code uses when the model is - * deployed for predictions.

                          - */ - PrimaryContainer?: ContainerDefinition; - - /** - *

                          Specifies the containers in the inference pipeline.

                          - */ - Containers?: ContainerDefinition[]; - - /** - *

                          The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model - * artifacts and docker image for deployment on ML compute instances or for batch transform - * jobs. Deploying on ML compute instances is part of model hosting. For more information, - * see Amazon SageMaker - * Roles.

                          - * - *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the - * iam:PassRole permission.

                          - *
                          + * 3D point cloud object tracking adjustment - Adjust 3D + * cuboids across a sequence of point cloud frames.

                          + *
                            + *
                          • + *

                            + * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking + *

                            + *
                          • + *
                          + * + *

                          + * 3D point cloud semantic segmentation adjustment - + * Adjust semantic segmentation masks in a 3D point cloud.

                          + *
                            + *
                          • + *

                            + * arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          • + *

                            + * arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation + *

                            + *
                          • + *
                          */ - ExecutionRoleArn: string | undefined; + PreHumanTaskLambdaArn: string | undefined; /** - *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                          + *

                          Keywords used to describe the task so that workers on Amazon Mechanical Turk can + * discover the task.

                          */ - Tags?: Tag[]; + TaskKeywords?: string[]; /** - *

                          A VpcConfig object that specifies the VPC that you want your model - * to connect to. Control access to and from your model container by configuring the VPC. - * VpcConfig is used in hosting services and in batch transform. For more - * information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Data in Batch - * Transform Jobs by Using an Amazon Virtual Private Cloud.

                          + *

                          A title for the task for your human workers.

                          */ - VpcConfig?: VpcConfig; + TaskTitle: string | undefined; /** - *

                          Isolates the model container. No inbound or outbound network calls can be made to or - * from the model container.

                          + *

                          A description of the task for your human workers.

                          */ - EnableNetworkIsolation?: boolean; -} - -export namespace CreateModelInput { - export const filterSensitiveLog = (obj: CreateModelInput): any => ({ - ...obj, - }); -} + TaskDescription: string | undefined; -export interface CreateModelOutput { /** - *

                          The ARN of the model created in Amazon SageMaker.

                          + *

                          The number of human workers that will label an object.

                          */ - ModelArn: string | undefined; -} - -export namespace CreateModelOutput { - export const filterSensitiveLog = (obj: CreateModelOutput): any => ({ - ...obj, - }); -} - -export enum ModelApprovalStatus { - APPROVED = "Approved", - PENDING_MANUAL_APPROVAL = "PendingManualApproval", - REJECTED = "Rejected", -} + NumberOfHumanWorkersPerDataObject: number | undefined; -/** - *

                          Contains explainability metrics for a model.

                          - */ -export interface Explainability { /** - *

                          The explainability report for a model.

                          + *

                          The amount of time that a worker has to complete a task.

                          */ - Report?: MetricsSource; -} - -export namespace Explainability { - export const filterSensitiveLog = (obj: Explainability): any => ({ - ...obj, - }); -} + TaskTimeLimitInSeconds: number | undefined; -/** - *

                          Data quality constraints and statistics for a model.

                          - */ -export interface ModelDataQuality { /** - *

                          Data quality statistics for a model.

                          + *

                          The length of time that a task remains available for labeling by human workers. + * If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours + * (43200). The default value is 864000 seconds (10 days). For private and vendor workforces, the maximum is as + * listed.

                          */ - Statistics?: MetricsSource; + TaskAvailabilityLifetimeInSeconds?: number; /** - *

                          Data quality constraints for a model.

                          + *

                          Defines the maximum number of data objects that can be labeled by human workers at the + * same time. Also referred to as batch size. Each object may have more than one worker at one time. + * The default value is 1000 objects.

                          */ - Constraints?: MetricsSource; -} - -export namespace ModelDataQuality { - export const filterSensitiveLog = (obj: ModelDataQuality): any => ({ - ...obj, - }); -} + MaxConcurrentTaskCount?: number; -/** - *

                          Model quality statistics and constraints.

                          - */ -export interface ModelQuality { /** - *

                          Model quality statistics.

                          + *

                          Configures how labels are consolidated across human workers.

                          */ - Statistics?: MetricsSource; + AnnotationConsolidationConfig: AnnotationConsolidationConfig | undefined; /** - *

                          Model quality constraints.

                          + *

                          The price that you pay for each task performed by an Amazon Mechanical Turk worker.

                          */ - Constraints?: MetricsSource; + PublicWorkforceTaskPrice?: PublicWorkforceTaskPrice; } -export namespace ModelQuality { - export const filterSensitiveLog = (obj: ModelQuality): any => ({ +export namespace HumanTaskConfig { + export const filterSensitiveLog = (obj: HumanTaskConfig): any => ({ ...obj, }); } /** - *

                          Contains metrics captured from a model.

                          + *

                          Attributes of the data specified by the customer. Use these to describe the data to be + * labeled.

                          */ -export interface ModelMetrics { - /** - *

                          Metrics that measure the quality of a model.

                          - */ - ModelQuality?: ModelQuality; - - /** - *

                          Metrics that measure the quality of the input data for a model.

                          - */ - ModelDataQuality?: ModelDataQuality; - - /** - *

                          Metrics that measure bais in a model.

                          - */ - Bias?: Bias; - +export interface LabelingJobDataAttributes { /** - *

                          Metrics that help explain a model.

                          + *

                          Declares that your content is free of personally identifiable information or adult + * content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task + * based on this information.

                          */ - Explainability?: Explainability; + ContentClassifiers?: (ContentClassifier | string)[]; } -export namespace ModelMetrics { - export const filterSensitiveLog = (obj: ModelMetrics): any => ({ +export namespace LabelingJobDataAttributes { + export const filterSensitiveLog = (obj: LabelingJobDataAttributes): any => ({ ...obj, }); } /** - *

                          Specifies an algorithm that was used to create the model package. The algorithm must - * be either an algorithm resource in your Amazon SageMaker account or an algorithm in AWS Marketplace that you - * are subscribed to.

                          + *

                          The Amazon S3 location of the input data objects.

                          */ -export interface SourceAlgorithm { - /** - *

                          The Amazon S3 path where the model artifacts, which result from model training, are stored. - * This path must point to a single gzip compressed tar archive - * (.tar.gz suffix).

                          - * - *

                          The model artifacts must be in an S3 bucket that is in the same region as the - * algorithm.

                          - *
                          - */ - ModelDataUrl?: string; - +export interface LabelingJobS3DataSource { /** - *

                          The name of an algorithm that was used to create the model package. The algorithm must - * be either an algorithm resource in your Amazon SageMaker account or an algorithm in AWS Marketplace that you - * are subscribed to.

                          + *

                          The Amazon S3 location of the manifest file that describes the input data objects.

                          */ - AlgorithmName: string | undefined; + ManifestS3Uri: string | undefined; } -export namespace SourceAlgorithm { - export const filterSensitiveLog = (obj: SourceAlgorithm): any => ({ +export namespace LabelingJobS3DataSource { + export const filterSensitiveLog = (obj: LabelingJobS3DataSource): any => ({ ...obj, }); } /** - *

                          A list of algorithms that were used to create a model package.

                          + *

                          An Amazon SNS data source used for streaming labeling jobs.

                          */ -export interface SourceAlgorithmSpecification { +export interface LabelingJobSnsDataSource { /** - *

                          A list of the algorithms that were used to create a model package.

                          + *

                          The Amazon SNS input topic Amazon Resource Name (ARN). Specify the ARN of the input topic + * you will use to send new data objects to a streaming labeling job.

                          + *

                          If you specify an input topic for SnsTopicArn in InputConfig, + * you must specify a value for SnsTopicArn in OutputConfig.

                          */ - SourceAlgorithms: SourceAlgorithm[] | undefined; + SnsTopicArn: string | undefined; } -export namespace SourceAlgorithmSpecification { - export const filterSensitiveLog = (obj: SourceAlgorithmSpecification): any => ({ +export namespace LabelingJobSnsDataSource { + export const filterSensitiveLog = (obj: LabelingJobSnsDataSource): any => ({ ...obj, }); } /** - *

                          Contains data, such as the inputs and targeted instance types that are used in the - * process of validating the model package.

                          - *

                          The data provided in the validation profile is made available to your buyers on AWS - * Marketplace.

                          + *

                          Provides information about the location of input data.

                          + *

                          You must specify at least one of the following: S3DataSource or SnsDataSource.

                          + *

                          Use SnsDataSource to specify an SNS input topic + * for a streaming labeling job. If you do not specify + * and SNS input topic ARN, Ground Truth will create a one-time labeling job.

                          + *

                          Use S3DataSource to specify an input + * manifest file for both streaming and one-time labeling jobs. + * Adding an S3DataSource is optional if you use SnsDataSource to create a streaming labeling job.

                          */ -export interface ModelPackageValidationProfile { +export interface LabelingJobDataSource { /** - *

                          The name of the profile for the model package.

                          + *

                          The Amazon S3 location of the input data objects.

                          */ - ProfileName: string | undefined; + S3DataSource?: LabelingJobS3DataSource; /** - *

                          The TransformJobDefinition object that describes the transform job used - * for the validation of the model package.

                          + *

                          An Amazon SNS data source used for streaming labeling jobs.

                          */ - TransformJobDefinition: TransformJobDefinition | undefined; + SnsDataSource?: LabelingJobSnsDataSource; } -export namespace ModelPackageValidationProfile { - export const filterSensitiveLog = (obj: ModelPackageValidationProfile): any => ({ +export namespace LabelingJobDataSource { + export const filterSensitiveLog = (obj: LabelingJobDataSource): any => ({ ...obj, }); } /** - *

                          Specifies batch transform jobs that Amazon SageMaker runs to validate your model package.

                          + *

                          Input configuration information for a labeling job.

                          */ -export interface ModelPackageValidationSpecification { +export interface LabelingJobInputConfig { /** - *

                          The IAM roles to be used for the validation of the model package.

                          + *

                          The location of the input data.

                          */ - ValidationRole: string | undefined; + DataSource: LabelingJobDataSource | undefined; /** - *

                          An array of ModelPackageValidationProfile objects, each of which - * specifies a batch transform job that Amazon SageMaker runs to validate your model package.

                          + *

                          Attributes of the data specified by the customer.

                          */ - ValidationProfiles: ModelPackageValidationProfile[] | undefined; + DataAttributes?: LabelingJobDataAttributes; } -export namespace ModelPackageValidationSpecification { - export const filterSensitiveLog = (obj: ModelPackageValidationSpecification): any => ({ +export namespace LabelingJobInputConfig { + export const filterSensitiveLog = (obj: LabelingJobInputConfig): any => ({ ...obj, }); } -export interface CreateModelPackageInput { - /** - *

                          The name of the model package. The name must have 1 to 63 characters. Valid characters - * are a-z, A-Z, 0-9, and - (hyphen).

                          - *

                          This parameter is required for unversioned models. It is not applicable to versioned - * models.

                          - */ - ModelPackageName?: string; - - /** - *

                          The name of the model group that this model version belongs to.

                          - *

                          This parameter is required for versioned models, and does not apply to unversioned - * models.

                          - */ - ModelPackageGroupName?: string; - - /** - *

                          A description of the model package.

                          - */ - ModelPackageDescription?: string; - +/** + *

                          Provides configuration information for labeling jobs.

                          + */ +export interface LabelingJobResourceConfig { /** - *

                          Specifies details about inference jobs that can be run with models based on this model - * package, including the following:

                          + *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume + * attached to the ML compute instance(s) that run the training job. The + * VolumeKmsKeyId can be any of the following formats:

                          *
                            *
                          • - *

                            The Amazon ECR paths of containers that contain the inference code and model - * artifacts.

                            - *
                          • - *
                          • - *

                            The instance types that the model package supports for transform jobs and - * real-time endpoints used for inference.

                            + *

                            // KMS Key ID

                            + *

                            + * "1234abcd-12ab-34cd-56ef-1234567890ab" + *

                            *
                          • *
                          • - *

                            The input and output content formats that the model package supports for - * inference.

                            + *

                            // Amazon Resource Name (ARN) of a KMS Key

                            + *

                            + * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" + *

                            *
                          • *
                          */ - InferenceSpecification?: InferenceSpecification; - - /** - *

                          Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the - * model package.

                          - */ - ValidationSpecification?: ModelPackageValidationSpecification; - - /** - *

                          Details about the algorithm that was used to create the model package.

                          - */ - SourceAlgorithmSpecification?: SourceAlgorithmSpecification; - - /** - *

                          Whether to certify the model package for listing on AWS Marketplace.

                          - *

                          This parameter is optional for unversioned models, and does not apply to versioned - * models.

                          - */ - CertifyForMarketplace?: boolean; - - /** - *

                          A list of key value pairs associated with the model. For more information, see Tagging AWS - * resources in the AWS General Reference Guide.

                          - */ - Tags?: Tag[]; - - /** - *

                          Whether the model is approved for deployment.

                          - *

                          This parameter is optional for versioned models, and does not apply to unversioned - * models.

                          - *

                          For versioned models, the value of this parameter must be set to Approved - * to deploy the model.

                          - */ - ModelApprovalStatus?: ModelApprovalStatus | string; - - /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          - */ - MetadataProperties?: MetadataProperties; - - /** - *

                          A structure that contains model metrics reports.

                          - */ - ModelMetrics?: ModelMetrics; - - /** - *

                          A unique token that guarantees that the call to this API is idempotent.

                          - */ - ClientToken?: string; -} - -export namespace CreateModelPackageInput { - export const filterSensitiveLog = (obj: CreateModelPackageInput): any => ({ - ...obj, - }); -} - -export interface CreateModelPackageOutput { - /** - *

                          The Amazon Resource Name (ARN) of the new model package.

                          - */ - ModelPackageArn: string | undefined; + VolumeKmsKeyId?: string; } -export namespace CreateModelPackageOutput { - export const filterSensitiveLog = (obj: CreateModelPackageOutput): any => ({ +export namespace LabelingJobResourceConfig { + export const filterSensitiveLog = (obj: LabelingJobResourceConfig): any => ({ ...obj, }); } -export interface CreateModelPackageGroupInput { +/** + *

                          Provides configuration information for auto-labeling of your data objects. A + * LabelingJobAlgorithmsConfig object must be supplied in order to use + * auto-labeling.

                          + */ +export interface LabelingJobAlgorithmsConfig { /** - *

                          The name of the model group.

                          + *

                          Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. You + * must select one of the following ARNs:

                          + *
                            + *
                          • + *

                            + * Image classification + *

                            + *

                            + * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/image-classification + *

                            + *
                          • + *
                          • + *

                            + * Text classification + *

                            + *

                            + * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/text-classification + *

                            + *
                          • + *
                          • + *

                            + * Object detection + *

                            + *

                            + * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/object-detection + *

                            + *
                          • + *
                          • + *

                            + * Semantic Segmentation + *

                            + *

                            + * arn:aws:sagemaker:region:027400017018:labeling-job-algorithm-specification/semantic-segmentation + *

                            + *
                          • + *
                          */ - ModelPackageGroupName: string | undefined; + LabelingJobAlgorithmSpecificationArn: string | undefined; /** - *

                          A description for the model group.

                          + *

                          At the end of an auto-label job Ground Truth sends the Amazon Resource Name (ARN) of the final + * model used for auto-labeling. You can use this model as the starting point for + * subsequent similar jobs by providing the ARN of the model here.

                          */ - ModelPackageGroupDescription?: string; + InitialActiveLearningModelArn?: string; /** - *

                          A list of key value pairs associated with the model group. For more information, see - * Tagging AWS - * resources in the AWS General Reference Guide.

                          + *

                          Provides configuration information for a labeling job.

                          */ - Tags?: Tag[]; + LabelingJobResourceConfig?: LabelingJobResourceConfig; } -export namespace CreateModelPackageGroupInput { - export const filterSensitiveLog = (obj: CreateModelPackageGroupInput): any => ({ +export namespace LabelingJobAlgorithmsConfig { + export const filterSensitiveLog = (obj: LabelingJobAlgorithmsConfig): any => ({ ...obj, }); } -export interface CreateModelPackageGroupOutput { +/** + *

                          Output configuration information for a labeling job.

                          + */ +export interface LabelingJobOutputConfig { /** - *

                          The Amazon Resource Name (ARN) of the model group.

                          + *

                          The Amazon S3 location to write output data.

                          */ - ModelPackageGroupArn: string | undefined; -} - -export namespace CreateModelPackageGroupOutput { - export const filterSensitiveLog = (obj: CreateModelPackageGroupOutput): any => ({ - ...obj, - }); -} + S3OutputPath: string | undefined; -/** - *

                          The constraints resource for a monitoring job.

                          - */ -export interface MonitoringConstraintsResource { /** - *

                          The Amazon S3 URI for the constraints resource.

                          + *

                          The AWS Key Management Service ID of the key used to encrypt the output data, if any.

                          + *

                          If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must + * include permissions to call kms:Encrypt. If you don't provide a KMS key ID, + * Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side + * encryption with KMS-managed keys for LabelingJobOutputConfig. If you use a + * bucket policy with an s3:PutObject permission that only allows objects with + * server-side encryption, set the condition key of + * s3:x-amz-server-side-encryption to "aws:kms". For more + * information, see KMS-Managed Encryption Keys in the Amazon Simple Storage Service Developer + * Guide. + *

                          + *

                          The KMS key policy must grant permission to the IAM role that you specify in your + * CreateLabelingJob request. For more information, see Using + * Key Policies in AWS KMS in the AWS Key Management Service Developer + * Guide.

                          */ - S3Uri?: string; -} - -export namespace MonitoringConstraintsResource { - export const filterSensitiveLog = (obj: MonitoringConstraintsResource): any => ({ - ...obj, - }); -} + KmsKeyId?: string; -/** - *

                          The statistics resource for a monitoring job.

                          - */ -export interface MonitoringStatisticsResource { /** - *

                          The Amazon S3 URI for the statistics resource.

                          + *

                          An Amazon Simple Notification Service (Amazon SNS) output topic ARN.

                          + *

                          When workers complete labeling tasks, Ground Truth will send + * labeling task output data to the SNS output topic you specify here.

                          + *

                          You must provide a value for this parameter + * if you provide an Amazon SNS input topic in SnsDataSource + * in InputConfig.

                          */ - S3Uri?: string; + SnsTopicArn?: string; } -export namespace MonitoringStatisticsResource { - export const filterSensitiveLog = (obj: MonitoringStatisticsResource): any => ({ +export namespace LabelingJobOutputConfig { + export const filterSensitiveLog = (obj: LabelingJobOutputConfig): any => ({ ...obj, }); } /** - *

                          Configuration for monitoring constraints and monitoring statistics. These baseline - * resources are compared against the results of the current job from the series of jobs - * scheduled to collect data periodically.

                          + *

                          A set of conditions for stopping a labeling job. If any of the conditions are met, the + * job is automatically stopped. You can use these conditions to control the cost of data + * labeling.

                          + * + *

                          Labeling jobs fail after 30 days with an appropriate client error message.

                          + *
                          */ -export interface MonitoringBaselineConfig { +export interface LabelingJobStoppingConditions { /** - *

                          The baseline constraint file in Amazon S3 that the current monitoring job should - * validated against.

                          + *

                          The maximum number of objects that can be labeled by human workers.

                          */ - ConstraintsResource?: MonitoringConstraintsResource; + MaxHumanLabeledObjectCount?: number; /** - *

                          The baseline statistics file in Amazon S3 that the current monitoring job should be - * validated against.

                          + *

                          The maximum number of input data objects that should be labeled.

                          */ - StatisticsResource?: MonitoringStatisticsResource; + MaxPercentageOfInputDatasetLabeled?: number; } -export namespace MonitoringBaselineConfig { - export const filterSensitiveLog = (obj: MonitoringBaselineConfig): any => ({ +export namespace LabelingJobStoppingConditions { + export const filterSensitiveLog = (obj: LabelingJobStoppingConditions): any => ({ ...obj, }); } -/** - *

                          Container image configuration object for the monitoring job.

                          - */ -export interface MonitoringAppSpecification { +export interface CreateLabelingJobRequest { /** - *

                          The container image to be run by the monitoring job.

                          + *

                          The name of the labeling job. This name is used to identify the job in a list of + * labeling jobs.

                          */ - ImageUri: string | undefined; + LabelingJobName: string | undefined; /** - *

                          Specifies the entrypoint for a container used to run the monitoring job.

                          + *

                          The attribute name to use for the label in the output manifest file. This is the key + * for the key/value pair formed with the label that a worker assigns to the object. The + * name can't end with "-metadata". If you are running a semantic segmentation labeling + * job, the attribute name must end with "-ref". If you are running any other kind of + * labeling job, the attribute name must not end with "-ref".

                          */ - ContainerEntrypoint?: string[]; + LabelAttributeName: string | undefined; /** - *

                          An array of arguments for the container used to run the monitoring job.

                          + *

                          Input data for the labeling job, such as the Amazon S3 location of the data objects and the + * location of the manifest file that describes the data objects.

                          */ - ContainerArguments?: string[]; + InputConfig: LabelingJobInputConfig | undefined; /** - *

                          An Amazon S3 URI to a script that is called per row prior to running analysis. It can - * base64 decode the payload and convert it into a flatted json so that the built-in container - * can use the converted data. Applicable only for the built-in (first party) - * containers.

                          + *

                          The location of the output data and the AWS Key Management Service key ID for the key used to encrypt + * the output data, if any.

                          */ - RecordPreprocessorSourceUri?: string; + OutputConfig: LabelingJobOutputConfig | undefined; /** - *

                          An Amazon S3 URI to a script that is called after analysis has been performed. - * Applicable only for the built-in (first party) containers.

                          + *

                          The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf + * during data labeling. You must grant this role the necessary permissions so that Amazon SageMaker + * can successfully complete data labeling.

                          */ - PostAnalyticsProcessorSourceUri?: string; -} - -export namespace MonitoringAppSpecification { - export const filterSensitiveLog = (obj: MonitoringAppSpecification): any => ({ - ...obj, - }); -} - -export enum ProcessingS3DataDistributionType { - FULLYREPLICATED = "FullyReplicated", - SHARDEDBYS3KEY = "ShardedByS3Key", -} + RoleArn: string | undefined; -export enum ProcessingS3InputMode { - FILE = "File", - PIPE = "Pipe", -} + /** + *

                          The S3 URI of the file that defines the categories used to label the data + * objects.

                          + *

                          For 3D point cloud task types, see Create a + * Labeling Category Configuration File for 3D Point Cloud Labeling Jobs.

                          + *

                          For all other built-in task types and custom + * tasks, your label category configuration file must be a JSON file in the + * following format. Identify the labels you want to use by replacing label_1, + * label_2,...,label_n with your label + * categories.

                          + *

                          + * { + *

                          + *

                          + * "document-version": "2018-11-28" + *

                          + *

                          + * "labels": [ + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label_1" + *

                          + *

                          + * }, + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label_2" + *

                          + *

                          + * }, + *

                          + *

                          + * ... + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label_n" + *

                          + *

                          + * } + *

                          + *

                          + * ] + *

                          + *

                          + * } + *

                          + */ + LabelCategoryConfigS3Uri?: string; -/** - *

                          Input object for the endpoint

                          - */ -export interface EndpointInput { /** - *

                          An endpoint in customer's account which has enabled DataCaptureConfig - * enabled.

                          + *

                          A set of conditions for stopping the labeling job. If any of the conditions are met, + * the job is automatically stopped. You can use these conditions to control the cost of + * data labeling.

                          */ - EndpointName: string | undefined; + StoppingConditions?: LabelingJobStoppingConditions; /** - *

                          Path to the filesystem where the endpoint data is available to the container.

                          + *

                          Configures the information required to perform automated data labeling.

                          */ - LocalPath: string | undefined; + LabelingJobAlgorithmsConfig?: LabelingJobAlgorithmsConfig; /** - *

                          Whether the Pipe or File is used as the input mode for - * transfering data for the monitoring job. Pipe mode is recommended for large - * datasets. File mode is useful for small files that fit in memory. Defaults to - * File.

                          + *

                          Configures the labeling task and how it is presented to workers; including, but not limited to price, keywords, and batch size (task count).

                          */ - S3InputMode?: ProcessingS3InputMode | string; + HumanTaskConfig: HumanTaskConfig | undefined; /** - *

                          Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. - * Defauts to FullyReplicated - *

                          + *

                          An array of key/value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          */ - S3DataDistributionType?: ProcessingS3DataDistributionType | string; + Tags?: Tag[]; } -export namespace EndpointInput { - export const filterSensitiveLog = (obj: EndpointInput): any => ({ +export namespace CreateLabelingJobRequest { + export const filterSensitiveLog = (obj: CreateLabelingJobRequest): any => ({ ...obj, }); } -/** - *

                          The inputs for a monitoring job.

                          - */ -export interface MonitoringInput { +export interface CreateLabelingJobResponse { /** - *

                          The endpoint for a monitoring job.

                          + *

                          The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the + * labeling job.

                          */ - EndpointInput: EndpointInput | undefined; + LabelingJobArn: string | undefined; } -export namespace MonitoringInput { - export const filterSensitiveLog = (obj: MonitoringInput): any => ({ +export namespace CreateLabelingJobResponse { + export const filterSensitiveLog = (obj: CreateLabelingJobResponse): any => ({ ...obj, }); } -export enum ProcessingS3UploadMode { - CONTINUOUS = "Continuous", - END_OF_JOB = "EndOfJob", -} +export interface CreateModelInput { + /** + *

                          The name of the new model.

                          + */ + ModelName: string | undefined; -/** - *

                          Information about where and how you want to store the results of a monitoring - * job.

                          - */ -export interface MonitoringS3Output { /** - *

                          A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a - * monitoring job.

                          + *

                          The location of the primary docker image containing inference code, associated + * artifacts, and custom environment map that the inference code uses when the model is + * deployed for predictions.

                          */ - S3Uri: string | undefined; + PrimaryContainer?: ContainerDefinition; /** - *

                          The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a - * monitoring job. LocalPath is an absolute path for the output data.

                          + *

                          Specifies the containers in the inference pipeline.

                          + */ + Containers?: ContainerDefinition[]; + + /** + *

                          The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model + * artifacts and docker image for deployment on ML compute instances or for batch transform + * jobs. Deploying on ML compute instances is part of model hosting. For more information, + * see Amazon SageMaker + * Roles.

                          + * + *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the + * iam:PassRole permission.

                          + *
                          + */ + ExecutionRoleArn: string | undefined; + + /** + *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                          + */ + Tags?: Tag[]; + + /** + *

                          A VpcConfig object that specifies the VPC that you want your model + * to connect to. Control access to and from your model container by configuring the VPC. + * VpcConfig is used in hosting services and in batch transform. For more + * information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Data in Batch + * Transform Jobs by Using an Amazon Virtual Private Cloud.

                          */ - LocalPath: string | undefined; + VpcConfig?: VpcConfig; /** - *

                          Whether to upload the results of the monitoring job continuously or after the job - * completes.

                          + *

                          Isolates the model container. No inbound or outbound network calls can be made to or + * from the model container.

                          */ - S3UploadMode?: ProcessingS3UploadMode | string; + EnableNetworkIsolation?: boolean; } -export namespace MonitoringS3Output { - export const filterSensitiveLog = (obj: MonitoringS3Output): any => ({ +export namespace CreateModelInput { + export const filterSensitiveLog = (obj: CreateModelInput): any => ({ ...obj, }); } -/** - *

                          The output object for a monitoring job.

                          - */ -export interface MonitoringOutput { +export interface CreateModelOutput { /** - *

                          The Amazon S3 storage location where the results of a monitoring job are saved.

                          + *

                          The ARN of the model created in Amazon SageMaker.

                          */ - S3Output: MonitoringS3Output | undefined; + ModelArn: string | undefined; } -export namespace MonitoringOutput { - export const filterSensitiveLog = (obj: MonitoringOutput): any => ({ +export namespace CreateModelOutput { + export const filterSensitiveLog = (obj: CreateModelOutput): any => ({ ...obj, }); } /** - *

                          The output configuration for monitoring jobs.

                          + *

                          Docker container image configuration object for the model bias job.

                          */ -export interface MonitoringOutputConfig { +export interface ModelBiasAppSpecification { /** - *

                          Monitoring outputs for monitoring jobs. This is where the output of the periodic - * monitoring jobs is uploaded.

                          + *

                          The container image to be run by the model bias job.

                          */ - MonitoringOutputs: MonitoringOutput[] | undefined; + ImageUri: string | undefined; /** - *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model - * artifacts at rest using Amazon S3 server-side encryption.

                          + *

                          JSON formatted S3 file that defines bias parameters. For more information on this JSON + * configuration file, see Configure bias + * parameters.

                          */ - KmsKeyId?: string; + ConfigUri: string | undefined; + + /** + *

                          Sets the environment variables in the Docker container.

                          + */ + Environment?: { [key: string]: string }; } -export namespace MonitoringOutputConfig { - export const filterSensitiveLog = (obj: MonitoringOutputConfig): any => ({ +export namespace ModelBiasAppSpecification { + export const filterSensitiveLog = (obj: ModelBiasAppSpecification): any => ({ ...obj, }); } -export enum ProcessingInstanceType { - ML_C4_2XLARGE = "ml.c4.2xlarge", - ML_C4_4XLARGE = "ml.c4.4xlarge", - ML_C4_8XLARGE = "ml.c4.8xlarge", - ML_C4_XLARGE = "ml.c4.xlarge", - ML_C5_18XLARGE = "ml.c5.18xlarge", - ML_C5_2XLARGE = "ml.c5.2xlarge", - ML_C5_4XLARGE = "ml.c5.4xlarge", - ML_C5_9XLARGE = "ml.c5.9xlarge", - ML_C5_XLARGE = "ml.c5.xlarge", - ML_M4_10XLARGE = "ml.m4.10xlarge", - ML_M4_16XLARGE = "ml.m4.16xlarge", - ML_M4_2XLARGE = "ml.m4.2xlarge", - ML_M4_4XLARGE = "ml.m4.4xlarge", - ML_M4_XLARGE = "ml.m4.xlarge", - ML_M5_12XLARGE = "ml.m5.12xlarge", - ML_M5_24XLARGE = "ml.m5.24xlarge", - ML_M5_2XLARGE = "ml.m5.2xlarge", - ML_M5_4XLARGE = "ml.m5.4xlarge", - ML_M5_LARGE = "ml.m5.large", - ML_M5_XLARGE = "ml.m5.xlarge", - ML_P2_16XLARGE = "ml.p2.16xlarge", - ML_P2_8XLARGE = "ml.p2.8xlarge", - ML_P2_XLARGE = "ml.p2.xlarge", - ML_P3_16XLARGE = "ml.p3.16xlarge", - ML_P3_2XLARGE = "ml.p3.2xlarge", - ML_P3_8XLARGE = "ml.p3.8xlarge", - ML_R5_12XLARGE = "ml.r5.12xlarge", - ML_R5_16XLARGE = "ml.r5.16xlarge", - ML_R5_24XLARGE = "ml.r5.24xlarge", - ML_R5_2XLARGE = "ml.r5.2xlarge", - ML_R5_4XLARGE = "ml.r5.4xlarge", - ML_R5_8XLARGE = "ml.r5.8xlarge", - ML_R5_LARGE = "ml.r5.large", - ML_R5_XLARGE = "ml.r5.xlarge", - ML_T3_2XLARGE = "ml.t3.2xlarge", - ML_T3_LARGE = "ml.t3.large", - ML_T3_MEDIUM = "ml.t3.medium", - ML_T3_XLARGE = "ml.t3.xlarge", -} - /** - *

                          Configuration for the cluster used to run model monitoring jobs.

                          + *

                          The configuration for a baseline model bias job.

                          */ -export interface MonitoringClusterConfig { - /** - *

                          The number of ML compute instances to use in the model monitoring job. For distributed - * processing jobs, specify a value greater than 1. The default value is 1.

                          - */ - InstanceCount: number | undefined; - - /** - *

                          The ML compute instance type for the processing job.

                          - */ - InstanceType: ProcessingInstanceType | string | undefined; - +export interface ModelBiasBaselineConfig { /** - *

                          The size of the ML storage volume, in gigabytes, that you want to provision. You must - * specify sufficient ML storage for your scenario.

                          + *

                          The name of the baseline model bias job.

                          */ - VolumeSizeInGB: number | undefined; + BaseliningJobName?: string; /** - *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data - * on the storage volume attached to the ML compute instance(s) that run the model monitoring - * job.

                          + *

                          The constraints resource for a monitoring job.

                          */ - VolumeKmsKeyId?: string; + ConstraintsResource?: MonitoringConstraintsResource; } -export namespace MonitoringClusterConfig { - export const filterSensitiveLog = (obj: MonitoringClusterConfig): any => ({ +export namespace ModelBiasBaselineConfig { + export const filterSensitiveLog = (obj: ModelBiasBaselineConfig): any => ({ ...obj, }); } /** - *

                          Identifies the resources to deploy for a monitoring job.

                          + *

                          The ground truth labels for the dataset used for the monitoring job.

                          */ -export interface MonitoringResources { +export interface MonitoringGroundTruthS3Input { /** - *

                          The configuration for the cluster resources used to run the processing job.

                          + *

                          The address of the Amazon S3 location of the ground truth labels.

                          */ - ClusterConfig: MonitoringClusterConfig | undefined; + S3Uri?: string; } -export namespace MonitoringResources { - export const filterSensitiveLog = (obj: MonitoringResources): any => ({ +export namespace MonitoringGroundTruthS3Input { + export const filterSensitiveLog = (obj: MonitoringGroundTruthS3Input): any => ({ ...obj, }); } /** - *

                          Networking options for a job, such as network traffic encryption between containers, - * whether to allow inbound and outbound network calls to and from containers, and the VPC - * subnets and security groups to use for VPC-enabled jobs.

                          + *

                          Inputs for the model bias job.

                          */ -export interface NetworkConfig { +export interface ModelBiasJobInput { /** - *

                          Whether to encrypt all communications between distributed processing jobs. Choose - * True to encrypt communications. Encryption provides greater security for distributed - * processing jobs, but the processing might take longer.

                          + *

                          Input object for the endpoint

                          */ - EnableInterContainerTrafficEncryption?: boolean; - - /** - *

                          Whether to allow inbound and outbound network calls to and from the containers used for - * the processing job.

                          - */ - EnableNetworkIsolation?: boolean; + EndpointInput: EndpointInput | undefined; /** - *

                          Specifies a VPC that your training jobs and hosted models have access to. Control - * access to and from your training and model containers by configuring the VPC. For more - * information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Training Jobs - * by Using an Amazon Virtual Private Cloud.

                          + *

                          Location of ground truth labels to use in model bias job.

                          */ - VpcConfig?: VpcConfig; + GroundTruthS3Input: MonitoringGroundTruthS3Input | undefined; } -export namespace NetworkConfig { - export const filterSensitiveLog = (obj: NetworkConfig): any => ({ +export namespace ModelBiasJobInput { + export const filterSensitiveLog = (obj: ModelBiasJobInput): any => ({ ...obj, }); } -/** - *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          - */ -export interface MonitoringStoppingCondition { +export interface CreateModelBiasJobDefinitionRequest { /** - *

                          The maximum runtime allowed in seconds.

                          + *

                          The name of the bias job definition. The name must be unique within an AWS Region in the + * AWS account.

                          */ - MaxRuntimeInSeconds: number | undefined; -} - -export namespace MonitoringStoppingCondition { - export const filterSensitiveLog = (obj: MonitoringStoppingCondition): any => ({ - ...obj, - }); -} + JobDefinitionName: string | undefined; -/** - *

                          Defines the monitoring job.

                          - */ -export interface MonitoringJobDefinition { /** - *

                          Baseline configuration used to validate that the data conforms to the specified - * constraints and statistics

                          + *

                          The baseline configuration for a model bias job.

                          */ - BaselineConfig?: MonitoringBaselineConfig; + ModelBiasBaselineConfig?: ModelBiasBaselineConfig; /** - *

                          The array of inputs for the monitoring job. Currently we support monitoring an Amazon SageMaker - * Endpoint.

                          + *

                          Configures the model bias job to run a specified Docker container image.

                          */ - MonitoringInputs: MonitoringInput[] | undefined; + ModelBiasAppSpecification: ModelBiasAppSpecification | undefined; /** - *

                          The array of outputs from the monitoring job to be uploaded to Amazon Simple Storage - * Service (Amazon S3).

                          + *

                          Inputs for the model bias job.

                          */ - MonitoringOutputConfig: MonitoringOutputConfig | undefined; + ModelBiasJobInput: ModelBiasJobInput | undefined; /** - *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a - * monitoring job. In distributed processing, you specify more than one instance.

                          + *

                          The output configuration for monitoring jobs.

                          */ - MonitoringResources: MonitoringResources | undefined; + ModelBiasJobOutputConfig: MonitoringOutputConfig | undefined; /** - *

                          Configures the monitoring job to run a specified Docker container image.

                          + *

                          Identifies the resources to deploy for a monitoring job.

                          */ - MonitoringAppSpecification: MonitoringAppSpecification | undefined; + JobResources: MonitoringResources | undefined; /** - *

                          Specifies a time limit for how long the monitoring job is allowed to run.

                          + *

                          Networking options for a model bias job.

                          */ - StoppingCondition?: MonitoringStoppingCondition; + NetworkConfig?: MonitoringNetworkConfig; /** - *

                          Sets the environment variables in the Docker container.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                          */ - Environment?: { [key: string]: string }; + RoleArn: string | undefined; /** - *

                          Specifies networking options for an monitoring job.

                          + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          */ - NetworkConfig?: NetworkConfig; + StoppingCondition?: MonitoringStoppingCondition; /** - *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on - * your behalf.

                          + *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          */ - RoleArn: string | undefined; + Tags?: Tag[]; } -export namespace MonitoringJobDefinition { - export const filterSensitiveLog = (obj: MonitoringJobDefinition): any => ({ +export namespace CreateModelBiasJobDefinitionRequest { + export const filterSensitiveLog = (obj: CreateModelBiasJobDefinitionRequest): any => ({ ...obj, }); } -/** - *

                          Configuration details about the monitoring schedule.

                          - */ -export interface ScheduleConfig { +export interface CreateModelBiasJobDefinitionResponse { /** - *

                          A cron expression that describes details about the monitoring schedule.

                          - * - *

                          Currently the only supported cron expressions are:

                          - *
                            - *
                          • - *

                            If you want to set the job to start every hour, please use the following:

                            - *

                            - * Hourly: cron(0 * ? * * *) - *

                            - *
                          • - *
                          • - *

                            If you want to start the job daily:

                            - *

                            - * cron(0 [00-23] ? * * *) - *

                            - *
                          • - *
                          - *

                          For example, the following are valid cron expressions:

                          - *
                            - *
                          • - *

                            Daily at noon UTC: cron(0 12 ? * * *) - *

                            - *
                          • - *
                          • - *

                            Daily at midnight UTC: cron(0 0 ? * * *) - *

                            - *
                          • - *
                          - * - *

                          To support running every 6, 12 hours, the following are also supported:

                          - *

                          - * cron(0 [00-23]/[01-24] ? * * *) - *

                          - *

                          For example, the following are valid cron expressions:

                          - *
                            - *
                          • - *

                            Every 12 hours, starting at 5pm UTC: cron(0 17/12 ? * * *) - *

                            - *
                          • - *
                          • - *

                            Every two hours starting at midnight: cron(0 0/2 ? * * *) - *

                            - *
                          • - *
                          - * - * - *
                            - *
                          • - *

                            Even though the cron expression is set to start at 5PM UTC, note that there - * could be a delay of 0-20 minutes from the actual requested time to run the - * execution.

                            - *
                          • - *
                          • - *

                            We recommend that if you would like a daily schedule, you do not provide this - * parameter. Amazon SageMaker will pick a time for running every day.

                            - *
                          • - *
                          - *
                          + *

                          The Amazon Resource Name (ARN) of the model bias job.

                          */ - ScheduleExpression: string | undefined; + JobDefinitionArn: string | undefined; } -export namespace ScheduleConfig { - export const filterSensitiveLog = (obj: ScheduleConfig): any => ({ +export namespace CreateModelBiasJobDefinitionResponse { + export const filterSensitiveLog = (obj: CreateModelBiasJobDefinitionResponse): any => ({ ...obj, }); } /** - *

                          Configures the monitoring schedule and defines the monitoring job.

                          + *

                          Docker container image configuration object for the model explainability job.

                          */ -export interface MonitoringScheduleConfig { +export interface ModelExplainabilityAppSpecification { + /** + *

                          The container image to be run by the model explainability job.

                          + */ + ImageUri: string | undefined; + /** - *

                          Configures the monitoring schedule.

                          + *

                          JSON formatted S3 file that defines explainability parameters. For more information on + * this JSON configuration file, see Configure model + * explainability parameters.

                          */ - ScheduleConfig?: ScheduleConfig; + ConfigUri: string | undefined; /** - *

                          Defines the monitoring job.

                          + *

                          Sets the environment variables in the Docker container.

                          */ - MonitoringJobDefinition?: MonitoringJobDefinition; + Environment?: { [key: string]: string }; } -export namespace MonitoringScheduleConfig { - export const filterSensitiveLog = (obj: MonitoringScheduleConfig): any => ({ +export namespace ModelExplainabilityAppSpecification { + export const filterSensitiveLog = (obj: ModelExplainabilityAppSpecification): any => ({ ...obj, }); } -export interface CreateMonitoringScheduleRequest { - /** - *

                          The name of the monitoring schedule. The name must be unique within an AWS Region within - * an AWS account.

                          - */ - MonitoringScheduleName: string | undefined; - +/** + *

                          The configuration for a baseline model explainability job.

                          + */ +export interface ModelExplainabilityBaselineConfig { /** - *

                          The configuration object that specifies the monitoring schedule and defines the - * monitoring job.

                          + *

                          The name of the baseline model explainability job.

                          */ - MonitoringScheduleConfig: MonitoringScheduleConfig | undefined; + BaseliningJobName?: string; /** - *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management - * User Guide.

                          + *

                          The constraints resource for a monitoring job.

                          */ - Tags?: Tag[]; + ConstraintsResource?: MonitoringConstraintsResource; } -export namespace CreateMonitoringScheduleRequest { - export const filterSensitiveLog = (obj: CreateMonitoringScheduleRequest): any => ({ +export namespace ModelExplainabilityBaselineConfig { + export const filterSensitiveLog = (obj: ModelExplainabilityBaselineConfig): any => ({ ...obj, }); } -export interface CreateMonitoringScheduleResponse { +/** + *

                          Inputs for the model explainability job.

                          + */ +export interface ModelExplainabilityJobInput { /** - *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          + *

                          Input object for the endpoint

                          */ - MonitoringScheduleArn: string | undefined; + EndpointInput: EndpointInput | undefined; } -export namespace CreateMonitoringScheduleResponse { - export const filterSensitiveLog = (obj: CreateMonitoringScheduleResponse): any => ({ +export namespace ModelExplainabilityJobInput { + export const filterSensitiveLog = (obj: ModelExplainabilityJobInput): any => ({ ...obj, }); } -export enum NotebookInstanceAcceleratorType { - ML_EIA1_LARGE = "ml.eia1.large", - ML_EIA1_MEDIUM = "ml.eia1.medium", - ML_EIA1_XLARGE = "ml.eia1.xlarge", - ML_EIA2_LARGE = "ml.eia2.large", - ML_EIA2_MEDIUM = "ml.eia2.medium", - ML_EIA2_XLARGE = "ml.eia2.xlarge", -} - -export enum DirectInternetAccess { - DISABLED = "Disabled", - ENABLED = "Enabled", -} +export interface CreateModelExplainabilityJobDefinitionRequest { + /** + *

                          The name of the model explainability job definition. The name must be unique within an + * AWS Region in the AWS account.

                          + */ + JobDefinitionName: string | undefined; -export enum _InstanceType { - ML_C4_2XLARGE = "ml.c4.2xlarge", - ML_C4_4XLARGE = "ml.c4.4xlarge", - ML_C4_8XLARGE = "ml.c4.8xlarge", - ML_C4_XLARGE = "ml.c4.xlarge", - ML_C5D_18XLARGE = "ml.c5d.18xlarge", - ML_C5D_2XLARGE = "ml.c5d.2xlarge", - ML_C5D_4XLARGE = "ml.c5d.4xlarge", - ML_C5D_9XLARGE = "ml.c5d.9xlarge", - ML_C5D_XLARGE = "ml.c5d.xlarge", - ML_C5_18XLARGE = "ml.c5.18xlarge", - ML_C5_2XLARGE = "ml.c5.2xlarge", - ML_C5_4XLARGE = "ml.c5.4xlarge", - ML_C5_9XLARGE = "ml.c5.9xlarge", - ML_C5_XLARGE = "ml.c5.xlarge", - ML_M4_10XLARGE = "ml.m4.10xlarge", - ML_M4_16XLARGE = "ml.m4.16xlarge", - ML_M4_2XLARGE = "ml.m4.2xlarge", - ML_M4_4XLARGE = "ml.m4.4xlarge", - ML_M4_XLARGE = "ml.m4.xlarge", - ML_M5_12XLARGE = "ml.m5.12xlarge", - ML_M5_24XLARGE = "ml.m5.24xlarge", - ML_M5_2XLARGE = "ml.m5.2xlarge", - ML_M5_4XLARGE = "ml.m5.4xlarge", - ML_M5_XLARGE = "ml.m5.xlarge", - ML_P2_16XLARGE = "ml.p2.16xlarge", - ML_P2_8XLARGE = "ml.p2.8xlarge", - ML_P2_XLARGE = "ml.p2.xlarge", - ML_P3_16XLARGE = "ml.p3.16xlarge", - ML_P3_2XLARGE = "ml.p3.2xlarge", - ML_P3_8XLARGE = "ml.p3.8xlarge", - ML_T2_2XLARGE = "ml.t2.2xlarge", - ML_T2_LARGE = "ml.t2.large", - ML_T2_MEDIUM = "ml.t2.medium", - ML_T2_XLARGE = "ml.t2.xlarge", - ML_T3_2XLARGE = "ml.t3.2xlarge", - ML_T3_LARGE = "ml.t3.large", - ML_T3_MEDIUM = "ml.t3.medium", - ML_T3_XLARGE = "ml.t3.xlarge", -} + /** + *

                          The baseline configuration for a model explainability job.

                          + */ + ModelExplainabilityBaselineConfig?: ModelExplainabilityBaselineConfig; -export enum RootAccess { - DISABLED = "Disabled", - ENABLED = "Enabled", -} + /** + *

                          Configures the model explainability job to run a specified Docker container + * image.

                          + */ + ModelExplainabilityAppSpecification: ModelExplainabilityAppSpecification | undefined; -export interface CreateNotebookInstanceInput { /** - *

                          The name of the new notebook instance.

                          + *

                          Inputs for the model explainability job.

                          */ - NotebookInstanceName: string | undefined; + ModelExplainabilityJobInput: ModelExplainabilityJobInput | undefined; /** - *

                          The type of ML compute instance to launch for the notebook instance.

                          + *

                          The output configuration for monitoring jobs.

                          */ - InstanceType: _InstanceType | string | undefined; + ModelExplainabilityJobOutputConfig: MonitoringOutputConfig | undefined; /** - *

                          The ID of the subnet in a VPC to which you would like to have a connectivity from - * your ML compute instance.

                          + *

                          Identifies the resources to deploy for a monitoring job.

                          */ - SubnetId?: string; + JobResources: MonitoringResources | undefined; /** - *

                          The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be - * for the same VPC as specified in the subnet.

                          + *

                          Networking options for a model explainability job.

                          */ - SecurityGroupIds?: string[]; + NetworkConfig?: MonitoringNetworkConfig; /** - *

                          When you send any requests to AWS resources from the notebook instance, Amazon SageMaker - * assumes this role to perform tasks on your behalf. You must grant this role necessary - * permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service - * principal (sagemaker.amazonaws.com) permissions to assume this role. For more - * information, see Amazon SageMaker Roles.

                          - * - *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the - * iam:PassRole permission.

                          - *
                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                          */ RoleArn: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on - * the storage volume attached to your notebook instance. The KMS key you provide must be - * enabled. For information, see Enabling and Disabling - * Keys in the AWS Key Management Service Developer Guide.

                          + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          */ - KmsKeyId?: string; + StoppingCondition?: MonitoringStoppingCondition; /** - *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                          + *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          */ Tags?: Tag[]; +} - /** - *

                          The name of a lifecycle configuration to associate with the notebook instance. For - * information about lifestyle configurations, see Step 2.1: (Optional) - * Customize a Notebook Instance.

                          - */ - LifecycleConfigName?: string; +export namespace CreateModelExplainabilityJobDefinitionRequest { + export const filterSensitiveLog = (obj: CreateModelExplainabilityJobDefinitionRequest): any => ({ + ...obj, + }); +} +export interface CreateModelExplainabilityJobDefinitionResponse { /** - *

                          Sets whether Amazon SageMaker provides internet access to the notebook instance. If you set this - * to Disabled this notebook instance will be able to access resources only in - * your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless - * your configure a NAT Gateway in your VPC.

                          - *

                          For more information, see Notebook Instances Are Internet-Enabled by Default. You can set the value - * of this parameter to Disabled only if you set a value for the - * SubnetId parameter.

                          + *

                          The Amazon Resource Name (ARN) of the model explainability job.

                          */ - DirectInternetAccess?: DirectInternetAccess | string; + JobDefinitionArn: string | undefined; +} + +export namespace CreateModelExplainabilityJobDefinitionResponse { + export const filterSensitiveLog = (obj: CreateModelExplainabilityJobDefinitionResponse): any => ({ + ...obj, + }); +} + +export enum ModelApprovalStatus { + APPROVED = "Approved", + PENDING_MANUAL_APPROVAL = "PendingManualApproval", + REJECTED = "Rejected", +} +/** + *

                          Contains explainability metrics for a model.

                          + */ +export interface Explainability { /** - *

                          The size, in GB, of the ML storage volume to attach to the notebook instance. The - * default value is 5 GB.

                          + *

                          The explainability report for a model.

                          */ - VolumeSizeInGB?: number; + Report?: MetricsSource; +} + +export namespace Explainability { + export const filterSensitiveLog = (obj: Explainability): any => ({ + ...obj, + }); +} +/** + *

                          Data quality constraints and statistics for a model.

                          + */ +export interface ModelDataQuality { /** - *

                          A list of Elastic Inference (EI) instance types to associate with this notebook - * instance. Currently, only one instance type can be associated with a notebook instance. - * For more information, see Using Elastic Inference in Amazon SageMaker.

                          + *

                          Data quality statistics for a model.

                          */ - AcceleratorTypes?: (NotebookInstanceAcceleratorType | string)[]; + Statistics?: MetricsSource; /** - *

                          A Git repository to associate with the notebook instance as its default code - * repository. This can be either the name of a Git repository stored as a resource in your - * account, or the URL of a Git repository in AWS CodeCommit or in any - * other Git repository. When you open a notebook instance, it opens in the directory that - * contains this repository. For more information, see Associating Git Repositories with Amazon SageMaker - * Notebook Instances.

                          + *

                          Data quality constraints for a model.

                          */ - DefaultCodeRepository?: string; + Constraints?: MetricsSource; +} + +export namespace ModelDataQuality { + export const filterSensitiveLog = (obj: ModelDataQuality): any => ({ + ...obj, + }); +} +/** + *

                          Model quality statistics and constraints.

                          + */ +export interface ModelQuality { /** - *

                          An array of up to three Git repositories to associate with the notebook instance. - * These can be either the names of Git repositories stored as resources in your account, - * or the URL of Git repositories in AWS CodeCommit or in any - * other Git repository. These repositories are cloned at the same level as the default - * repository of your notebook instance. For more information, see Associating Git - * Repositories with Amazon SageMaker Notebook Instances.

                          + *

                          Model quality statistics.

                          */ - AdditionalCodeRepositories?: string[]; + Statistics?: MetricsSource; /** - *

                          Whether root access is enabled or disabled for users of the notebook instance. The - * default value is Enabled.

                          - * - *

                          Lifecycle configurations need root access to be able to set up a notebook - * instance. Because of this, lifecycle configurations associated with a notebook - * instance always run with root access even if you disable root access for - * users.

                          - *
                          + *

                          Model quality constraints.

                          */ - RootAccess?: RootAccess | string; + Constraints?: MetricsSource; } -export namespace CreateNotebookInstanceInput { - export const filterSensitiveLog = (obj: CreateNotebookInstanceInput): any => ({ +export namespace ModelQuality { + export const filterSensitiveLog = (obj: ModelQuality): any => ({ ...obj, }); } -export interface CreateNotebookInstanceOutput { +/** + *

                          Contains metrics captured from a model.

                          + */ +export interface ModelMetrics { + /** + *

                          Metrics that measure the quality of a model.

                          + */ + ModelQuality?: ModelQuality; + + /** + *

                          Metrics that measure the quality of the input data for a model.

                          + */ + ModelDataQuality?: ModelDataQuality; + + /** + *

                          Metrics that measure bais in a model.

                          + */ + Bias?: Bias; + /** - *

                          The Amazon Resource Name (ARN) of the notebook instance.

                          + *

                          Metrics that help explain a model.

                          */ - NotebookInstanceArn?: string; + Explainability?: Explainability; } -export namespace CreateNotebookInstanceOutput { - export const filterSensitiveLog = (obj: CreateNotebookInstanceOutput): any => ({ +export namespace ModelMetrics { + export const filterSensitiveLog = (obj: ModelMetrics): any => ({ ...obj, }); } /** - *

                          Contains the notebook instance lifecycle configuration script.

                          - *

                          Each lifecycle configuration script has a limit of 16384 characters.

                          - *

                          The value of the $PATH environment variable that is available to both - * scripts is /sbin:bin:/usr/sbin:/usr/bin.

                          - *

                          View CloudWatch Logs for notebook instance lifecycle configurations in log group - * /aws/sagemaker/NotebookInstances in log stream - * [notebook-instance-name]/[LifecycleConfigHook].

                          - *

                          Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs - * for longer than 5 minutes, it fails and the notebook instance is not created or - * started.

                          - *

                          For information about notebook instance lifestyle configurations, see Step - * 2.1: (Optional) Customize a Notebook Instance.

                          + *

                          Specifies an algorithm that was used to create the model package. The algorithm must + * be either an algorithm resource in your Amazon SageMaker account or an algorithm in AWS Marketplace that you + * are subscribed to.

                          */ -export interface NotebookInstanceLifecycleHook { +export interface SourceAlgorithm { /** - *

                          A base64-encoded string that contains a shell script for a notebook instance lifecycle - * configuration.

                          + *

                          The Amazon S3 path where the model artifacts, which result from model training, are stored. + * This path must point to a single gzip compressed tar archive + * (.tar.gz suffix).

                          + * + *

                          The model artifacts must be in an S3 bucket that is in the same region as the + * algorithm.

                          + *
                          + */ + ModelDataUrl?: string; + + /** + *

                          The name of an algorithm that was used to create the model package. The algorithm must + * be either an algorithm resource in your Amazon SageMaker account or an algorithm in AWS Marketplace that you + * are subscribed to.

                          */ - Content?: string; + AlgorithmName: string | undefined; } -export namespace NotebookInstanceLifecycleHook { - export const filterSensitiveLog = (obj: NotebookInstanceLifecycleHook): any => ({ +export namespace SourceAlgorithm { + export const filterSensitiveLog = (obj: SourceAlgorithm): any => ({ ...obj, }); } -export interface CreateNotebookInstanceLifecycleConfigInput { +/** + *

                          A list of algorithms that were used to create a model package.

                          + */ +export interface SourceAlgorithmSpecification { /** - *

                          The name of the lifecycle configuration.

                          + *

                          A list of the algorithms that were used to create a model package.

                          */ - NotebookInstanceLifecycleConfigName: string | undefined; + SourceAlgorithms: SourceAlgorithm[] | undefined; +} +export namespace SourceAlgorithmSpecification { + export const filterSensitiveLog = (obj: SourceAlgorithmSpecification): any => ({ + ...obj, + }); +} + +/** + *

                          Contains data, such as the inputs and targeted instance types that are used in the + * process of validating the model package.

                          + *

                          The data provided in the validation profile is made available to your buyers on AWS + * Marketplace.

                          + */ +export interface ModelPackageValidationProfile { /** - *

                          A shell script that runs only once, when you create a notebook instance. The shell - * script must be a base64-encoded string.

                          + *

                          The name of the profile for the model package.

                          */ - OnCreate?: NotebookInstanceLifecycleHook[]; + ProfileName: string | undefined; /** - *

                          A shell script that runs every time you start a notebook instance, including when you - * create the notebook instance. The shell script must be a base64-encoded string.

                          + *

                          The TransformJobDefinition object that describes the transform job used + * for the validation of the model package.

                          */ - OnStart?: NotebookInstanceLifecycleHook[]; + TransformJobDefinition: TransformJobDefinition | undefined; } -export namespace CreateNotebookInstanceLifecycleConfigInput { - export const filterSensitiveLog = (obj: CreateNotebookInstanceLifecycleConfigInput): any => ({ +export namespace ModelPackageValidationProfile { + export const filterSensitiveLog = (obj: ModelPackageValidationProfile): any => ({ ...obj, }); } -export interface CreateNotebookInstanceLifecycleConfigOutput { +/** + *

                          Specifies batch transform jobs that Amazon SageMaker runs to validate your model package.

                          + */ +export interface ModelPackageValidationSpecification { + /** + *

                          The IAM roles to be used for the validation of the model package.

                          + */ + ValidationRole: string | undefined; + /** - *

                          The Amazon Resource Name (ARN) of the lifecycle configuration.

                          + *

                          An array of ModelPackageValidationProfile objects, each of which + * specifies a batch transform job that Amazon SageMaker runs to validate your model package.

                          */ - NotebookInstanceLifecycleConfigArn?: string; + ValidationProfiles: ModelPackageValidationProfile[] | undefined; } -export namespace CreateNotebookInstanceLifecycleConfigOutput { - export const filterSensitiveLog = (obj: CreateNotebookInstanceLifecycleConfigOutput): any => ({ +export namespace ModelPackageValidationSpecification { + export const filterSensitiveLog = (obj: ModelPackageValidationSpecification): any => ({ ...obj, }); } -export interface CreatePipelineRequest { +export interface CreateModelPackageInput { /** - *

                          The name of the pipeline.

                          + *

                          The name of the model package. The name must have 1 to 63 characters. Valid characters + * are a-z, A-Z, 0-9, and - (hyphen).

                          + *

                          This parameter is required for unversioned models. It is not applicable to versioned + * models.

                          */ - PipelineName: string | undefined; + ModelPackageName?: string; /** - *

                          The display name of the pipeline.

                          + *

                          The name of the model group that this model version belongs to.

                          + *

                          This parameter is required for versioned models, and does not apply to unversioned + * models.

                          */ - PipelineDisplayName?: string; + ModelPackageGroupName?: string; /** - *

                          The JSON pipeline definition of the pipeline.

                          + *

                          A description of the model package.

                          */ - PipelineDefinition: string | undefined; + ModelPackageDescription?: string; /** - *

                          A description of the pipeline.

                          + *

                          Specifies details about inference jobs that can be run with models based on this model + * package, including the following:

                          + *
                            + *
                          • + *

                            The Amazon ECR paths of containers that contain the inference code and model + * artifacts.

                            + *
                          • + *
                          • + *

                            The instance types that the model package supports for transform jobs and + * real-time endpoints used for inference.

                            + *
                          • + *
                          • + *

                            The input and output content formats that the model package supports for + * inference.

                            + *
                          • + *
                          */ - PipelineDescription?: string; + InferenceSpecification?: InferenceSpecification; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the - * operation. An idempotent operation completes no more than one time.

                          + *

                          Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the + * model package.

                          */ - ClientRequestToken?: string; + ValidationSpecification?: ModelPackageValidationSpecification; /** - *

                          The Amazon Resource Name (ARN) of the role used by the pipeline to access and create resources.

                          + *

                          Details about the algorithm that was used to create the model package.

                          */ - RoleArn: string | undefined; + SourceAlgorithmSpecification?: SourceAlgorithmSpecification; + + /** + *

                          Whether to certify the model package for listing on AWS Marketplace.

                          + *

                          This parameter is optional for unversioned models, and does not apply to versioned + * models.

                          + */ + CertifyForMarketplace?: boolean; /** - *

                          A list of tags to apply to the created pipeline.

                          + *

                          A list of key value pairs associated with the model. For more information, see Tagging AWS + * resources in the AWS General Reference Guide.

                          */ Tags?: Tag[]; + + /** + *

                          Whether the model is approved for deployment.

                          + *

                          This parameter is optional for versioned models, and does not apply to unversioned + * models.

                          + *

                          For versioned models, the value of this parameter must be set to Approved + * to deploy the model.

                          + */ + ModelApprovalStatus?: ModelApprovalStatus | string; + + /** + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + */ + MetadataProperties?: MetadataProperties; + + /** + *

                          A structure that contains model metrics reports.

                          + */ + ModelMetrics?: ModelMetrics; + + /** + *

                          A unique token that guarantees that the call to this API is idempotent.

                          + */ + ClientToken?: string; } -export namespace CreatePipelineRequest { - export const filterSensitiveLog = (obj: CreatePipelineRequest): any => ({ +export namespace CreateModelPackageInput { + export const filterSensitiveLog = (obj: CreateModelPackageInput): any => ({ ...obj, }); } -export interface CreatePipelineResponse { +export interface CreateModelPackageOutput { /** - *

                          The Amazon Resource Name (ARN) of the created pipeline.

                          + *

                          The Amazon Resource Name (ARN) of the new model package.

                          */ - PipelineArn?: string; + ModelPackageArn: string | undefined; } -export namespace CreatePipelineResponse { - export const filterSensitiveLog = (obj: CreatePipelineResponse): any => ({ +export namespace CreateModelPackageOutput { + export const filterSensitiveLog = (obj: CreateModelPackageOutput): any => ({ ...obj, }); } -export interface CreatePresignedDomainUrlRequest { +export interface CreateModelPackageGroupInput { /** - *

                          The domain ID.

                          + *

                          The name of the model group.

                          */ - DomainId: string | undefined; + ModelPackageGroupName: string | undefined; /** - *

                          The name of the UserProfile to sign-in as.

                          + *

                          A description for the model group.

                          */ - UserProfileName: string | undefined; + ModelPackageGroupDescription?: string; + + /** + *

                          A list of key value pairs associated with the model group. For more information, see + * Tagging AWS + * resources in the AWS General Reference Guide.

                          + */ + Tags?: Tag[]; +} + +export namespace CreateModelPackageGroupInput { + export const filterSensitiveLog = (obj: CreateModelPackageGroupInput): any => ({ + ...obj, + }); +} +export interface CreateModelPackageGroupOutput { /** - *

                          The session expiration duration in seconds.

                          + *

                          The Amazon Resource Name (ARN) of the model group.

                          */ - SessionExpirationDurationInSeconds?: number; + ModelPackageGroupArn: string | undefined; } -export namespace CreatePresignedDomainUrlRequest { - export const filterSensitiveLog = (obj: CreatePresignedDomainUrlRequest): any => ({ +export namespace CreateModelPackageGroupOutput { + export const filterSensitiveLog = (obj: CreateModelPackageGroupOutput): any => ({ ...obj, }); } diff --git a/clients/client-sagemaker/models/models_1.ts b/clients/client-sagemaker/models/models_1.ts index b4b9ec024344e..502b04578d50a 100644 --- a/clients/client-sagemaker/models/models_1.ts +++ b/clients/client-sagemaker/models/models_1.ts @@ -1,24 +1,15 @@ import { ActionSource, ActionStatus, - ActionSummary, - AlgorithmSortBy, AlgorithmSpecification, AlgorithmStatus, AlgorithmStatusDetails, - AlgorithmSummary, AlgorithmValidationSpecification, - AppDetails, - AppImageConfigDetails, - AppImageConfigSortKey, AppNetworkAccessType, - AppSortKey, AppSpecification, AppStatus, AppType, ArtifactSource, - ArtifactSummary, - AssociationEdgeType, AthenaDatasetDefinition, AuthMode, AutoMLCandidate, @@ -43,7 +34,11 @@ import { ContainerDefinition, ContextSource, DataCaptureConfig, - DirectInternetAccess, + DataQualityAppSpecification, + DataQualityBaselineConfig, + DataQualityJobInput, + EdgeOutputConfig, + EndpointInput, FeatureDefinition, FlowDefinitionOutputConfig, GitConfig, @@ -54,7 +49,6 @@ import { HyperParameterTrainingJobDefinition, HyperParameterTuningJobConfig, HyperParameterTuningJobObjectiveType, - HyperParameterTuningJobStrategyType, HyperParameterTuningJobWarmStartConfig, InferenceSpecification, InputConfig, @@ -65,12 +59,21 @@ import { LabelingJobStoppingConditions, MetadataProperties, ModelApprovalStatus, + ModelBiasAppSpecification, + ModelBiasBaselineConfig, + ModelBiasJobInput, + ModelExplainabilityAppSpecification, + ModelExplainabilityBaselineConfig, + ModelExplainabilityJobInput, ModelMetrics, ModelPackageValidationSpecification, - MonitoringScheduleConfig, - NetworkConfig, - NotebookInstanceAcceleratorType, - NotebookInstanceLifecycleHook, + MonitoringConstraintsResource, + MonitoringGroundTruthS3Input, + MonitoringNetworkConfig, + MonitoringOutputConfig, + MonitoringResources, + MonitoringStatisticsResource, + MonitoringStoppingCondition, ObjectiveStatus, OfflineStoreConfig, OnlineStoreConfig, @@ -83,9 +86,7 @@ import { ProcessingS3UploadMode, ProductionVariant, ResourceConfig, - ResourceLimits, ResourceSpec, - RootAccess, SourceAlgorithmSpecification, StoppingCondition, Tag, @@ -96,2785 +97,2889 @@ import { UserContext, UserSettings, VpcConfig, - _InstanceType, } from "./models_0"; import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; -export interface CreatePresignedDomainUrlResponse { +export enum MonitoringProblemType { + BINARY_CLASSIFICATION = "BinaryClassification", + MULTICLASS_CLASSIFICATION = "MulticlassClassification", + REGRESSION = "Regression", +} + +/** + *

                          Container image configuration object for the monitoring job.

                          + */ +export interface ModelQualityAppSpecification { /** - *

                          The presigned URL.

                          + *

                          The address of the container image that the monitoring job runs.

                          */ - AuthorizedUrl?: string; -} + ImageUri: string | undefined; -export namespace CreatePresignedDomainUrlResponse { - export const filterSensitiveLog = (obj: CreatePresignedDomainUrlResponse): any => ({ - ...obj, - }); -} + /** + *

                          Specifies the entrypoint for a container that the monitoring job runs.

                          + */ + ContainerEntrypoint?: string[]; -export interface CreatePresignedNotebookInstanceUrlInput { /** - *

                          The name of the notebook instance.

                          + *

                          An array of arguments for the container used to run the monitoring job.

                          */ - NotebookInstanceName: string | undefined; + ContainerArguments?: string[]; /** - *

                          The duration of the session, in seconds. The default is 12 hours.

                          + *

                          An Amazon S3 URI to a script that is called per row prior to running analysis. It can + * base64 decode the payload and convert it into a flatted json so that the built-in container + * can use the converted data. Applicable only for the built-in (first party) + * containers.

                          */ - SessionExpirationDurationInSeconds?: number; -} + RecordPreprocessorSourceUri?: string; -export namespace CreatePresignedNotebookInstanceUrlInput { - export const filterSensitiveLog = (obj: CreatePresignedNotebookInstanceUrlInput): any => ({ - ...obj, - }); -} + /** + *

                          An Amazon S3 URI to a script that is called after analysis has been performed. + * Applicable only for the built-in (first party) containers.

                          + */ + PostAnalyticsProcessorSourceUri?: string; -export interface CreatePresignedNotebookInstanceUrlOutput { /** - *

                          A JSON object that contains the URL string.

                          + *

                          The machine learning problem type of the model that the monitoring job monitors.

                          */ - AuthorizedUrl?: string; + ProblemType?: MonitoringProblemType | string; + + /** + *

                          Sets the environment variables in the container that the monitoring job runs.

                          + */ + Environment?: { [key: string]: string }; } -export namespace CreatePresignedNotebookInstanceUrlOutput { - export const filterSensitiveLog = (obj: CreatePresignedNotebookInstanceUrlOutput): any => ({ +export namespace ModelQualityAppSpecification { + export const filterSensitiveLog = (obj: ModelQualityAppSpecification): any => ({ ...obj, }); } /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          Configuration for monitoring constraints and monitoring statistics. These baseline + * resources are compared against the results of the current job from the series of jobs + * scheduled to collect data periodically.

                          */ -export interface ExperimentConfig { - /** - *

                          The name of an existing experiment to associate the trial component with.

                          - */ - ExperimentName?: string; - +export interface ModelQualityBaselineConfig { /** - *

                          The name of an existing trial to associate the trial component with. If not specified, a - * new trial is created.

                          + *

                          The name of the job that performs baselining for the monitoring job.

                          */ - TrialName?: string; + BaseliningJobName?: string; /** - *

                          The display name for the trial component. If this key isn't specified, the display name is - * the trial component name.

                          + *

                          The constraints resource for a monitoring job.

                          */ - TrialComponentDisplayName?: string; + ConstraintsResource?: MonitoringConstraintsResource; } -export namespace ExperimentConfig { - export const filterSensitiveLog = (obj: ExperimentConfig): any => ({ +export namespace ModelQualityBaselineConfig { + export const filterSensitiveLog = (obj: ModelQualityBaselineConfig): any => ({ ...obj, }); } -export enum DataDistributionType { - FULLYREPLICATED = "FullyReplicated", - SHARDEDBYS3KEY = "ShardedByS3Key", -} - -export enum InputMode { - FILE = "File", - PIPE = "Pipe", -} - -export enum RedshiftResultCompressionType { - BZIP2 = "BZIP2", - GZIP = "GZIP", - NONE = "None", - SNAPPY = "SNAPPY", - ZSTD = "ZSTD", -} - -export enum RedshiftResultFormat { - CSV = "CSV", - PARQUET = "PARQUET", -} - /** - *

                          Configuration for Redshift Dataset Definition input.

                          + *

                          The input for the model quality monitoring job. Currently endponts are supported for + * input for model quality monitoring jobs.

                          */ -export interface RedshiftDatasetDefinition { - /** - *

                          The Redshift cluster Identifier.

                          - */ - ClusterId: string | undefined; - +export interface ModelQualityJobInput { /** - *

                          The name of the Redshift database used in Redshift query execution.

                          + *

                          Input object for the endpoint

                          */ - Database: string | undefined; + EndpointInput: EndpointInput | undefined; /** - *

                          The database user name used in Redshift query execution.

                          + *

                          The ground truth label provided for the model.

                          */ - DbUser: string | undefined; + GroundTruthS3Input: MonitoringGroundTruthS3Input | undefined; +} - /** - *

                          The SQL query statements to be executed.

                          - */ - QueryString: string | undefined; +export namespace ModelQualityJobInput { + export const filterSensitiveLog = (obj: ModelQualityJobInput): any => ({ + ...obj, + }); +} +export interface CreateModelQualityJobDefinitionRequest { /** - *

                          The IAM role attached to your Redshift cluster that Amazon SageMaker uses to generate datasets.

                          + *

                          The name of the monitoring job definition.

                          */ - ClusterRoleArn: string | undefined; + JobDefinitionName: string | undefined; /** - *

                          The location in Amazon S3 where the Redshift query results are stored.

                          + *

                          Specifies the constraints and baselines for the monitoring job.

                          */ - OutputS3Uri: string | undefined; + ModelQualityBaselineConfig?: ModelQualityBaselineConfig; /** - *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data from a - * Redshift execution.

                          + *

                          The container that runs the monitoring job.

                          */ - KmsKeyId?: string; + ModelQualityAppSpecification: ModelQualityAppSpecification | undefined; /** - *

                          The data storage format for Redshift query results.

                          + *

                          A list of the inputs that are monitored. Currently endpoints are supported.

                          */ - OutputFormat: RedshiftResultFormat | string | undefined; + ModelQualityJobInput: ModelQualityJobInput | undefined; /** - *

                          The compression used for Redshift query results.

                          + *

                          The output configuration for monitoring jobs.

                          */ - OutputCompression?: RedshiftResultCompressionType | string; -} - -export namespace RedshiftDatasetDefinition { - export const filterSensitiveLog = (obj: RedshiftDatasetDefinition): any => ({ - ...obj, - }); -} + ModelQualityJobOutputConfig: MonitoringOutputConfig | undefined; -/** - *

                          Configuration for Dataset Definition inputs. The Dataset Definition input must specify - * exactly one of either AthenaDatasetDefinition or RedshiftDatasetDefinition - * types.

                          - */ -export interface DatasetDefinition { /** - *

                          Configuration for Athena Dataset Definition input.

                          + *

                          Identifies the resources to deploy for a monitoring job.

                          */ - AthenaDatasetDefinition?: AthenaDatasetDefinition; + JobResources: MonitoringResources | undefined; /** - *

                          Configuration for Redshift Dataset Definition input.

                          + *

                          Specifies the network configuration for the monitoring job.

                          */ - RedshiftDatasetDefinition?: RedshiftDatasetDefinition; + NetworkConfig?: MonitoringNetworkConfig; /** - *

                          The local path where you want Amazon SageMaker to download the Dataset Definition inputs to run a - * processing job. LocalPath is an absolute path to the input data. This is a required - * parameter when AppManaged is False (default).

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                          */ - LocalPath?: string; + RoleArn: string | undefined; /** - *

                          Whether the generated dataset is FullyReplicated or - * ShardedByS3Key (default).

                          + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          */ - DataDistributionType?: DataDistributionType | string; + StoppingCondition?: MonitoringStoppingCondition; /** - *

                          Whether to use File or Pipe input mode. In File (default) mode, - * Amazon SageMaker copies the data from the input source onto the local Amazon Elastic Block Store - * (Amazon EBS) volumes before starting your training algorithm. This is the most commonly used - * input mode. In Pipe mode, Amazon SageMaker streams input data from the source directly to your - * algorithm without using the EBS volume.

                          + *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          */ - InputMode?: InputMode | string; + Tags?: Tag[]; } -export namespace DatasetDefinition { - export const filterSensitiveLog = (obj: DatasetDefinition): any => ({ +export namespace CreateModelQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: CreateModelQualityJobDefinitionRequest): any => ({ ...obj, }); } -export enum ProcessingS3CompressionType { - GZIP = "Gzip", - NONE = "None", +export interface CreateModelQualityJobDefinitionResponse { + /** + *

                          The Amazon Resource Name (ARN) of the model quality monitoring job.

                          + */ + JobDefinitionArn: string | undefined; } -export enum ProcessingS3DataType { - MANIFEST_FILE = "ManifestFile", - S3_PREFIX = "S3Prefix", +export namespace CreateModelQualityJobDefinitionResponse { + export const filterSensitiveLog = (obj: CreateModelQualityJobDefinitionResponse): any => ({ + ...obj, + }); } /** - *

                          Configuration for processing job inputs in Amazon S3.

                          + *

                          Configuration for monitoring constraints and monitoring statistics. These baseline + * resources are compared against the results of the current job from the series of jobs + * scheduled to collect data periodically.

                          */ -export interface ProcessingS3Input { - /** - *

                          The URI for the Amazon S3 storage where you want Amazon SageMaker to download the artifacts needed - * to run a processing job.

                          - */ - S3Uri: string | undefined; - - /** - *

                          The local path to the Amazon S3 bucket where you want Amazon SageMaker to download the inputs to - * run a processing job. LocalPath is an absolute path to the input - * data. This is a required parameter when AppManaged is False - * (default).

                          - */ - LocalPath?: string; - - /** - *

                          Whether you use an S3Prefix or a ManifestFile for - * the data type. If you choose S3Prefix, S3Uri identifies a key - * name prefix. Amazon SageMaker uses all objects with the specified key name prefix for the processing - * job. If you choose ManifestFile, S3Uri identifies an object - * that is a manifest file containing a list of object keys that you want Amazon SageMaker to use for - * the processing job.

                          - */ - S3DataType: ProcessingS3DataType | string | undefined; - +export interface MonitoringBaselineConfig { /** - *

                          Whether to use File or Pipe input mode. In - * File mode, Amazon SageMaker copies the data from the input source onto the local - * Amazon Elastic Block Store (Amazon EBS) volumes before starting your training algorithm. - * This is the most commonly used input mode. In Pipe mode, Amazon SageMaker streams input - * data from the source directly to your algorithm without using the EBS volume.This is a - * required parameter when AppManaged is False (default).

                          + *

                          The name of the job that performs baselining for the monitoring job.

                          */ - S3InputMode?: ProcessingS3InputMode | string; + BaseliningJobName?: string; /** - *

                          Whether the data stored in Amazon S3 is FullyReplicated or - * ShardedByS3Key.

                          + *

                          The baseline constraint file in Amazon S3 that the current monitoring job should + * validated against.

                          */ - S3DataDistributionType?: ProcessingS3DataDistributionType | string; + ConstraintsResource?: MonitoringConstraintsResource; /** - *

                          Whether to use Gzip compression for Amazon S3 storage.

                          + *

                          The baseline statistics file in Amazon S3 that the current monitoring job should be + * validated against.

                          */ - S3CompressionType?: ProcessingS3CompressionType | string; + StatisticsResource?: MonitoringStatisticsResource; } -export namespace ProcessingS3Input { - export const filterSensitiveLog = (obj: ProcessingS3Input): any => ({ +export namespace MonitoringBaselineConfig { + export const filterSensitiveLog = (obj: MonitoringBaselineConfig): any => ({ ...obj, }); } /** - *

                          The inputs for a processing job. The processing input must specify exactly one of either - * S3Input or DatasetDefinition types.

                          + *

                          Container image configuration object for the monitoring job.

                          */ -export interface ProcessingInput { +export interface MonitoringAppSpecification { /** - *

                          The name of the inputs for the processing job.

                          + *

                          The container image to be run by the monitoring job.

                          */ - InputName: string | undefined; + ImageUri: string | undefined; /** - *

                          When True, input operations such as data download are managed natively by the - * processing job application. When False (default), input operations are managed by Amazon SageMaker.

                          + *

                          Specifies the entrypoint for a container used to run the monitoring job.

                          */ - AppManaged?: boolean; + ContainerEntrypoint?: string[]; /** - *

                          Configuration for processing job inputs in Amazon S3.

                          + *

                          An array of arguments for the container used to run the monitoring job.

                          */ - S3Input?: ProcessingS3Input; + ContainerArguments?: string[]; /** - *

                          Configuration for a Dataset Definition input.

                          + *

                          An Amazon S3 URI to a script that is called per row prior to running analysis. It can + * base64 decode the payload and convert it into a flatted json so that the built-in container + * can use the converted data. Applicable only for the built-in (first party) + * containers.

                          */ - DatasetDefinition?: DatasetDefinition; + RecordPreprocessorSourceUri?: string; + + /** + *

                          An Amazon S3 URI to a script that is called after analysis has been performed. + * Applicable only for the built-in (first party) containers.

                          + */ + PostAnalyticsProcessorSourceUri?: string; } -export namespace ProcessingInput { - export const filterSensitiveLog = (obj: ProcessingInput): any => ({ +export namespace MonitoringAppSpecification { + export const filterSensitiveLog = (obj: MonitoringAppSpecification): any => ({ ...obj, }); } /** - *

                          Configuration for processing job outputs in Amazon SageMaker Feature Store.

                          + *

                          The inputs for a monitoring job.

                          */ -export interface ProcessingFeatureStoreOutput { +export interface MonitoringInput { /** - *

                          The name of the Amazon SageMaker FeatureGroup to use as the destination for processing job output.

                          + *

                          The endpoint for a monitoring job.

                          */ - FeatureGroupName: string | undefined; + EndpointInput: EndpointInput | undefined; } -export namespace ProcessingFeatureStoreOutput { - export const filterSensitiveLog = (obj: ProcessingFeatureStoreOutput): any => ({ +export namespace MonitoringInput { + export const filterSensitiveLog = (obj: MonitoringInput): any => ({ ...obj, }); } /** - *

                          Configuration for processing job outputs in Amazon S3.

                          + *

                          Networking options for a job, such as network traffic encryption between containers, + * whether to allow inbound and outbound network calls to and from containers, and the VPC + * subnets and security groups to use for VPC-enabled jobs.

                          */ -export interface ProcessingS3Output { +export interface NetworkConfig { /** - *

                          A URI that identifies the Amazon S3 bucket where you want Amazon SageMaker to save the results of - * a processing job.

                          + *

                          Whether to encrypt all communications between distributed processing jobs. Choose + * True to encrypt communications. Encryption provides greater security for distributed + * processing jobs, but the processing might take longer.

                          */ - S3Uri: string | undefined; + EnableInterContainerTrafficEncryption?: boolean; /** - *

                          The local path to the Amazon S3 bucket where you want Amazon SageMaker to save the results of an - * processing job. LocalPath is an absolute path to the input data.

                          + *

                          Whether to allow inbound and outbound network calls to and from the containers used for + * the processing job.

                          */ - LocalPath: string | undefined; + EnableNetworkIsolation?: boolean; /** - *

                          Whether to upload the results of the processing job continuously or after the job - * completes.

                          + *

                          Specifies a VPC that your training jobs and hosted models have access to. Control + * access to and from your training and model containers by configuring the VPC. For more + * information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Training Jobs + * by Using an Amazon Virtual Private Cloud.

                          */ - S3UploadMode: ProcessingS3UploadMode | string | undefined; + VpcConfig?: VpcConfig; } -export namespace ProcessingS3Output { - export const filterSensitiveLog = (obj: ProcessingS3Output): any => ({ +export namespace NetworkConfig { + export const filterSensitiveLog = (obj: NetworkConfig): any => ({ ...obj, }); } /** - *

                          Describes the results of a processing job. The processing output must specify exactly one of - * either S3Output or FeatureStoreOutput types.

                          + *

                          Defines the monitoring job.

                          */ -export interface ProcessingOutput { +export interface MonitoringJobDefinition { /** - *

                          The name for the processing job output.

                          + *

                          Baseline configuration used to validate that the data conforms to the specified + * constraints and statistics

                          */ - OutputName: string | undefined; + BaselineConfig?: MonitoringBaselineConfig; /** - *

                          Configuration for processing job outputs in Amazon S3.

                          + *

                          The array of inputs for the monitoring job. Currently we support monitoring an Amazon SageMaker + * Endpoint.

                          */ - S3Output?: ProcessingS3Output; + MonitoringInputs: MonitoringInput[] | undefined; /** - *

                          Configuration for processing job outputs in Amazon SageMaker Feature Store. This processing output - * type is only supported when AppManaged is specified.

                          + *

                          The array of outputs from the monitoring job to be uploaded to Amazon Simple Storage + * Service (Amazon S3).

                          */ - FeatureStoreOutput?: ProcessingFeatureStoreOutput; + MonitoringOutputConfig: MonitoringOutputConfig | undefined; /** - *

                          When True, output operations such as data upload are managed natively by the - * processing job application. When False (default), output operations are managed by - * Amazon SageMaker.

                          + *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a + * monitoring job. In distributed processing, you specify more than one instance.

                          */ - AppManaged?: boolean; + MonitoringResources: MonitoringResources | undefined; + + /** + *

                          Configures the monitoring job to run a specified Docker container image.

                          + */ + MonitoringAppSpecification: MonitoringAppSpecification | undefined; + + /** + *

                          Specifies a time limit for how long the monitoring job is allowed to run.

                          + */ + StoppingCondition?: MonitoringStoppingCondition; + + /** + *

                          Sets the environment variables in the Docker container.

                          + */ + Environment?: { [key: string]: string }; + + /** + *

                          Specifies networking options for an monitoring job.

                          + */ + NetworkConfig?: NetworkConfig; + + /** + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on + * your behalf.

                          + */ + RoleArn: string | undefined; } -export namespace ProcessingOutput { - export const filterSensitiveLog = (obj: ProcessingOutput): any => ({ +export namespace MonitoringJobDefinition { + export const filterSensitiveLog = (obj: MonitoringJobDefinition): any => ({ ...obj, }); } +export enum MonitoringType { + DATA_QUALITY = "DataQuality", + MODEL_BIAS = "ModelBias", + MODEL_EXPLAINABILITY = "ModelExplainability", + MODEL_QUALITY = "ModelQuality", +} + /** - *

                          The output configuration for the processing job.

                          + *

                          Configuration details about the monitoring schedule.

                          */ -export interface ProcessingOutputConfig { +export interface ScheduleConfig { /** - *

                          List of output configurations for the processing job.

                          - */ - Outputs: ProcessingOutput[] | undefined; - - /** - *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the processing - * job output. KmsKeyId can be an ID of a KMS key, ARN of a KMS key, alias of - * a KMS key, or alias of a KMS key. The KmsKeyId is applied to all - * outputs.

                          + *

                          A cron expression that describes details about the monitoring schedule.

                          + * + *

                          Currently the only supported cron expressions are:

                          + *
                            + *
                          • + *

                            If you want to set the job to start every hour, please use the following:

                            + *

                            + * Hourly: cron(0 * ? * * *) + *

                            + *
                          • + *
                          • + *

                            If you want to start the job daily:

                            + *

                            + * cron(0 [00-23] ? * * *) + *

                            + *
                          • + *
                          + *

                          For example, the following are valid cron expressions:

                          + *
                            + *
                          • + *

                            Daily at noon UTC: cron(0 12 ? * * *) + *

                            + *
                          • + *
                          • + *

                            Daily at midnight UTC: cron(0 0 ? * * *) + *

                            + *
                          • + *
                          + * + *

                          To support running every 6, 12 hours, the following are also supported:

                          + *

                          + * cron(0 [00-23]/[01-24] ? * * *) + *

                          + *

                          For example, the following are valid cron expressions:

                          + *
                            + *
                          • + *

                            Every 12 hours, starting at 5pm UTC: cron(0 17/12 ? * * *) + *

                            + *
                          • + *
                          • + *

                            Every two hours starting at midnight: cron(0 0/2 ? * * *) + *

                            + *
                          • + *
                          + * + * + *
                            + *
                          • + *

                            Even though the cron expression is set to start at 5PM UTC, note that there + * could be a delay of 0-20 minutes from the actual requested time to run the + * execution.

                            + *
                          • + *
                          • + *

                            We recommend that if you would like a daily schedule, you do not provide this + * parameter. Amazon SageMaker will pick a time for running every day.

                            + *
                          • + *
                          + *
                          */ - KmsKeyId?: string; + ScheduleExpression: string | undefined; } -export namespace ProcessingOutputConfig { - export const filterSensitiveLog = (obj: ProcessingOutputConfig): any => ({ +export namespace ScheduleConfig { + export const filterSensitiveLog = (obj: ScheduleConfig): any => ({ ...obj, }); } /** - *

                          Configuration for the cluster used to run a processing job.

                          + *

                          Configures the monitoring schedule and defines the monitoring job.

                          */ -export interface ProcessingClusterConfig { +export interface MonitoringScheduleConfig { /** - *

                          The number of ML compute instances to use in the processing job. For distributed - * processing jobs, specify a value greater than 1. The default value is 1.

                          + *

                          Configures the monitoring schedule.

                          */ - InstanceCount: number | undefined; + ScheduleConfig?: ScheduleConfig; /** - *

                          The ML compute instance type for the processing job.

                          + *

                          Defines the monitoring job.

                          */ - InstanceType: ProcessingInstanceType | string | undefined; + MonitoringJobDefinition?: MonitoringJobDefinition; /** - *

                          The size of the ML storage volume in gigabytes that you want to provision. You must - * specify sufficient ML storage for your scenario.

                          + *

                          The name of the monitoring job definition to schedule.

                          */ - VolumeSizeInGB: number | undefined; + MonitoringJobDefinitionName?: string; /** - *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the - * storage volume attached to the ML compute instance(s) that run the processing job. - *

                          + *

                          The type of the monitoring job definition to schedule.

                          */ - VolumeKmsKeyId?: string; + MonitoringType?: MonitoringType | string; } -export namespace ProcessingClusterConfig { - export const filterSensitiveLog = (obj: ProcessingClusterConfig): any => ({ +export namespace MonitoringScheduleConfig { + export const filterSensitiveLog = (obj: MonitoringScheduleConfig): any => ({ ...obj, }); } -/** - *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a - * processing job. In distributed training, you specify more than one instance.

                          - */ -export interface ProcessingResources { +export interface CreateMonitoringScheduleRequest { /** - *

                          The configuration for the resources in a cluster used to run the processing - * job.

                          + *

                          The name of the monitoring schedule. The name must be unique within an AWS Region within + * an AWS account.

                          */ - ClusterConfig: ProcessingClusterConfig | undefined; + MonitoringScheduleName: string | undefined; + + /** + *

                          The configuration object that specifies the monitoring schedule and defines the + * monitoring job.

                          + */ + MonitoringScheduleConfig: MonitoringScheduleConfig | undefined; + + /** + *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          + */ + Tags?: Tag[]; } -export namespace ProcessingResources { - export const filterSensitiveLog = (obj: ProcessingResources): any => ({ +export namespace CreateMonitoringScheduleRequest { + export const filterSensitiveLog = (obj: CreateMonitoringScheduleRequest): any => ({ ...obj, }); } -/** - *

                          Specifies a time limit for how long the processing job is allowed to run.

                          - */ -export interface ProcessingStoppingCondition { +export interface CreateMonitoringScheduleResponse { /** - *

                          Specifies the maximum runtime in seconds.

                          + *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          */ - MaxRuntimeInSeconds: number | undefined; + MonitoringScheduleArn: string | undefined; } -export namespace ProcessingStoppingCondition { - export const filterSensitiveLog = (obj: ProcessingStoppingCondition): any => ({ +export namespace CreateMonitoringScheduleResponse { + export const filterSensitiveLog = (obj: CreateMonitoringScheduleResponse): any => ({ ...obj, }); } -export interface CreateProcessingJobRequest { +export enum NotebookInstanceAcceleratorType { + ML_EIA1_LARGE = "ml.eia1.large", + ML_EIA1_MEDIUM = "ml.eia1.medium", + ML_EIA1_XLARGE = "ml.eia1.xlarge", + ML_EIA2_LARGE = "ml.eia2.large", + ML_EIA2_MEDIUM = "ml.eia2.medium", + ML_EIA2_XLARGE = "ml.eia2.xlarge", +} + +export enum DirectInternetAccess { + DISABLED = "Disabled", + ENABLED = "Enabled", +} + +export enum _InstanceType { + ML_C4_2XLARGE = "ml.c4.2xlarge", + ML_C4_4XLARGE = "ml.c4.4xlarge", + ML_C4_8XLARGE = "ml.c4.8xlarge", + ML_C4_XLARGE = "ml.c4.xlarge", + ML_C5D_18XLARGE = "ml.c5d.18xlarge", + ML_C5D_2XLARGE = "ml.c5d.2xlarge", + ML_C5D_4XLARGE = "ml.c5d.4xlarge", + ML_C5D_9XLARGE = "ml.c5d.9xlarge", + ML_C5D_XLARGE = "ml.c5d.xlarge", + ML_C5_18XLARGE = "ml.c5.18xlarge", + ML_C5_2XLARGE = "ml.c5.2xlarge", + ML_C5_4XLARGE = "ml.c5.4xlarge", + ML_C5_9XLARGE = "ml.c5.9xlarge", + ML_C5_XLARGE = "ml.c5.xlarge", + ML_M4_10XLARGE = "ml.m4.10xlarge", + ML_M4_16XLARGE = "ml.m4.16xlarge", + ML_M4_2XLARGE = "ml.m4.2xlarge", + ML_M4_4XLARGE = "ml.m4.4xlarge", + ML_M4_XLARGE = "ml.m4.xlarge", + ML_M5_12XLARGE = "ml.m5.12xlarge", + ML_M5_24XLARGE = "ml.m5.24xlarge", + ML_M5_2XLARGE = "ml.m5.2xlarge", + ML_M5_4XLARGE = "ml.m5.4xlarge", + ML_M5_XLARGE = "ml.m5.xlarge", + ML_P2_16XLARGE = "ml.p2.16xlarge", + ML_P2_8XLARGE = "ml.p2.8xlarge", + ML_P2_XLARGE = "ml.p2.xlarge", + ML_P3_16XLARGE = "ml.p3.16xlarge", + ML_P3_2XLARGE = "ml.p3.2xlarge", + ML_P3_8XLARGE = "ml.p3.8xlarge", + ML_T2_2XLARGE = "ml.t2.2xlarge", + ML_T2_LARGE = "ml.t2.large", + ML_T2_MEDIUM = "ml.t2.medium", + ML_T2_XLARGE = "ml.t2.xlarge", + ML_T3_2XLARGE = "ml.t3.2xlarge", + ML_T3_LARGE = "ml.t3.large", + ML_T3_MEDIUM = "ml.t3.medium", + ML_T3_XLARGE = "ml.t3.xlarge", +} + +export enum RootAccess { + DISABLED = "Disabled", + ENABLED = "Enabled", +} + +export interface CreateNotebookInstanceInput { /** - *

                          List of input configurations for the processing job.

                          + *

                          The name of the new notebook instance.

                          */ - ProcessingInputs?: ProcessingInput[]; + NotebookInstanceName: string | undefined; /** - *

                          Output configuration for the processing job.

                          + *

                          The type of ML compute instance to launch for the notebook instance.

                          */ - ProcessingOutputConfig?: ProcessingOutputConfig; + InstanceType: _InstanceType | string | undefined; /** - *

                          The name of the processing job. The name must be unique within an AWS Region in the - * AWS account.

                          + *

                          The ID of the subnet in a VPC to which you would like to have a connectivity from + * your ML compute instance.

                          */ - ProcessingJobName: string | undefined; + SubnetId?: string; /** - *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a - * processing job. In distributed training, you specify more than one instance.

                          + *

                          The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be + * for the same VPC as specified in the subnet.

                          */ - ProcessingResources: ProcessingResources | undefined; + SecurityGroupIds?: string[]; /** - *

                          The time limit for how long the processing job is allowed to run.

                          + *

                          When you send any requests to AWS resources from the notebook instance, Amazon SageMaker + * assumes this role to perform tasks on your behalf. You must grant this role necessary + * permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service + * principal (sagemaker.amazonaws.com) permissions to assume this role. For more + * information, see Amazon SageMaker Roles.

                          + * + *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the + * iam:PassRole permission.

                          + *
                          */ - StoppingCondition?: ProcessingStoppingCondition; + RoleArn: string | undefined; /** - *

                          Configures the processing job to run a specified Docker container image.

                          + *

                          The Amazon Resource Name (ARN) of a AWS Key Management Service key that Amazon SageMaker uses to encrypt data on + * the storage volume attached to your notebook instance. The KMS key you provide must be + * enabled. For information, see Enabling and Disabling + * Keys in the AWS Key Management Service Developer Guide.

                          */ - AppSpecification: AppSpecification | undefined; + KmsKeyId?: string; /** - *

                          Sets the environment variables in the Docker container.

                          + *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                          */ - Environment?: { [key: string]: string }; + Tags?: Tag[]; /** - *

                          Networking options for a processing job.

                          + *

                          The name of a lifecycle configuration to associate with the notebook instance. For + * information about lifestyle configurations, see Step 2.1: (Optional) + * Customize a Notebook Instance.

                          */ - NetworkConfig?: NetworkConfig; + LifecycleConfigName?: string; /** - *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on - * your behalf.

                          + *

                          Sets whether Amazon SageMaker provides internet access to the notebook instance. If you set this + * to Disabled this notebook instance will be able to access resources only in + * your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless + * your configure a NAT Gateway in your VPC.

                          + *

                          For more information, see Notebook Instances Are Internet-Enabled by Default. You can set the value + * of this parameter to Disabled only if you set a value for the + * SubnetId parameter.

                          */ - RoleArn: string | undefined; + DirectInternetAccess?: DirectInternetAccess | string; /** - *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management - * User Guide.

                          + *

                          The size, in GB, of the ML storage volume to attach to the notebook instance. The + * default value is 5 GB.

                          */ - Tags?: Tag[]; + VolumeSizeInGB?: number; /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          A list of Elastic Inference (EI) instance types to associate with this notebook + * instance. Currently, only one instance type can be associated with a notebook instance. + * For more information, see Using Elastic Inference in Amazon SageMaker.

                          */ - ExperimentConfig?: ExperimentConfig; + AcceleratorTypes?: (NotebookInstanceAcceleratorType | string)[]; + + /** + *

                          A Git repository to associate with the notebook instance as its default code + * repository. This can be either the name of a Git repository stored as a resource in your + * account, or the URL of a Git repository in AWS CodeCommit or in any + * other Git repository. When you open a notebook instance, it opens in the directory that + * contains this repository. For more information, see Associating Git Repositories with Amazon SageMaker + * Notebook Instances.

                          + */ + DefaultCodeRepository?: string; + + /** + *

                          An array of up to three Git repositories to associate with the notebook instance. + * These can be either the names of Git repositories stored as resources in your account, + * or the URL of Git repositories in AWS CodeCommit or in any + * other Git repository. These repositories are cloned at the same level as the default + * repository of your notebook instance. For more information, see Associating Git + * Repositories with Amazon SageMaker Notebook Instances.

                          + */ + AdditionalCodeRepositories?: string[]; + + /** + *

                          Whether root access is enabled or disabled for users of the notebook instance. The + * default value is Enabled.

                          + * + *

                          Lifecycle configurations need root access to be able to set up a notebook + * instance. Because of this, lifecycle configurations associated with a notebook + * instance always run with root access even if you disable root access for + * users.

                          + *
                          + */ + RootAccess?: RootAccess | string; } -export namespace CreateProcessingJobRequest { - export const filterSensitiveLog = (obj: CreateProcessingJobRequest): any => ({ +export namespace CreateNotebookInstanceInput { + export const filterSensitiveLog = (obj: CreateNotebookInstanceInput): any => ({ ...obj, }); } -export interface CreateProcessingJobResponse { +export interface CreateNotebookInstanceOutput { /** - *

                          The Amazon Resource Name (ARN) of the processing job.

                          + *

                          The Amazon Resource Name (ARN) of the notebook instance.

                          */ - ProcessingJobArn: string | undefined; + NotebookInstanceArn?: string; } -export namespace CreateProcessingJobResponse { - export const filterSensitiveLog = (obj: CreateProcessingJobResponse): any => ({ +export namespace CreateNotebookInstanceOutput { + export const filterSensitiveLog = (obj: CreateNotebookInstanceOutput): any => ({ ...obj, }); } /** - *

                          A key value pair used when you provision a project as a service catalog product. For - * information, see What is AWS Service - * Catalog.

                          + *

                          Contains the notebook instance lifecycle configuration script.

                          + *

                          Each lifecycle configuration script has a limit of 16384 characters.

                          + *

                          The value of the $PATH environment variable that is available to both + * scripts is /sbin:bin:/usr/sbin:/usr/bin.

                          + *

                          View CloudWatch Logs for notebook instance lifecycle configurations in log group + * /aws/sagemaker/NotebookInstances in log stream + * [notebook-instance-name]/[LifecycleConfigHook].

                          + *

                          Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs + * for longer than 5 minutes, it fails and the notebook instance is not created or + * started.

                          + *

                          For information about notebook instance lifestyle configurations, see Step + * 2.1: (Optional) Customize a Notebook Instance.

                          */ -export interface ProvisioningParameter { - /** - *

                          The key that identifies a provisioning parameter.

                          - */ - Key?: string; - +export interface NotebookInstanceLifecycleHook { /** - *

                          The value of the provisioning parameter.

                          + *

                          A base64-encoded string that contains a shell script for a notebook instance lifecycle + * configuration.

                          */ - Value?: string; + Content?: string; } -export namespace ProvisioningParameter { - export const filterSensitiveLog = (obj: ProvisioningParameter): any => ({ +export namespace NotebookInstanceLifecycleHook { + export const filterSensitiveLog = (obj: NotebookInstanceLifecycleHook): any => ({ ...obj, }); } -/** - *

                          Details that you specify to provision a service catalog product. For information about - * service catalog, see .What is AWS Service - * Catalog.

                          - */ -export interface ServiceCatalogProvisioningDetails { +export interface CreateNotebookInstanceLifecycleConfigInput { /** - *

                          The ID of the product to provision.

                          + *

                          The name of the lifecycle configuration.

                          */ - ProductId: string | undefined; + NotebookInstanceLifecycleConfigName: string | undefined; /** - *

                          The ID of the provisioning artifact.

                          + *

                          A shell script that runs only once, when you create a notebook instance. The shell + * script must be a base64-encoded string.

                          */ - ProvisioningArtifactId: string | undefined; + OnCreate?: NotebookInstanceLifecycleHook[]; /** - *

                          The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path.

                          + *

                          A shell script that runs every time you start a notebook instance, including when you + * create the notebook instance. The shell script must be a base64-encoded string.

                          */ - PathId?: string; - + OnStart?: NotebookInstanceLifecycleHook[]; +} + +export namespace CreateNotebookInstanceLifecycleConfigInput { + export const filterSensitiveLog = (obj: CreateNotebookInstanceLifecycleConfigInput): any => ({ + ...obj, + }); +} + +export interface CreateNotebookInstanceLifecycleConfigOutput { /** - *

                          A list of key value pairs that you specify when you provision a product.

                          + *

                          The Amazon Resource Name (ARN) of the lifecycle configuration.

                          */ - ProvisioningParameters?: ProvisioningParameter[]; + NotebookInstanceLifecycleConfigArn?: string; } -export namespace ServiceCatalogProvisioningDetails { - export const filterSensitiveLog = (obj: ServiceCatalogProvisioningDetails): any => ({ +export namespace CreateNotebookInstanceLifecycleConfigOutput { + export const filterSensitiveLog = (obj: CreateNotebookInstanceLifecycleConfigOutput): any => ({ ...obj, }); } -export interface CreateProjectInput { +export interface CreatePipelineRequest { /** - *

                          The name of the project.

                          + *

                          The name of the pipeline.

                          */ - ProjectName: string | undefined; + PipelineName: string | undefined; /** - *

                          A description for the project.

                          + *

                          The display name of the pipeline.

                          */ - ProjectDescription?: string; + PipelineDisplayName?: string; /** - *

                          The product ID and provisioning artifact ID to provision a service catalog. For - * information, see What is AWS Service - * Catalog.

                          + *

                          The JSON pipeline definition of the pipeline.

                          */ - ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails | undefined; + PipelineDefinition: string | undefined; /** - *

                          An array of key-value pairs that you want to use to organize and track your AWS - * resource costs. For more information, see Tagging AWS resources in the AWS General Reference Guide.

                          + *

                          A description of the pipeline.

                          */ - Tags?: Tag[]; -} + PipelineDescription?: string; -export namespace CreateProjectInput { - export const filterSensitiveLog = (obj: CreateProjectInput): any => ({ - ...obj, - }); -} + /** + *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the + * operation. An idempotent operation completes no more than one time.

                          + */ + ClientRequestToken?: string; -export interface CreateProjectOutput { /** - *

                          The Amazon Resource Name (ARN) of the project.

                          + *

                          The Amazon Resource Name (ARN) of the role used by the pipeline to access and create resources.

                          */ - ProjectArn: string | undefined; + RoleArn: string | undefined; /** - *

                          The ID of the new project.

                          + *

                          A list of tags to apply to the created pipeline.

                          */ - ProjectId: string | undefined; + Tags?: Tag[]; } -export namespace CreateProjectOutput { - export const filterSensitiveLog = (obj: CreateProjectOutput): any => ({ +export namespace CreatePipelineRequest { + export const filterSensitiveLog = (obj: CreatePipelineRequest): any => ({ ...obj, }); } -/** - *

                          Configuration information for the debug hook parameters, collection configuration, and - * storage paths.

                          - */ -export interface DebugHookConfig { +export interface CreatePipelineResponse { /** - *

                          Path to local storage location for tensors. Defaults to - * /opt/ml/output/tensors/.

                          + *

                          The Amazon Resource Name (ARN) of the created pipeline.

                          */ - LocalPath?: string; + PipelineArn?: string; +} + +export namespace CreatePipelineResponse { + export const filterSensitiveLog = (obj: CreatePipelineResponse): any => ({ + ...obj, + }); +} +export interface CreatePresignedDomainUrlRequest { /** - *

                          Path to Amazon S3 storage location for tensors.

                          + *

                          The domain ID.

                          */ - S3OutputPath: string | undefined; + DomainId: string | undefined; /** - *

                          Configuration information for the debug hook parameters.

                          + *

                          The name of the UserProfile to sign-in as.

                          */ - HookParameters?: { [key: string]: string }; + UserProfileName: string | undefined; /** - *

                          Configuration information for tensor collections.

                          + *

                          The session expiration duration in seconds.

                          */ - CollectionConfigurations?: CollectionConfiguration[]; + SessionExpirationDurationInSeconds?: number; } -export namespace DebugHookConfig { - export const filterSensitiveLog = (obj: DebugHookConfig): any => ({ +export namespace CreatePresignedDomainUrlRequest { + export const filterSensitiveLog = (obj: CreatePresignedDomainUrlRequest): any => ({ ...obj, }); } -/** - *

                          Configuration information for debugging rules.

                          - */ -export interface DebugRuleConfiguration { - /** - *

                          The name of the rule configuration. It must be unique relative to other rule - * configuration names.

                          - */ - RuleConfigurationName: string | undefined; - +export interface CreatePresignedDomainUrlResponse { /** - *

                          Path to local storage location for output of rules. Defaults to - * /opt/ml/processing/output/rule/.

                          + *

                          The presigned URL.

                          */ - LocalPath?: string; + AuthorizedUrl?: string; +} - /** - *

                          Path to Amazon S3 storage location for rules.

                          - */ - S3OutputPath?: string; +export namespace CreatePresignedDomainUrlResponse { + export const filterSensitiveLog = (obj: CreatePresignedDomainUrlResponse): any => ({ + ...obj, + }); +} +export interface CreatePresignedNotebookInstanceUrlInput { /** - *

                          The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

                          + *

                          The name of the notebook instance.

                          */ - RuleEvaluatorImage: string | undefined; + NotebookInstanceName: string | undefined; /** - *

                          The instance type to deploy for a training job.

                          + *

                          The duration of the session, in seconds. The default is 12 hours.

                          */ - InstanceType?: ProcessingInstanceType | string; + SessionExpirationDurationInSeconds?: number; +} - /** - *

                          The size, in GB, of the ML storage volume attached to the processing instance.

                          - */ - VolumeSizeInGB?: number; +export namespace CreatePresignedNotebookInstanceUrlInput { + export const filterSensitiveLog = (obj: CreatePresignedNotebookInstanceUrlInput): any => ({ + ...obj, + }); +} +export interface CreatePresignedNotebookInstanceUrlOutput { /** - *

                          Runtime configuration for rule container.

                          + *

                          A JSON object that contains the URL string.

                          */ - RuleParameters?: { [key: string]: string }; + AuthorizedUrl?: string; } -export namespace DebugRuleConfiguration { - export const filterSensitiveLog = (obj: DebugRuleConfiguration): any => ({ +export namespace CreatePresignedNotebookInstanceUrlOutput { + export const filterSensitiveLog = (obj: CreatePresignedNotebookInstanceUrlOutput): any => ({ ...obj, }); } /** - *

                          Configuration of storage locations for TensorBoard output.

                          + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * */ -export interface TensorBoardOutputConfig { +export interface ExperimentConfig { /** - *

                          Path to local storage location for tensorBoard output. Defaults to - * /opt/ml/output/tensorboard.

                          + *

                          The name of an existing experiment to associate the trial component with.

                          */ - LocalPath?: string; + ExperimentName?: string; /** - *

                          Path to Amazon S3 storage location for TensorBoard output.

                          + *

                          The name of an existing trial to associate the trial component with. If not specified, a + * new trial is created.

                          */ - S3OutputPath: string | undefined; + TrialName?: string; + + /** + *

                          The display name for the trial component. If this key isn't specified, the display name is + * the trial component name.

                          + */ + TrialComponentDisplayName?: string; } -export namespace TensorBoardOutputConfig { - export const filterSensitiveLog = (obj: TensorBoardOutputConfig): any => ({ +export namespace ExperimentConfig { + export const filterSensitiveLog = (obj: ExperimentConfig): any => ({ ...obj, }); } -export interface CreateTrainingJobRequest { +export enum DataDistributionType { + FULLYREPLICATED = "FullyReplicated", + SHARDEDBYS3KEY = "ShardedByS3Key", +} + +export enum InputMode { + FILE = "File", + PIPE = "Pipe", +} + +export enum RedshiftResultCompressionType { + BZIP2 = "BZIP2", + GZIP = "GZIP", + NONE = "None", + SNAPPY = "SNAPPY", + ZSTD = "ZSTD", +} + +export enum RedshiftResultFormat { + CSV = "CSV", + PARQUET = "PARQUET", +} + +/** + *

                          Configuration for Redshift Dataset Definition input.

                          + */ +export interface RedshiftDatasetDefinition { /** - *

                          The name of the training job. The name must be unique within an AWS Region in an - * AWS account.

                          + *

                          The Redshift cluster Identifier.

                          */ - TrainingJobName: string | undefined; + ClusterId: string | undefined; /** - *

                          Algorithm-specific parameters that influence the quality of the model. You set - * hyperparameters before you start the learning process. For a list of hyperparameters for - * each training algorithm provided by Amazon SageMaker, see Algorithms.

                          - *

                          You can specify a maximum of 100 hyperparameters. Each hyperparameter is a - * key-value pair. Each key and value is limited to 256 characters, as specified by the - * Length Constraint.

                          + *

                          The name of the Redshift database used in Redshift query execution.

                          */ - HyperParameters?: { [key: string]: string }; + Database: string | undefined; /** - *

                          The registry path of the Docker image that contains the training algorithm and - * algorithm-specific metadata, including the input mode. For more information about - * algorithms provided by Amazon SageMaker, see Algorithms. For information about - * providing your own algorithms, see Using Your Own Algorithms with Amazon - * SageMaker.

                          + *

                          The database user name used in Redshift query execution.

                          */ - AlgorithmSpecification: AlgorithmSpecification | undefined; + DbUser: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform - * tasks on your behalf.

                          - *

                          During model training, Amazon SageMaker needs your permission to read input data from an S3 - * bucket, download a Docker image that contains training code, write model artifacts to an - * S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant - * permissions for all of these tasks to an IAM role. For more information, see Amazon SageMaker - * Roles.

                          - * - *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the - * iam:PassRole permission.

                          - *
                          + *

                          The SQL query statements to be executed.

                          */ - RoleArn: string | undefined; + QueryString: string | undefined; /** - *

                          An array of Channel objects. Each channel is a named input source. - * InputDataConfig - * - * describes the input data and its location.

                          - *

                          Algorithms can accept input data from one or more channels. For example, an - * algorithm might have two channels of input data, training_data and - * validation_data. The configuration for each channel provides the S3, - * EFS, or FSx location where the input data is stored. It also provides information about - * the stored data: the MIME type, compression method, and whether the data is wrapped in - * RecordIO format.

                          - *

                          Depending on the input mode that the algorithm supports, Amazon SageMaker either copies input - * data files from an S3 bucket to a local directory in the Docker container, or makes it - * available as input streams. For example, if you specify an EFS location, input data - * files will be made available as input streams. They do not need to be - * downloaded.

                          + *

                          The IAM role attached to your Redshift cluster that Amazon SageMaker uses to generate datasets.

                          */ - InputDataConfig?: Channel[]; + ClusterRoleArn: string | undefined; /** - *

                          Specifies the path to the S3 location where you want to store model artifacts. Amazon SageMaker - * creates subfolders for the artifacts.

                          + *

                          The location in Amazon S3 where the Redshift query results are stored.

                          */ - OutputDataConfig: OutputDataConfig | undefined; + OutputS3Uri: string | undefined; /** - *

                          The resources, including the ML compute instances and ML storage volumes, to use - * for model training.

                          - *

                          ML storage volumes store model artifacts and incremental states. Training - * algorithms might also use ML storage volumes for scratch space. If you want Amazon SageMaker to use - * the ML storage volume to store the training data, choose File as the - * TrainingInputMode in the algorithm specification. For distributed - * training algorithms, specify an instance count greater than 1.

                          + *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data from a + * Redshift execution.

                          */ - ResourceConfig: ResourceConfig | undefined; + KmsKeyId?: string; /** - *

                          A VpcConfig object that specifies the VPC that you want your - * training job to connect to. Control access to and from your training container by - * configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon - * Virtual Private Cloud.

                          + *

                          The data storage format for Redshift query results.

                          */ - VpcConfig?: VpcConfig; + OutputFormat: RedshiftResultFormat | string | undefined; /** - *

                          Specifies a limit to how long a model training job can run. When the job reaches the - * time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.

                          - *

                          To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays - * job termination for 120 seconds. Algorithms can use this 120-second window to save the - * model artifacts, so the results of training are not lost.

                          + *

                          The compression used for Redshift query results.

                          */ - StoppingCondition: StoppingCondition | undefined; + OutputCompression?: RedshiftResultCompressionType | string; +} + +export namespace RedshiftDatasetDefinition { + export const filterSensitiveLog = (obj: RedshiftDatasetDefinition): any => ({ + ...obj, + }); +} +/** + *

                          Configuration for Dataset Definition inputs. The Dataset Definition input must specify + * exactly one of either AthenaDatasetDefinition or RedshiftDatasetDefinition + * types.

                          + */ +export interface DatasetDefinition { /** - *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                          + *

                          Configuration for Athena Dataset Definition input.

                          */ - Tags?: Tag[]; + AthenaDatasetDefinition?: AthenaDatasetDefinition; /** - *

                          Isolates the training container. No inbound or outbound network calls can be made, - * except for calls between peers within a training cluster for distributed training. If - * you enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker - * downloads and uploads customer data and model artifacts through the specified VPC, but - * the training container does not have network access.

                          + *

                          Configuration for Redshift Dataset Definition input.

                          */ - EnableNetworkIsolation?: boolean; + RedshiftDatasetDefinition?: RedshiftDatasetDefinition; /** - *

                          To encrypt all communications between ML compute instances in distributed training, - * choose True. Encryption provides greater security for distributed training, - * but training might take longer. How long it takes depends on the amount of communication - * between compute instances, especially if you use a deep learning algorithm in - * distributed training. For more information, see Protect Communications Between ML - * Compute Instances in a Distributed Training Job.

                          + *

                          The local path where you want Amazon SageMaker to download the Dataset Definition inputs to run a + * processing job. LocalPath is an absolute path to the input data. This is a required + * parameter when AppManaged is False (default).

                          */ - EnableInterContainerTrafficEncryption?: boolean; + LocalPath?: string; /** - *

                          To train models using managed spot training, choose True. Managed spot - * training provides a fully managed and scalable infrastructure for training machine - * learning models. this option is useful when training jobs can be interrupted and when - * there is flexibility when the training job is run.

                          - *

                          The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be - * used as a starting point to train models incrementally. Amazon SageMaker provides metrics and - * logs in CloudWatch. They can be used to see when managed spot training jobs are running, - * interrupted, resumed, or completed.

                          + *

                          Whether the generated dataset is FullyReplicated or + * ShardedByS3Key (default).

                          */ - EnableManagedSpotTraining?: boolean; + DataDistributionType?: DataDistributionType | string; /** - *

                          Contains information about the output location for managed spot training checkpoint - * data.

                          + *

                          Whether to use File or Pipe input mode. In File (default) mode, + * Amazon SageMaker copies the data from the input source onto the local Amazon Elastic Block Store + * (Amazon EBS) volumes before starting your training algorithm. This is the most commonly used + * input mode. In Pipe mode, Amazon SageMaker streams input data from the source directly to your + * algorithm without using the EBS volume.

                          */ - CheckpointConfig?: CheckpointConfig; + InputMode?: InputMode | string; +} + +export namespace DatasetDefinition { + export const filterSensitiveLog = (obj: DatasetDefinition): any => ({ + ...obj, + }); +} + +export enum ProcessingS3CompressionType { + GZIP = "Gzip", + NONE = "None", +} + +export enum ProcessingS3DataType { + MANIFEST_FILE = "ManifestFile", + S3_PREFIX = "S3Prefix", +} +/** + *

                          Configuration for processing job inputs in Amazon S3.

                          + */ +export interface ProcessingS3Input { /** - *

                          Configuration information for the debug hook parameters, collection configuration, and - * storage paths.

                          + *

                          The URI for the Amazon S3 storage where you want Amazon SageMaker to download the artifacts needed + * to run a processing job.

                          */ - DebugHookConfig?: DebugHookConfig; + S3Uri: string | undefined; /** - *

                          Configuration information for debugging rules.

                          + *

                          The local path to the Amazon S3 bucket where you want Amazon SageMaker to download the inputs to + * run a processing job. LocalPath is an absolute path to the input + * data. This is a required parameter when AppManaged is False + * (default).

                          */ - DebugRuleConfigurations?: DebugRuleConfiguration[]; + LocalPath?: string; /** - *

                          Configuration of storage locations for TensorBoard output.

                          + *

                          Whether you use an S3Prefix or a ManifestFile for + * the data type. If you choose S3Prefix, S3Uri identifies a key + * name prefix. Amazon SageMaker uses all objects with the specified key name prefix for the processing + * job. If you choose ManifestFile, S3Uri identifies an object + * that is a manifest file containing a list of object keys that you want Amazon SageMaker to use for + * the processing job.

                          */ - TensorBoardOutputConfig?: TensorBoardOutputConfig; + S3DataType: ProcessingS3DataType | string | undefined; /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          Whether to use File or Pipe input mode. In + * File mode, Amazon SageMaker copies the data from the input source onto the local + * Amazon Elastic Block Store (Amazon EBS) volumes before starting your training algorithm. + * This is the most commonly used input mode. In Pipe mode, Amazon SageMaker streams input + * data from the source directly to your algorithm without using the EBS volume.This is a + * required parameter when AppManaged is False (default).

                          */ - ExperimentConfig?: ExperimentConfig; -} + S3InputMode?: ProcessingS3InputMode | string; -export namespace CreateTrainingJobRequest { - export const filterSensitiveLog = (obj: CreateTrainingJobRequest): any => ({ - ...obj, - }); -} + /** + *

                          Whether the data stored in Amazon S3 is FullyReplicated or + * ShardedByS3Key.

                          + */ + S3DataDistributionType?: ProcessingS3DataDistributionType | string; -export interface CreateTrainingJobResponse { /** - *

                          The Amazon Resource Name (ARN) of the training job.

                          + *

                          Whether to use Gzip compression for Amazon S3 storage.

                          */ - TrainingJobArn: string | undefined; + S3CompressionType?: ProcessingS3CompressionType | string; } -export namespace CreateTrainingJobResponse { - export const filterSensitiveLog = (obj: CreateTrainingJobResponse): any => ({ +export namespace ProcessingS3Input { + export const filterSensitiveLog = (obj: ProcessingS3Input): any => ({ ...obj, }); } -export enum JoinSource { - INPUT = "Input", - NONE = "None", -} - /** - *

                          The data structure used to specify the data to be used for inference in a batch - * transform job and to associate the data that is relevant to the prediction results in - * the output. The input filter provided allows you to exclude input data that is not - * needed for inference in a batch transform job. The output filter provided allows you to - * include input data relevant to interpreting the predictions in the output from the job. - * For more information, see Associate Prediction - * Results with their Corresponding Input Records.

                          + *

                          The inputs for a processing job. The processing input must specify exactly one of either + * S3Input or DatasetDefinition types.

                          */ -export interface DataProcessing { +export interface ProcessingInput { /** - *

                          A JSONPath expression used to select a portion of the input data to pass to - * the algorithm. Use the InputFilter parameter to exclude fields, such as an - * ID column, from the input. If you want Amazon SageMaker to pass the entire input dataset to the - * algorithm, accept the default value $.

                          - *

                          Examples: "$", "$[1:]", "$.features" - *

                          + *

                          The name of the inputs for the processing job.

                          */ - InputFilter?: string; + InputName: string | undefined; /** - *

                          A JSONPath expression used to select a portion of the joined dataset to save - * in the output file for a batch transform job. If you want Amazon SageMaker to store the entire input - * dataset in the output file, leave the default value, $. If you specify - * indexes that aren't within the dimension size of the joined dataset, you get an - * error.

                          - *

                          Examples: "$", "$[0,5:]", - * "$['id','SageMakerOutput']" - *

                          + *

                          When True, input operations such as data download are managed natively by the + * processing job application. When False (default), input operations are managed by Amazon SageMaker.

                          */ - OutputFilter?: string; + AppManaged?: boolean; /** - *

                          Specifies the source of the data to join with the transformed data. The valid values - * are None and Input. The default value is None, - * which specifies not to join the input with the transformed data. If you want the batch - * transform job to join the original input data with the transformed data, set - * JoinSource to Input.

                          - * - *

                          For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to - * the input JSON object in an attribute called SageMakerOutput. The joined - * result for JSON must be a key-value pair object. If the input is not a key-value pair - * object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored - * under the SageMakerInput key and the results are stored in - * SageMakerOutput.

                          - *

                          For CSV files, Amazon SageMaker combines the transformed data with the input data at the end of - * the input data and stores it in the output file. The joined data has the joined input - * data followed by the transformed data and the output is a CSV file.

                          + *

                          Configuration for processing job inputs in Amazon S3.

                          */ - JoinSource?: JoinSource | string; + S3Input?: ProcessingS3Input; + + /** + *

                          Configuration for a Dataset Definition input.

                          + */ + DatasetDefinition?: DatasetDefinition; } -export namespace DataProcessing { - export const filterSensitiveLog = (obj: DataProcessing): any => ({ +export namespace ProcessingInput { + export const filterSensitiveLog = (obj: ProcessingInput): any => ({ ...obj, }); } /** - *

                          Configures the timeout and maximum number of retries for processing a transform job - * invocation.

                          + *

                          Configuration for processing job outputs in Amazon SageMaker Feature Store.

                          */ -export interface ModelClientConfig { - /** - *

                          The timeout value in seconds for an invocation request.

                          - */ - InvocationsTimeoutInSeconds?: number; - +export interface ProcessingFeatureStoreOutput { /** - *

                          The maximum number of retries when invocation requests are failing.

                          + *

                          The name of the Amazon SageMaker FeatureGroup to use as the destination for processing job output.

                          */ - InvocationsMaxRetries?: number; + FeatureGroupName: string | undefined; } -export namespace ModelClientConfig { - export const filterSensitiveLog = (obj: ModelClientConfig): any => ({ +export namespace ProcessingFeatureStoreOutput { + export const filterSensitiveLog = (obj: ProcessingFeatureStoreOutput): any => ({ ...obj, }); } -export interface CreateTransformJobRequest { +/** + *

                          Configuration for processing job outputs in Amazon S3.

                          + */ +export interface ProcessingS3Output { /** - *

                          The name of the transform job. The name must be unique within an AWS Region in an - * AWS account.

                          + *

                          A URI that identifies the Amazon S3 bucket where you want Amazon SageMaker to save the results of + * a processing job.

                          */ - TransformJobName: string | undefined; + S3Uri: string | undefined; /** - *

                          The name of the model that you want to use for the transform job. - * ModelName must be the name of an existing Amazon SageMaker model within an AWS - * Region in an AWS account.

                          + *

                          The local path to the Amazon S3 bucket where you want Amazon SageMaker to save the results of an + * processing job. LocalPath is an absolute path to the input data.

                          */ - ModelName: string | undefined; + LocalPath: string | undefined; /** - *

                          The maximum number of parallel requests that can be sent to each instance in a - * transform job. If MaxConcurrentTransforms is set to 0 or left - * unset, Amazon SageMaker checks the optional execution-parameters to determine the settings for your - * chosen algorithm. If the execution-parameters endpoint is not enabled, the default value - * is 1. For more information on execution-parameters, see How Containers Serve Requests. For built-in algorithms, you don't need to - * set a value for MaxConcurrentTransforms.

                          + *

                          Whether to upload the results of the processing job continuously or after the job + * completes.

                          */ - MaxConcurrentTransforms?: number; + S3UploadMode: ProcessingS3UploadMode | string | undefined; +} + +export namespace ProcessingS3Output { + export const filterSensitiveLog = (obj: ProcessingS3Output): any => ({ + ...obj, + }); +} +/** + *

                          Describes the results of a processing job. The processing output must specify exactly one of + * either S3Output or FeatureStoreOutput types.

                          + */ +export interface ProcessingOutput { /** - *

                          Configures the timeout and maximum number of retries for processing a transform job - * invocation.

                          + *

                          The name for the processing job output.

                          */ - ModelClientConfig?: ModelClientConfig; + OutputName: string | undefined; /** - *

                          The maximum allowed size of the payload, in MB. A payload is the - * data portion of a record (without metadata). The value in MaxPayloadInMB - * must be greater than, or equal to, the size of a single record. To estimate the size of - * a record in MB, divide the size of your dataset by the number of records. To ensure that - * the records fit within the maximum payload size, we recommend using a slightly larger - * value. The default value is 6 MB. - *

                          - *

                          For cases where the payload might be arbitrarily large and is transmitted using HTTP - * chunked encoding, set the value to 0. - * This - * feature works only in supported algorithms. Currently, Amazon SageMaker built-in - * algorithms do not support HTTP chunked encoding.

                          + *

                          Configuration for processing job outputs in Amazon S3.

                          */ - MaxPayloadInMB?: number; + S3Output?: ProcessingS3Output; /** - *

                          Specifies the number of records to include in a mini-batch for an HTTP inference - * request. A record - * is a single unit of input data that - * inference can be made on. For example, a single line in a CSV file is a record.

                          - *

                          To enable the batch strategy, you must set the SplitType property to - * Line, RecordIO, or TFRecord.

                          - *

                          To use only one record when making an HTTP invocation request to a container, set - * BatchStrategy to SingleRecord and SplitType - * to Line.

                          - *

                          To fit as many records in a mini-batch as can fit within the - * MaxPayloadInMB limit, set BatchStrategy to - * MultiRecord and SplitType to Line.

                          + *

                          Configuration for processing job outputs in Amazon SageMaker Feature Store. This processing output + * type is only supported when AppManaged is specified.

                          */ - BatchStrategy?: BatchStrategy | string; + FeatureStoreOutput?: ProcessingFeatureStoreOutput; /** - *

                          The environment variables to set in the Docker container. We support up to 16 key and - * values entries in the map.

                          + *

                          When True, output operations such as data upload are managed natively by the + * processing job application. When False (default), output operations are managed by + * Amazon SageMaker.

                          */ - Environment?: { [key: string]: string }; + AppManaged?: boolean; +} + +export namespace ProcessingOutput { + export const filterSensitiveLog = (obj: ProcessingOutput): any => ({ + ...obj, + }); +} +/** + *

                          The output configuration for the processing job.

                          + */ +export interface ProcessingOutputConfig { /** - *

                          Describes the input source and - * the - * way the transform job consumes it.

                          + *

                          List of output configurations for the processing job.

                          */ - TransformInput: TransformInput | undefined; + Outputs: ProcessingOutput[] | undefined; /** - *

                          Describes the results of the transform job.

                          + *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the processing + * job output. KmsKeyId can be an ID of a KMS key, ARN of a KMS key, alias of + * a KMS key, or alias of a KMS key. The KmsKeyId is applied to all + * outputs.

                          */ - TransformOutput: TransformOutput | undefined; + KmsKeyId?: string; +} + +export namespace ProcessingOutputConfig { + export const filterSensitiveLog = (obj: ProcessingOutputConfig): any => ({ + ...obj, + }); +} +/** + *

                          Configuration for the cluster used to run a processing job.

                          + */ +export interface ProcessingClusterConfig { /** - *

                          Describes the resources, including - * ML - * instance types and ML instance count, to use for the transform - * job.

                          + *

                          The number of ML compute instances to use in the processing job. For distributed + * processing jobs, specify a value greater than 1. The default value is 1.

                          */ - TransformResources: TransformResources | undefined; + InstanceCount: number | undefined; /** - *

                          The data structure used to specify the data to be used for inference in a batch - * transform job and to associate the data that is relevant to the prediction results in - * the output. The input filter provided allows you to exclude input data that is not - * needed for inference in a batch transform job. The output filter provided allows you to - * include input data relevant to interpreting the predictions in the output from the job. - * For more information, see Associate Prediction - * Results with their Corresponding Input Records.

                          + *

                          The ML compute instance type for the processing job.

                          */ - DataProcessing?: DataProcessing; + InstanceType: ProcessingInstanceType | string | undefined; /** - *

                          (Optional) - * An - * array of key-value pairs. For more information, see Using - * Cost Allocation Tags in the AWS Billing and Cost Management User - * Guide.

                          + *

                          The size of the ML storage volume in gigabytes that you want to provision. You must + * specify sufficient ML storage for your scenario.

                          */ - Tags?: Tag[]; + VolumeSizeInGB: number | undefined; /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the + * storage volume attached to the ML compute instance(s) that run the processing job. + *

                          */ - ExperimentConfig?: ExperimentConfig; + VolumeKmsKeyId?: string; } -export namespace CreateTransformJobRequest { - export const filterSensitiveLog = (obj: CreateTransformJobRequest): any => ({ +export namespace ProcessingClusterConfig { + export const filterSensitiveLog = (obj: ProcessingClusterConfig): any => ({ ...obj, }); } -export interface CreateTransformJobResponse { +/** + *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a + * processing job. In distributed training, you specify more than one instance.

                          + */ +export interface ProcessingResources { /** - *

                          The Amazon Resource Name (ARN) of the transform job.

                          + *

                          The configuration for the resources in a cluster used to run the processing + * job.

                          */ - TransformJobArn: string | undefined; + ClusterConfig: ProcessingClusterConfig | undefined; } -export namespace CreateTransformJobResponse { - export const filterSensitiveLog = (obj: CreateTransformJobResponse): any => ({ +export namespace ProcessingResources { + export const filterSensitiveLog = (obj: ProcessingResources): any => ({ ...obj, }); } -export interface CreateTrialRequest { +/** + *

                          Specifies a time limit for how long the processing job is allowed to run.

                          + */ +export interface ProcessingStoppingCondition { /** - *

                          The name of the trial. The name must be unique in your AWS account and is not - * case-sensitive.

                          + *

                          Specifies the maximum runtime in seconds.

                          */ - TrialName: string | undefined; + MaxRuntimeInSeconds: number | undefined; +} +export namespace ProcessingStoppingCondition { + export const filterSensitiveLog = (obj: ProcessingStoppingCondition): any => ({ + ...obj, + }); +} + +export interface CreateProcessingJobRequest { /** - *

                          The name of the trial as displayed. The name doesn't need to be unique. If - * DisplayName isn't specified, TrialName is displayed.

                          + *

                          List of input configurations for the processing job.

                          */ - DisplayName?: string; + ProcessingInputs?: ProcessingInput[]; /** - *

                          The name of the experiment to associate the trial with.

                          + *

                          Output configuration for the processing job.

                          */ - ExperimentName: string | undefined; + ProcessingOutputConfig?: ProcessingOutputConfig; /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          The name of the processing job. The name must be unique within an AWS Region in the + * AWS account.

                          */ - MetadataProperties?: MetadataProperties; + ProcessingJobName: string | undefined; /** - *

                          A list of tags to associate with the trial. You can use Search API to - * search on the tags.

                          + *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a + * processing job. In distributed training, you specify more than one instance.

                          */ - Tags?: Tag[]; -} - -export namespace CreateTrialRequest { - export const filterSensitiveLog = (obj: CreateTrialRequest): any => ({ - ...obj, - }); -} + ProcessingResources: ProcessingResources | undefined; -export interface CreateTrialResponse { /** - *

                          The Amazon Resource Name (ARN) of the trial.

                          + *

                          The time limit for how long the processing job is allowed to run.

                          */ - TrialArn?: string; -} - -export namespace CreateTrialResponse { - export const filterSensitiveLog = (obj: CreateTrialResponse): any => ({ - ...obj, - }); -} + StoppingCondition?: ProcessingStoppingCondition; -/** - *

                          Represents an input or output artifact of a trial component. You specify - * TrialComponentArtifact as part of the InputArtifacts and - * OutputArtifacts parameters in the CreateTrialComponent - * request.

                          - *

                          Examples of input artifacts are datasets, algorithms, hyperparameters, source code, and - * instance types. Examples of output artifacts are metrics, snapshots, logs, and images.

                          - */ -export interface TrialComponentArtifact { /** - *

                          The media type of the artifact, which indicates the type of data in the artifact file. The - * media type consists of a type and a subtype - * concatenated with a slash (/) character, for example, text/csv, image/jpeg, and s3/uri. The - * type specifies the category of the media. The subtype specifies the kind of data.

                          + *

                          Configures the processing job to run a specified Docker container image.

                          */ - MediaType?: string; + AppSpecification: AppSpecification | undefined; /** - *

                          The location of the artifact.

                          + *

                          Sets the environment variables in the Docker container.

                          */ - Value: string | undefined; -} - -export namespace TrialComponentArtifact { - export const filterSensitiveLog = (obj: TrialComponentArtifact): any => ({ - ...obj, - }); -} - -/** - *

                          The value of a hyperparameter. Only one of NumberValue or - * StringValue can be specified.

                          - *

                          This object is specified in the CreateTrialComponent request.

                          - */ -export type TrialComponentParameterValue = - | TrialComponentParameterValue.NumberValueMember - | TrialComponentParameterValue.StringValueMember - | TrialComponentParameterValue.$UnknownMember; + Environment?: { [key: string]: string }; -export namespace TrialComponentParameterValue { /** - *

                          The string value of a categorical hyperparameter. If you specify a value for this - * parameter, you can't specify the NumberValue parameter.

                          + *

                          Networking options for a processing job.

                          */ - export interface StringValueMember { - StringValue: string; - NumberValue?: never; - $unknown?: never; - } + NetworkConfig?: NetworkConfig; /** - *

                          The numeric value of a numeric hyperparameter. If you specify a value for this parameter, - * you can't specify the StringValue parameter.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on + * your behalf.

                          */ - export interface NumberValueMember { - StringValue?: never; - NumberValue: number; - $unknown?: never; - } + RoleArn: string | undefined; - export interface $UnknownMember { - StringValue?: never; - NumberValue?: never; - $unknown: [string, any]; - } + /** + *

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management + * User Guide.

                          + */ + Tags?: Tag[]; - export interface Visitor { - StringValue: (value: string) => T; - NumberValue: (value: number) => T; - _: (name: string, value: any) => T; - } + /** + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * + */ + ExperimentConfig?: ExperimentConfig; +} - export const visit = (value: TrialComponentParameterValue, visitor: Visitor): T => { - if (value.StringValue !== undefined) return visitor.StringValue(value.StringValue); - if (value.NumberValue !== undefined) return visitor.NumberValue(value.NumberValue); - return visitor._(value.$unknown[0], value.$unknown[1]); - }; +export namespace CreateProcessingJobRequest { + export const filterSensitiveLog = (obj: CreateProcessingJobRequest): any => ({ + ...obj, + }); +} - export const filterSensitiveLog = (obj: TrialComponentParameterValue): any => { - if (obj.StringValue !== undefined) return { StringValue: obj.StringValue }; - if (obj.NumberValue !== undefined) return { NumberValue: obj.NumberValue }; - if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; - }; +export interface CreateProcessingJobResponse { + /** + *

                          The Amazon Resource Name (ARN) of the processing job.

                          + */ + ProcessingJobArn: string | undefined; } -export enum TrialComponentPrimaryStatus { - COMPLETED = "Completed", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - STOPPED = "Stopped", - STOPPING = "Stopping", +export namespace CreateProcessingJobResponse { + export const filterSensitiveLog = (obj: CreateProcessingJobResponse): any => ({ + ...obj, + }); } /** - *

                          The status of the trial component.

                          + *

                          A key value pair used when you provision a project as a service catalog product. For + * information, see What is AWS Service + * Catalog.

                          */ -export interface TrialComponentStatus { +export interface ProvisioningParameter { /** - *

                          The status of the trial component.

                          + *

                          The key that identifies a provisioning parameter.

                          */ - PrimaryStatus?: TrialComponentPrimaryStatus | string; + Key?: string; /** - *

                          If the component failed, a message describing why.

                          + *

                          The value of the provisioning parameter.

                          */ - Message?: string; + Value?: string; } -export namespace TrialComponentStatus { - export const filterSensitiveLog = (obj: TrialComponentStatus): any => ({ +export namespace ProvisioningParameter { + export const filterSensitiveLog = (obj: ProvisioningParameter): any => ({ ...obj, }); } -export interface CreateTrialComponentRequest { - /** - *

                          The name of the component. The name must be unique in your AWS account and is not - * case-sensitive.

                          - */ - TrialComponentName: string | undefined; - +/** + *

                          Details that you specify to provision a service catalog product. For information about + * service catalog, see .What is AWS Service + * Catalog.

                          + */ +export interface ServiceCatalogProvisioningDetails { /** - *

                          The name of the component as displayed. The name doesn't need to be unique. If - * DisplayName isn't specified, TrialComponentName is - * displayed.

                          + *

                          The ID of the product to provision.

                          */ - DisplayName?: string; + ProductId: string | undefined; /** - *

                          The status of the component. States include:

                          - *
                            - *
                          • - *

                            InProgress

                            - *
                          • - *
                          • - *

                            Completed

                            - *
                          • - *
                          • - *

                            Failed

                            - *
                          • - *
                          + *

                          The ID of the provisioning artifact.

                          */ - Status?: TrialComponentStatus; + ProvisioningArtifactId: string | undefined; /** - *

                          When the component started.

                          + *

                          The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path.

                          */ - StartTime?: Date; + PathId?: string; /** - *

                          When the component ended.

                          + *

                          A list of key value pairs that you specify when you provision a product.

                          */ - EndTime?: Date; + ProvisioningParameters?: ProvisioningParameter[]; +} - /** - *

                          The hyperparameters for the component.

                          - */ - Parameters?: { [key: string]: TrialComponentParameterValue }; +export namespace ServiceCatalogProvisioningDetails { + export const filterSensitiveLog = (obj: ServiceCatalogProvisioningDetails): any => ({ + ...obj, + }); +} +export interface CreateProjectInput { /** - *

                          The input artifacts for the component. Examples of input artifacts are datasets, - * algorithms, hyperparameters, source code, and instance types.

                          + *

                          The name of the project.

                          */ - InputArtifacts?: { [key: string]: TrialComponentArtifact }; + ProjectName: string | undefined; /** - *

                          The output artifacts for the component. Examples of output artifacts are metrics, - * snapshots, logs, and images.

                          + *

                          A description for the project.

                          */ - OutputArtifacts?: { [key: string]: TrialComponentArtifact }; + ProjectDescription?: string; /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          The product ID and provisioning artifact ID to provision a service catalog. For + * information, see What is AWS Service + * Catalog.

                          */ - MetadataProperties?: MetadataProperties; + ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails | undefined; /** - *

                          A list of tags to associate with the component. You can use Search API - * to search on the tags.

                          + *

                          An array of key-value pairs that you want to use to organize and track your AWS + * resource costs. For more information, see Tagging AWS resources in the AWS General Reference Guide.

                          */ Tags?: Tag[]; } -export namespace CreateTrialComponentRequest { - export const filterSensitiveLog = (obj: CreateTrialComponentRequest): any => ({ +export namespace CreateProjectInput { + export const filterSensitiveLog = (obj: CreateProjectInput): any => ({ ...obj, - ...(obj.Parameters && { - Parameters: Object.entries(obj.Parameters).reduce( - (acc: any, [key, value]: [string, TrialComponentParameterValue]) => ({ - ...acc, - [key]: TrialComponentParameterValue.filterSensitiveLog(value), - }), - {} - ), - }), }); } -export interface CreateTrialComponentResponse { +export interface CreateProjectOutput { /** - *

                          The Amazon Resource Name (ARN) of the trial component.

                          + *

                          The Amazon Resource Name (ARN) of the project.

                          */ - TrialComponentArn?: string; + ProjectArn: string | undefined; + + /** + *

                          The ID of the new project.

                          + */ + ProjectId: string | undefined; } -export namespace CreateTrialComponentResponse { - export const filterSensitiveLog = (obj: CreateTrialComponentResponse): any => ({ +export namespace CreateProjectOutput { + export const filterSensitiveLog = (obj: CreateProjectOutput): any => ({ ...obj, }); } -export interface CreateUserProfileRequest { - /** - *

                          The ID of the associated Domain.

                          - */ - DomainId: string | undefined; - +/** + *

                          Configuration information for the Debugger hook parameters, metric and tensor collections, and + * storage paths. To learn more about + * how to configure the DebugHookConfig parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          + */ +export interface DebugHookConfig { /** - *

                          A name for the UserProfile.

                          + *

                          Path to local storage location for metrics and tensors. Defaults to + * /opt/ml/output/tensors/.

                          */ - UserProfileName: string | undefined; + LocalPath?: string; /** - *

                          A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is "UserName". - * If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified. - *

                          + *

                          Path to Amazon S3 storage location for metrics and tensors.

                          */ - SingleSignOnUserIdentifier?: string; + S3OutputPath: string | undefined; /** - *

                          The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is - * required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified. - *

                          + *

                          Configuration information for the Debugger hook parameters.

                          */ - SingleSignOnUserValue?: string; + HookParameters?: { [key: string]: string }; /** - *

                          Each tag consists of a key and an optional value. - * Tag keys must be unique per resource.

                          + *

                          Configuration information for Debugger tensor collections. To learn more about + * how to configure the CollectionConfiguration parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job. + *

                          */ - Tags?: Tag[]; + CollectionConfigurations?: CollectionConfiguration[]; +} - /** - *

                          A collection of settings.

                          - */ - UserSettings?: UserSettings; -} - -export namespace CreateUserProfileRequest { - export const filterSensitiveLog = (obj: CreateUserProfileRequest): any => ({ - ...obj, - }); -} - -export interface CreateUserProfileResponse { - /** - *

                          The user profile Amazon Resource Name (ARN).

                          - */ - UserProfileArn?: string; -} - -export namespace CreateUserProfileResponse { - export const filterSensitiveLog = (obj: CreateUserProfileResponse): any => ({ +export namespace DebugHookConfig { + export const filterSensitiveLog = (obj: DebugHookConfig): any => ({ ...obj, }); } /** - *

                          Use this parameter to configure your OIDC Identity Provider (IdP).

                          + *

                          Configuration information for SageMaker Debugger rules for debugging. To learn more about + * how to configure the DebugRuleConfiguration parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          */ -export interface OidcConfig { - /** - *

                          The OIDC IdP client ID used to configure your private workforce.

                          - */ - ClientId: string | undefined; - +export interface DebugRuleConfiguration { /** - *

                          The OIDC IdP client secret used to configure your private workforce.

                          + *

                          The name of the rule configuration. It must be unique relative to other rule + * configuration names.

                          */ - ClientSecret: string | undefined; + RuleConfigurationName: string | undefined; /** - *

                          The OIDC IdP issuer used to configure your private workforce.

                          + *

                          Path to local storage location for output of rules. Defaults to + * /opt/ml/processing/output/rule/.

                          */ - Issuer: string | undefined; + LocalPath?: string; /** - *

                          The OIDC IdP authorization endpoint used to configure your private workforce.

                          + *

                          Path to Amazon S3 storage location for rules.

                          */ - AuthorizationEndpoint: string | undefined; + S3OutputPath?: string; /** - *

                          The OIDC IdP token endpoint used to configure your private workforce.

                          + *

                          The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

                          */ - TokenEndpoint: string | undefined; + RuleEvaluatorImage: string | undefined; /** - *

                          The OIDC IdP user information endpoint used to configure your private workforce.

                          + *

                          The instance type to deploy a Debugger custom rule for debugging a training job.

                          */ - UserInfoEndpoint: string | undefined; + InstanceType?: ProcessingInstanceType | string; /** - *

                          The OIDC IdP logout endpoint used to configure your private workforce.

                          + *

                          The size, in GB, of the ML storage volume attached to the processing instance.

                          */ - LogoutEndpoint: string | undefined; + VolumeSizeInGB?: number; /** - *

                          The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.

                          + *

                          Runtime configuration for rule container.

                          */ - JwksUri: string | undefined; + RuleParameters?: { [key: string]: string }; } -export namespace OidcConfig { - export const filterSensitiveLog = (obj: OidcConfig): any => ({ +export namespace DebugRuleConfiguration { + export const filterSensitiveLog = (obj: DebugRuleConfiguration): any => ({ ...obj, - ...(obj.ClientSecret && { ClientSecret: SENSITIVE_STRING }), }); } /** - *

                          A list of IP address ranges (CIDRs). Used to create an allow - * list of IP addresses for a private workforce. Workers will only be able to login to their worker portal from an - * IP address within this range. By default, a workforce isn't restricted to specific IP addresses.

                          + *

                          Configuration information for Debugger system monitoring, framework profiling, and + * storage paths.

                          */ -export interface SourceIpConfig { +export interface ProfilerConfig { /** - *

                          A list of one to ten Classless Inter-Domain Routing (CIDR) values.

                          - *

                          Maximum: Ten CIDR values

                          - * - *

                          The following Length Constraints apply to individual CIDR values in - * the CIDR value list.

                          - *
                          + *

                          Path to Amazon S3 storage location for system and framework metrics.

                          */ - Cidrs: string[] | undefined; + S3OutputPath: string | undefined; + + /** + *

                          A time interval for capturing system metrics in milliseconds. Available values are + * 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.

                          + */ + ProfilingIntervalInMilliseconds?: number; + + /** + *

                          Configuration information for capturing framework metrics. Available key strings for different profiling options are + * DetailedProfilingConfig, PythonProfilingConfig, and DataLoaderProfilingConfig. + * The following codes are configuration structures for the ProfilingParameters parameter. To learn more about + * how to configure the ProfilingParameters parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job. + *

                          + */ + ProfilingParameters?: { [key: string]: string }; } -export namespace SourceIpConfig { - export const filterSensitiveLog = (obj: SourceIpConfig): any => ({ +export namespace ProfilerConfig { + export const filterSensitiveLog = (obj: ProfilerConfig): any => ({ ...obj, }); } -export interface CreateWorkforceRequest { +/** + *

                          Configuration information for profiling rules.

                          + */ +export interface ProfilerRuleConfiguration { /** - *

                          Use this parameter to configure an Amazon Cognito private workforce. - * A single Cognito workforce is created using and corresponds to a single - * - * Amazon Cognito user pool.

                          - * - *

                          Do not use OidcConfig if you specify values for - * CognitoConfig.

                          + *

                          The name of the rule configuration. It must be unique relative to other rule configuration names.

                          */ - CognitoConfig?: CognitoConfig; + RuleConfigurationName: string | undefined; /** - *

                          Use this parameter to configure a private workforce using your own OIDC Identity Provider.

                          - *

                          Do not use CognitoConfig if you specify values for - * OidcConfig.

                          + *

                          Path to local storage location for output of rules. Defaults to /opt/ml/processing/output/rule/.

                          */ - OidcConfig?: OidcConfig; + LocalPath?: string; /** - *

                          A list of IP address ranges (CIDRs). Used to create an allow - * list of IP addresses for a private workforce. Workers will only be able to login to their worker portal from an - * IP address within this range. By default, a workforce isn't restricted to specific IP addresses.

                          + *

                          Path to Amazon S3 storage location for rules.

                          */ - SourceIpConfig?: SourceIpConfig; + S3OutputPath?: string; /** - *

                          The name of the private workforce.

                          + *

                          The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

                          */ - WorkforceName: string | undefined; + RuleEvaluatorImage: string | undefined; /** - *

                          An array of key-value pairs that contain metadata to help you categorize and - * organize our workforce. Each tag consists of a key and a value, - * both of which you define.

                          + *

                          The instance type to deploy a Debugger custom rule for profiling a training job.

                          */ - Tags?: Tag[]; -} - -export namespace CreateWorkforceRequest { - export const filterSensitiveLog = (obj: CreateWorkforceRequest): any => ({ - ...obj, - ...(obj.OidcConfig && { OidcConfig: OidcConfig.filterSensitiveLog(obj.OidcConfig) }), - }); -} + InstanceType?: ProcessingInstanceType | string; -export interface CreateWorkforceResponse { /** - *

                          The Amazon Resource Name (ARN) of the workforce.

                          + *

                          The size, in GB, of the ML storage volume attached to the processing instance.

                          */ - WorkforceArn: string | undefined; -} - -export namespace CreateWorkforceResponse { - export const filterSensitiveLog = (obj: CreateWorkforceResponse): any => ({ - ...obj, - }); -} + VolumeSizeInGB?: number; -/** - *

                          A list of user groups that exist in your OIDC Identity Provider (IdP). - * One to ten groups can be used to create a single private work team. - * When you add a user group to the list of Groups, you can add that user group to one or more - * private work teams. If you add a user group to a private work team, all workers in that user group - * are added to the work team.

                          - */ -export interface OidcMemberDefinition { /** - *

                          A list of comma seperated strings that identifies - * user groups in your OIDC IdP. Each user group is - * made up of a group of private workers.

                          + *

                          Runtime configuration for rule container.

                          */ - Groups: string[] | undefined; + RuleParameters?: { [key: string]: string }; } -export namespace OidcMemberDefinition { - export const filterSensitiveLog = (obj: OidcMemberDefinition): any => ({ +export namespace ProfilerRuleConfiguration { + export const filterSensitiveLog = (obj: ProfilerRuleConfiguration): any => ({ ...obj, }); } /** - *

                          Defines an Amazon Cognito or your own OIDC IdP user group that is part of a work team.

                          + *

                          Configuration of storage locations for the Debugger TensorBoard output data.

                          */ -export interface MemberDefinition { +export interface TensorBoardOutputConfig { /** - *

                          The Amazon Cognito user group that is part of the work team.

                          + *

                          Path to local storage location for tensorBoard output. Defaults to + * /opt/ml/output/tensorboard.

                          */ - CognitoMemberDefinition?: CognitoMemberDefinition; + LocalPath?: string; /** - *

                          A list user groups that exist in your OIDC Identity Provider (IdP). - * One to ten groups can be used to create a single private work team. - * When you add a user group to the list of Groups, you can add that user group to one or more - * private work teams. If you add a user group to a private work team, all workers in that user group - * are added to the work team.

                          + *

                          Path to Amazon S3 storage location for TensorBoard output.

                          */ - OidcMemberDefinition?: OidcMemberDefinition; + S3OutputPath: string | undefined; } -export namespace MemberDefinition { - export const filterSensitiveLog = (obj: MemberDefinition): any => ({ +export namespace TensorBoardOutputConfig { + export const filterSensitiveLog = (obj: TensorBoardOutputConfig): any => ({ ...obj, }); } -/** - *

                          Configures SNS notifications of available or expiring work items for work - * teams.

                          - */ -export interface NotificationConfiguration { +export interface CreateTrainingJobRequest { /** - *

                          The ARN for the SNS topic to which notifications should be published.

                          + *

                          The name of the training job. The name must be unique within an AWS Region in an + * AWS account.

                          */ - NotificationTopicArn?: string; -} - -export namespace NotificationConfiguration { - export const filterSensitiveLog = (obj: NotificationConfiguration): any => ({ - ...obj, - }); -} + TrainingJobName: string | undefined; -export interface CreateWorkteamRequest { /** - *

                          The name of the work team. Use this name to identify the work team.

                          + *

                          Algorithm-specific parameters that influence the quality of the model. You set + * hyperparameters before you start the learning process. For a list of hyperparameters for + * each training algorithm provided by Amazon SageMaker, see Algorithms.

                          + *

                          You can specify a maximum of 100 hyperparameters. Each hyperparameter is a + * key-value pair. Each key and value is limited to 256 characters, as specified by the + * Length Constraint.

                          */ - WorkteamName: string | undefined; + HyperParameters?: { [key: string]: string }; /** - *

                          The name of the workforce.

                          + *

                          The registry path of the Docker image that contains the training algorithm and + * algorithm-specific metadata, including the input mode. For more information about + * algorithms provided by Amazon SageMaker, see Algorithms. For information about + * providing your own algorithms, see Using Your Own Algorithms with Amazon + * SageMaker.

                          */ - WorkforceName?: string; + AlgorithmSpecification: AlgorithmSpecification | undefined; /** - *

                          A list of MemberDefinition objects that contains objects that identify - * the workers that make up the work team.

                          - *

                          Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For - * private workforces created using Amazon Cognito use CognitoMemberDefinition. For - * workforces created using your own OIDC identity provider (IdP) use - * OidcMemberDefinition. Do not provide input for both of these parameters - * in a single request.

                          - *

                          For workforces created using Amazon Cognito, private work teams correspond to Amazon Cognito - * user groups within the user pool used to create a workforce. All of the - * CognitoMemberDefinition objects that make up the member definition must - * have the same ClientId and UserPool values. To add a Amazon - * Cognito user group to an existing worker pool, see Adding groups to a User - * Pool. For more information about user pools, see Amazon Cognito User - * Pools.

                          - *

                          For workforces created using your own OIDC IdP, specify the user groups that you want to - * include in your private work team in OidcMemberDefinition by listing those groups - * in Groups.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform + * tasks on your behalf.

                          + *

                          During model training, Amazon SageMaker needs your permission to read input data from an S3 + * bucket, download a Docker image that contains training code, write model artifacts to an + * S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant + * permissions for all of these tasks to an IAM role. For more information, see Amazon SageMaker + * Roles.

                          + * + *

                          To be able to pass this role to Amazon SageMaker, the caller of this API must have the + * iam:PassRole permission.

                          + *
                          */ - MemberDefinitions: MemberDefinition[] | undefined; + RoleArn: string | undefined; /** - *

                          A description of the work team.

                          + *

                          An array of Channel objects. Each channel is a named input source. + * InputDataConfig + * + * describes the input data and its location.

                          + *

                          Algorithms can accept input data from one or more channels. For example, an + * algorithm might have two channels of input data, training_data and + * validation_data. The configuration for each channel provides the S3, + * EFS, or FSx location where the input data is stored. It also provides information about + * the stored data: the MIME type, compression method, and whether the data is wrapped in + * RecordIO format.

                          + *

                          Depending on the input mode that the algorithm supports, Amazon SageMaker either copies input + * data files from an S3 bucket to a local directory in the Docker container, or makes it + * available as input streams. For example, if you specify an EFS location, input data + * files will be made available as input streams. They do not need to be + * downloaded.

                          */ - Description: string | undefined; + InputDataConfig?: Channel[]; /** - *

                          Configures notification of workers regarding available or expiring work items.

                          + *

                          Specifies the path to the S3 location where you want to store model artifacts. Amazon SageMaker + * creates subfolders for the artifacts.

                          */ - NotificationConfiguration?: NotificationConfiguration; + OutputDataConfig: OutputDataConfig | undefined; /** - *

                          An array of key-value pairs.

                          - *

                          For more information, see Resource - * Tag and Using - * Cost Allocation Tags in the AWS Billing and Cost Management User - * Guide.

                          + *

                          The resources, including the ML compute instances and ML storage volumes, to use + * for model training.

                          + *

                          ML storage volumes store model artifacts and incremental states. Training + * algorithms might also use ML storage volumes for scratch space. If you want Amazon SageMaker to use + * the ML storage volume to store the training data, choose File as the + * TrainingInputMode in the algorithm specification. For distributed + * training algorithms, specify an instance count greater than 1.

                          */ - Tags?: Tag[]; -} - -export namespace CreateWorkteamRequest { - export const filterSensitiveLog = (obj: CreateWorkteamRequest): any => ({ - ...obj, - }); -} + ResourceConfig: ResourceConfig | undefined; -export interface CreateWorkteamResponse { /** - *

                          The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the - * work team.

                          + *

                          A VpcConfig object that specifies the VPC that you want your + * training job to connect to. Control access to and from your training container by + * configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon + * Virtual Private Cloud.

                          */ - WorkteamArn?: string; -} - -export namespace CreateWorkteamResponse { - export const filterSensitiveLog = (obj: CreateWorkteamResponse): any => ({ - ...obj, - }); -} + VpcConfig?: VpcConfig; -/** - *

                          - */ -export interface DataCaptureConfigSummary { /** - *

                          + *

                          Specifies a limit to how long a model training job can run. When the job reaches the + * time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.

                          + *

                          To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays + * job termination for 120 seconds. Algorithms can use this 120-second window to save the + * model artifacts, so the results of training are not lost.

                          */ - EnableCapture: boolean | undefined; + StoppingCondition: StoppingCondition | undefined; /** - *

                          + *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                          */ - CaptureStatus: CaptureStatus | string | undefined; + Tags?: Tag[]; /** - *

                          + *

                          Isolates the training container. No inbound or outbound network calls can be made, + * except for calls between peers within a training cluster for distributed training. If + * you enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker + * downloads and uploads customer data and model artifacts through the specified VPC, but + * the training container does not have network access.

                          */ - CurrentSamplingPercentage: number | undefined; + EnableNetworkIsolation?: boolean; /** - *

                          + *

                          To encrypt all communications between ML compute instances in distributed training, + * choose True. Encryption provides greater security for distributed training, + * but training might take longer. How long it takes depends on the amount of communication + * between compute instances, especially if you use a deep learning algorithm in + * distributed training. For more information, see Protect Communications Between ML + * Compute Instances in a Distributed Training Job.

                          */ - DestinationS3Uri: string | undefined; + EnableInterContainerTrafficEncryption?: boolean; /** - *

                          + *

                          To train models using managed spot training, choose True. Managed spot + * training provides a fully managed and scalable infrastructure for training machine + * learning models. this option is useful when training jobs can be interrupted and when + * there is flexibility when the training job is run.

                          + *

                          The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be + * used as a starting point to train models incrementally. Amazon SageMaker provides metrics and + * logs in CloudWatch. They can be used to see when managed spot training jobs are running, + * interrupted, resumed, or completed.

                          */ - KmsKeyId: string | undefined; -} + EnableManagedSpotTraining?: boolean; -export namespace DataCaptureConfigSummary { - export const filterSensitiveLog = (obj: DataCaptureConfigSummary): any => ({ - ...obj, - }); -} + /** + *

                          Contains information about the output location for managed spot training checkpoint + * data.

                          + */ + CheckpointConfig?: CheckpointConfig; -export enum RuleEvaluationStatus { - ERROR = "Error", - IN_PROGRESS = "InProgress", - ISSUES_FOUND = "IssuesFound", - NO_ISSUES_FOUND = "NoIssuesFound", - STOPPED = "Stopped", - STOPPING = "Stopping", -} + /** + *

                          Configuration information for the Debugger hook parameters, metric and tensor collections, and + * storage paths. To learn more about + * how to configure the DebugHookConfig parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          + */ + DebugHookConfig?: DebugHookConfig; -/** - *

                          Information about the status of the rule evaluation.

                          - */ -export interface DebugRuleEvaluationStatus { /** - *

                          The name of the rule configuration

                          + *

                          Configuration information for Debugger rules for debugging output tensors.

                          */ - RuleConfigurationName?: string; + DebugRuleConfigurations?: DebugRuleConfiguration[]; /** - *

                          The Amazon Resource Name (ARN) of the rule evaluation job.

                          + *

                          Configuration of storage locations for the Debugger TensorBoard output data.

                          */ - RuleEvaluationJobArn?: string; + TensorBoardOutputConfig?: TensorBoardOutputConfig; /** - *

                          Status of the rule evaluation.

                          + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * */ - RuleEvaluationStatus?: RuleEvaluationStatus | string; + ExperimentConfig?: ExperimentConfig; /** - *

                          Details from the rule evaluation.

                          + *

                          Configuration information for Debugger system monitoring, framework profiling, and + * storage paths.

                          */ - StatusDetails?: string; + ProfilerConfig?: ProfilerConfig; /** - *

                          Timestamp when the rule evaluation status was last modified.

                          + *

                          Configuration information for Debugger rules for profiling system and framework + * metrics.

                          */ - LastModifiedTime?: Date; + ProfilerRuleConfigurations?: ProfilerRuleConfiguration[]; } -export namespace DebugRuleEvaluationStatus { - export const filterSensitiveLog = (obj: DebugRuleEvaluationStatus): any => ({ +export namespace CreateTrainingJobRequest { + export const filterSensitiveLog = (obj: CreateTrainingJobRequest): any => ({ ...obj, }); } -export interface DeleteActionRequest { +export interface CreateTrainingJobResponse { /** - *

                          The name of the action to delete.

                          + *

                          The Amazon Resource Name (ARN) of the training job.

                          */ - ActionName: string | undefined; + TrainingJobArn: string | undefined; } -export namespace DeleteActionRequest { - export const filterSensitiveLog = (obj: DeleteActionRequest): any => ({ +export namespace CreateTrainingJobResponse { + export const filterSensitiveLog = (obj: CreateTrainingJobResponse): any => ({ ...obj, }); } -export interface DeleteActionResponse { +export enum JoinSource { + INPUT = "Input", + NONE = "None", +} + +/** + *

                          The data structure used to specify the data to be used for inference in a batch + * transform job and to associate the data that is relevant to the prediction results in + * the output. The input filter provided allows you to exclude input data that is not + * needed for inference in a batch transform job. The output filter provided allows you to + * include input data relevant to interpreting the predictions in the output from the job. + * For more information, see Associate Prediction + * Results with their Corresponding Input Records.

                          + */ +export interface DataProcessing { /** - *

                          The Amazon Resource Name (ARN) of the action.

                          + *

                          A JSONPath expression used to select a portion of the input data to pass to + * the algorithm. Use the InputFilter parameter to exclude fields, such as an + * ID column, from the input. If you want Amazon SageMaker to pass the entire input dataset to the + * algorithm, accept the default value $.

                          + *

                          Examples: "$", "$[1:]", "$.features" + *

                          */ - ActionArn?: string; -} + InputFilter?: string; -export namespace DeleteActionResponse { - export const filterSensitiveLog = (obj: DeleteActionResponse): any => ({ - ...obj, - }); -} + /** + *

                          A JSONPath expression used to select a portion of the joined dataset to save + * in the output file for a batch transform job. If you want Amazon SageMaker to store the entire input + * dataset in the output file, leave the default value, $. If you specify + * indexes that aren't within the dimension size of the joined dataset, you get an + * error.

                          + *

                          Examples: "$", "$[0,5:]", + * "$['id','SageMakerOutput']" + *

                          + */ + OutputFilter?: string; -export interface DeleteAlgorithmInput { /** - *

                          The name of the algorithm to delete.

                          + *

                          Specifies the source of the data to join with the transformed data. The valid values + * are None and Input. The default value is None, + * which specifies not to join the input with the transformed data. If you want the batch + * transform job to join the original input data with the transformed data, set + * JoinSource to Input.

                          + * + *

                          For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to + * the input JSON object in an attribute called SageMakerOutput. The joined + * result for JSON must be a key-value pair object. If the input is not a key-value pair + * object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored + * under the SageMakerInput key and the results are stored in + * SageMakerOutput.

                          + *

                          For CSV files, Amazon SageMaker combines the transformed data with the input data at the end of + * the input data and stores it in the output file. The joined data has the joined input + * data followed by the transformed data and the output is a CSV file.

                          */ - AlgorithmName: string | undefined; + JoinSource?: JoinSource | string; } -export namespace DeleteAlgorithmInput { - export const filterSensitiveLog = (obj: DeleteAlgorithmInput): any => ({ +export namespace DataProcessing { + export const filterSensitiveLog = (obj: DataProcessing): any => ({ ...obj, }); } -export interface DeleteAppRequest { - /** - *

                          The domain ID.

                          - */ - DomainId: string | undefined; - - /** - *

                          The user profile name.

                          - */ - UserProfileName: string | undefined; - +/** + *

                          Configures the timeout and maximum number of retries for processing a transform job + * invocation.

                          + */ +export interface ModelClientConfig { /** - *

                          The type of app.

                          + *

                          The timeout value in seconds for an invocation request.

                          */ - AppType: AppType | string | undefined; + InvocationsTimeoutInSeconds?: number; /** - *

                          The name of the app.

                          + *

                          The maximum number of retries when invocation requests are failing.

                          */ - AppName: string | undefined; + InvocationsMaxRetries?: number; } -export namespace DeleteAppRequest { - export const filterSensitiveLog = (obj: DeleteAppRequest): any => ({ +export namespace ModelClientConfig { + export const filterSensitiveLog = (obj: ModelClientConfig): any => ({ ...obj, }); } -export interface DeleteAppImageConfigRequest { +export interface CreateTransformJobRequest { /** - *

                          The name of the AppImageConfig to delete.

                          + *

                          The name of the transform job. The name must be unique within an AWS Region in an + * AWS account.

                          */ - AppImageConfigName: string | undefined; -} - -export namespace DeleteAppImageConfigRequest { - export const filterSensitiveLog = (obj: DeleteAppImageConfigRequest): any => ({ - ...obj, - }); -} + TransformJobName: string | undefined; -export interface DeleteArtifactRequest { /** - *

                          The Amazon Resource Name (ARN) of the artifact to delete.

                          + *

                          The name of the model that you want to use for the transform job. + * ModelName must be the name of an existing Amazon SageMaker model within an AWS + * Region in an AWS account.

                          */ - ArtifactArn?: string; + ModelName: string | undefined; /** - *

                          The URI of the source.

                          + *

                          The maximum number of parallel requests that can be sent to each instance in a + * transform job. If MaxConcurrentTransforms is set to 0 or left + * unset, Amazon SageMaker checks the optional execution-parameters to determine the settings for your + * chosen algorithm. If the execution-parameters endpoint is not enabled, the default value + * is 1. For more information on execution-parameters, see How Containers Serve Requests. For built-in algorithms, you don't need to + * set a value for MaxConcurrentTransforms.

                          */ - Source?: ArtifactSource; -} - -export namespace DeleteArtifactRequest { - export const filterSensitiveLog = (obj: DeleteArtifactRequest): any => ({ - ...obj, - }); -} + MaxConcurrentTransforms?: number; -export interface DeleteArtifactResponse { /** - *

                          The Amazon Resource Name (ARN) of the artifact.

                          + *

                          Configures the timeout and maximum number of retries for processing a transform job + * invocation.

                          */ - ArtifactArn?: string; -} - -export namespace DeleteArtifactResponse { - export const filterSensitiveLog = (obj: DeleteArtifactResponse): any => ({ - ...obj, - }); -} + ModelClientConfig?: ModelClientConfig; -export interface DeleteAssociationRequest { /** - *

                          The ARN of the source.

                          + *

                          The maximum allowed size of the payload, in MB. A payload is the + * data portion of a record (without metadata). The value in MaxPayloadInMB + * must be greater than, or equal to, the size of a single record. To estimate the size of + * a record in MB, divide the size of your dataset by the number of records. To ensure that + * the records fit within the maximum payload size, we recommend using a slightly larger + * value. The default value is 6 MB. + *

                          + *

                          For cases where the payload might be arbitrarily large and is transmitted using HTTP + * chunked encoding, set the value to 0. + * This + * feature works only in supported algorithms. Currently, Amazon SageMaker built-in + * algorithms do not support HTTP chunked encoding.

                          */ - SourceArn: string | undefined; + MaxPayloadInMB?: number; /** - *

                          The Amazon Resource Name (ARN) of the destination.

                          + *

                          Specifies the number of records to include in a mini-batch for an HTTP inference + * request. A record + * is a single unit of input data that + * inference can be made on. For example, a single line in a CSV file is a record.

                          + *

                          To enable the batch strategy, you must set the SplitType property to + * Line, RecordIO, or TFRecord.

                          + *

                          To use only one record when making an HTTP invocation request to a container, set + * BatchStrategy to SingleRecord and SplitType + * to Line.

                          + *

                          To fit as many records in a mini-batch as can fit within the + * MaxPayloadInMB limit, set BatchStrategy to + * MultiRecord and SplitType to Line.

                          */ - DestinationArn: string | undefined; -} - -export namespace DeleteAssociationRequest { - export const filterSensitiveLog = (obj: DeleteAssociationRequest): any => ({ - ...obj, - }); -} + BatchStrategy?: BatchStrategy | string; -export interface DeleteAssociationResponse { /** - *

                          The ARN of the source.

                          + *

                          The environment variables to set in the Docker container. We support up to 16 key and + * values entries in the map.

                          */ - SourceArn?: string; + Environment?: { [key: string]: string }; /** - *

                          The Amazon Resource Name (ARN) of the destination.

                          + *

                          Describes the input source and + * the + * way the transform job consumes it.

                          */ - DestinationArn?: string; -} - -export namespace DeleteAssociationResponse { - export const filterSensitiveLog = (obj: DeleteAssociationResponse): any => ({ - ...obj, - }); -} + TransformInput: TransformInput | undefined; -export interface DeleteCodeRepositoryInput { /** - *

                          The name of the Git repository to delete.

                          + *

                          Describes the results of the transform job.

                          */ - CodeRepositoryName: string | undefined; -} + TransformOutput: TransformOutput | undefined; -export namespace DeleteCodeRepositoryInput { - export const filterSensitiveLog = (obj: DeleteCodeRepositoryInput): any => ({ - ...obj, - }); -} + /** + *

                          Describes the resources, including + * ML + * instance types and ML instance count, to use for the transform + * job.

                          + */ + TransformResources: TransformResources | undefined; -export interface DeleteContextRequest { /** - *

                          The name of the context to delete.

                          + *

                          The data structure used to specify the data to be used for inference in a batch + * transform job and to associate the data that is relevant to the prediction results in + * the output. The input filter provided allows you to exclude input data that is not + * needed for inference in a batch transform job. The output filter provided allows you to + * include input data relevant to interpreting the predictions in the output from the job. + * For more information, see Associate Prediction + * Results with their Corresponding Input Records.

                          */ - ContextName: string | undefined; -} + DataProcessing?: DataProcessing; -export namespace DeleteContextRequest { - export const filterSensitiveLog = (obj: DeleteContextRequest): any => ({ - ...obj, - }); -} + /** + *

                          (Optional) + * An + * array of key-value pairs. For more information, see Using + * Cost Allocation Tags in the AWS Billing and Cost Management User + * Guide.

                          + */ + Tags?: Tag[]; -export interface DeleteContextResponse { /** - *

                          The Amazon Resource Name (ARN) of the context.

                          + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * */ - ContextArn?: string; + ExperimentConfig?: ExperimentConfig; } -export namespace DeleteContextResponse { - export const filterSensitiveLog = (obj: DeleteContextResponse): any => ({ +export namespace CreateTransformJobRequest { + export const filterSensitiveLog = (obj: CreateTransformJobRequest): any => ({ ...obj, }); } -export enum RetentionType { - Delete = "Delete", - Retain = "Retain", -} - -/** - *

                          The retention policy for data stored on an Amazon Elastic File System (EFS) volume.

                          - */ -export interface RetentionPolicy { +export interface CreateTransformJobResponse { /** - *

                          The default is Retain, which specifies to keep the data stored on the EFS volume.

                          - *

                          Specify Delete to delete the data stored on the EFS volume.

                          + *

                          The Amazon Resource Name (ARN) of the transform job.

                          */ - HomeEfsFileSystem?: RetentionType | string; + TransformJobArn: string | undefined; } -export namespace RetentionPolicy { - export const filterSensitiveLog = (obj: RetentionPolicy): any => ({ +export namespace CreateTransformJobResponse { + export const filterSensitiveLog = (obj: CreateTransformJobResponse): any => ({ ...obj, }); } -export interface DeleteDomainRequest { +export interface CreateTrialRequest { /** - *

                          The domain ID.

                          + *

                          The name of the trial. The name must be unique in your AWS account and is not + * case-sensitive.

                          */ - DomainId: string | undefined; + TrialName: string | undefined; /** - *

                          The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. - * By default, all resources are retained (not automatically deleted). - *

                          + *

                          The name of the trial as displayed. The name doesn't need to be unique. If + * DisplayName isn't specified, TrialName is displayed.

                          */ - RetentionPolicy?: RetentionPolicy; -} - -export namespace DeleteDomainRequest { - export const filterSensitiveLog = (obj: DeleteDomainRequest): any => ({ - ...obj, - }); -} + DisplayName?: string; -export interface DeleteEndpointInput { /** - *

                          The name of the endpoint that you want to delete.

                          + *

                          The name of the experiment to associate the trial with.

                          */ - EndpointName: string | undefined; -} + ExperimentName: string | undefined; -export namespace DeleteEndpointInput { - export const filterSensitiveLog = (obj: DeleteEndpointInput): any => ({ - ...obj, - }); -} + /** + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + */ + MetadataProperties?: MetadataProperties; -export interface DeleteEndpointConfigInput { /** - *

                          The name of the endpoint configuration that you want to delete.

                          + *

                          A list of tags to associate with the trial. You can use Search API to + * search on the tags.

                          */ - EndpointConfigName: string | undefined; + Tags?: Tag[]; } -export namespace DeleteEndpointConfigInput { - export const filterSensitiveLog = (obj: DeleteEndpointConfigInput): any => ({ +export namespace CreateTrialRequest { + export const filterSensitiveLog = (obj: CreateTrialRequest): any => ({ ...obj, }); } -export interface DeleteExperimentRequest { +export interface CreateTrialResponse { /** - *

                          The name of the experiment to delete.

                          + *

                          The Amazon Resource Name (ARN) of the trial.

                          */ - ExperimentName: string | undefined; + TrialArn?: string; } -export namespace DeleteExperimentRequest { - export const filterSensitiveLog = (obj: DeleteExperimentRequest): any => ({ +export namespace CreateTrialResponse { + export const filterSensitiveLog = (obj: CreateTrialResponse): any => ({ ...obj, }); } -export interface DeleteExperimentResponse { - /** - *

                          The Amazon Resource Name (ARN) of the experiment that is being deleted.

                          - */ - ExperimentArn?: string; -} - -export namespace DeleteExperimentResponse { - export const filterSensitiveLog = (obj: DeleteExperimentResponse): any => ({ - ...obj, - }); -} - -export interface DeleteFeatureGroupRequest { +/** + *

                          Represents an input or output artifact of a trial component. You specify + * TrialComponentArtifact as part of the InputArtifacts and + * OutputArtifacts parameters in the CreateTrialComponent + * request.

                          + *

                          Examples of input artifacts are datasets, algorithms, hyperparameters, source code, and + * instance types. Examples of output artifacts are metrics, snapshots, logs, and images.

                          + */ +export interface TrialComponentArtifact { /** - *

                          The name of the FeatureGroup you want to delete. The name must be unique - * within an AWS Region in an AWS account.

                          + *

                          The media type of the artifact, which indicates the type of data in the artifact file. The + * media type consists of a type and a subtype + * concatenated with a slash (/) character, for example, text/csv, image/jpeg, and s3/uri. The + * type specifies the category of the media. The subtype specifies the kind of data.

                          */ - FeatureGroupName: string | undefined; -} - -export namespace DeleteFeatureGroupRequest { - export const filterSensitiveLog = (obj: DeleteFeatureGroupRequest): any => ({ - ...obj, - }); -} + MediaType?: string; -export interface DeleteFlowDefinitionRequest { /** - *

                          The name of the flow definition you are deleting.

                          + *

                          The location of the artifact.

                          */ - FlowDefinitionName: string | undefined; + Value: string | undefined; } -export namespace DeleteFlowDefinitionRequest { - export const filterSensitiveLog = (obj: DeleteFlowDefinitionRequest): any => ({ +export namespace TrialComponentArtifact { + export const filterSensitiveLog = (obj: TrialComponentArtifact): any => ({ ...obj, }); } -export interface DeleteFlowDefinitionResponse {} +/** + *

                          The value of a hyperparameter. Only one of NumberValue or + * StringValue can be specified.

                          + *

                          This object is specified in the CreateTrialComponent request.

                          + */ +export type TrialComponentParameterValue = + | TrialComponentParameterValue.NumberValueMember + | TrialComponentParameterValue.StringValueMember + | TrialComponentParameterValue.$UnknownMember; -export namespace DeleteFlowDefinitionResponse { - export const filterSensitiveLog = (obj: DeleteFlowDefinitionResponse): any => ({ - ...obj, - }); -} +export namespace TrialComponentParameterValue { + /** + *

                          The string value of a categorical hyperparameter. If you specify a value for this + * parameter, you can't specify the NumberValue parameter.

                          + */ + export interface StringValueMember { + StringValue: string; + NumberValue?: never; + $unknown?: never; + } -export interface DeleteHumanTaskUiRequest { /** - *

                          The name of the human task user interface (work task template) you want to delete.

                          + *

                          The numeric value of a numeric hyperparameter. If you specify a value for this parameter, + * you can't specify the StringValue parameter.

                          */ - HumanTaskUiName: string | undefined; -} + export interface NumberValueMember { + StringValue?: never; + NumberValue: number; + $unknown?: never; + } -export namespace DeleteHumanTaskUiRequest { - export const filterSensitiveLog = (obj: DeleteHumanTaskUiRequest): any => ({ - ...obj, - }); -} + export interface $UnknownMember { + StringValue?: never; + NumberValue?: never; + $unknown: [string, any]; + } -export interface DeleteHumanTaskUiResponse {} + export interface Visitor { + StringValue: (value: string) => T; + NumberValue: (value: number) => T; + _: (name: string, value: any) => T; + } -export namespace DeleteHumanTaskUiResponse { - export const filterSensitiveLog = (obj: DeleteHumanTaskUiResponse): any => ({ - ...obj, - }); + export const visit = (value: TrialComponentParameterValue, visitor: Visitor): T => { + if (value.StringValue !== undefined) return visitor.StringValue(value.StringValue); + if (value.NumberValue !== undefined) return visitor.NumberValue(value.NumberValue); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; + + export const filterSensitiveLog = (obj: TrialComponentParameterValue): any => { + if (obj.StringValue !== undefined) return { StringValue: obj.StringValue }; + if (obj.NumberValue !== undefined) return { NumberValue: obj.NumberValue }; + if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; + }; } -export interface DeleteImageRequest { +export enum TrialComponentPrimaryStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", +} + +/** + *

                          The status of the trial component.

                          + */ +export interface TrialComponentStatus { /** - *

                          The name of the image to delete.

                          + *

                          The status of the trial component.

                          */ - ImageName: string | undefined; -} + PrimaryStatus?: TrialComponentPrimaryStatus | string; -export namespace DeleteImageRequest { - export const filterSensitiveLog = (obj: DeleteImageRequest): any => ({ - ...obj, - }); + /** + *

                          If the component failed, a message describing why.

                          + */ + Message?: string; } -export interface DeleteImageResponse {} - -export namespace DeleteImageResponse { - export const filterSensitiveLog = (obj: DeleteImageResponse): any => ({ +export namespace TrialComponentStatus { + export const filterSensitiveLog = (obj: TrialComponentStatus): any => ({ ...obj, }); } -export interface DeleteImageVersionRequest { +export interface CreateTrialComponentRequest { /** - *

                          The name of the image.

                          + *

                          The name of the component. The name must be unique in your AWS account and is not + * case-sensitive.

                          */ - ImageName: string | undefined; + TrialComponentName: string | undefined; /** - *

                          The version to delete.

                          + *

                          The name of the component as displayed. The name doesn't need to be unique. If + * DisplayName isn't specified, TrialComponentName is + * displayed.

                          */ - Version: number | undefined; -} + DisplayName?: string; -export namespace DeleteImageVersionRequest { - export const filterSensitiveLog = (obj: DeleteImageVersionRequest): any => ({ - ...obj, - }); -} + /** + *

                          The status of the component. States include:

                          + *
                            + *
                          • + *

                            InProgress

                            + *
                          • + *
                          • + *

                            Completed

                            + *
                          • + *
                          • + *

                            Failed

                            + *
                          • + *
                          + */ + Status?: TrialComponentStatus; -export interface DeleteImageVersionResponse {} + /** + *

                          When the component started.

                          + */ + StartTime?: Date; -export namespace DeleteImageVersionResponse { - export const filterSensitiveLog = (obj: DeleteImageVersionResponse): any => ({ - ...obj, - }); -} + /** + *

                          When the component ended.

                          + */ + EndTime?: Date; -export interface DeleteModelInput { /** - *

                          The name of the model to delete.

                          + *

                          The hyperparameters for the component.

                          */ - ModelName: string | undefined; -} + Parameters?: { [key: string]: TrialComponentParameterValue }; -export namespace DeleteModelInput { - export const filterSensitiveLog = (obj: DeleteModelInput): any => ({ - ...obj, - }); -} + /** + *

                          The input artifacts for the component. Examples of input artifacts are datasets, + * algorithms, hyperparameters, source code, and instance types.

                          + */ + InputArtifacts?: { [key: string]: TrialComponentArtifact }; -export interface DeleteModelPackageInput { /** - *

                          The name of the model package. The name must have 1 to 63 characters. Valid characters - * are a-z, A-Z, 0-9, and - (hyphen).

                          + *

                          The output artifacts for the component. Examples of output artifacts are metrics, + * snapshots, logs, and images.

                          */ - ModelPackageName: string | undefined; -} + OutputArtifacts?: { [key: string]: TrialComponentArtifact }; -export namespace DeleteModelPackageInput { - export const filterSensitiveLog = (obj: DeleteModelPackageInput): any => ({ - ...obj, - }); -} + /** + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + */ + MetadataProperties?: MetadataProperties; -export interface DeleteModelPackageGroupInput { /** - *

                          The name of the model group to delete.

                          + *

                          A list of tags to associate with the component. You can use Search API + * to search on the tags.

                          */ - ModelPackageGroupName: string | undefined; + Tags?: Tag[]; } -export namespace DeleteModelPackageGroupInput { - export const filterSensitiveLog = (obj: DeleteModelPackageGroupInput): any => ({ +export namespace CreateTrialComponentRequest { + export const filterSensitiveLog = (obj: CreateTrialComponentRequest): any => ({ ...obj, + ...(obj.Parameters && { + Parameters: Object.entries(obj.Parameters).reduce( + (acc: any, [key, value]: [string, TrialComponentParameterValue]) => ({ + ...acc, + [key]: TrialComponentParameterValue.filterSensitiveLog(value), + }), + {} + ), + }), }); } -export interface DeleteModelPackageGroupPolicyInput { +export interface CreateTrialComponentResponse { /** - *

                          The name of the model group for which to delete the policy.

                          + *

                          The Amazon Resource Name (ARN) of the trial component.

                          */ - ModelPackageGroupName: string | undefined; + TrialComponentArn?: string; } -export namespace DeleteModelPackageGroupPolicyInput { - export const filterSensitiveLog = (obj: DeleteModelPackageGroupPolicyInput): any => ({ +export namespace CreateTrialComponentResponse { + export const filterSensitiveLog = (obj: CreateTrialComponentResponse): any => ({ ...obj, }); } -export interface DeleteMonitoringScheduleRequest { +export interface CreateUserProfileRequest { /** - *

                          The name of the monitoring schedule to delete.

                          + *

                          The ID of the associated Domain.

                          */ - MonitoringScheduleName: string | undefined; -} - -export namespace DeleteMonitoringScheduleRequest { - export const filterSensitiveLog = (obj: DeleteMonitoringScheduleRequest): any => ({ - ...obj, - }); -} + DomainId: string | undefined; -export interface DeleteNotebookInstanceInput { /** - *

                          The name of the Amazon SageMaker notebook instance to delete.

                          + *

                          A name for the UserProfile.

                          */ - NotebookInstanceName: string | undefined; -} - -export namespace DeleteNotebookInstanceInput { - export const filterSensitiveLog = (obj: DeleteNotebookInstanceInput): any => ({ - ...obj, - }); -} + UserProfileName: string | undefined; -export interface DeleteNotebookInstanceLifecycleConfigInput { /** - *

                          The name of the lifecycle configuration to delete.

                          + *

                          A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is "UserName". + * If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified. + *

                          */ - NotebookInstanceLifecycleConfigName: string | undefined; -} - -export namespace DeleteNotebookInstanceLifecycleConfigInput { - export const filterSensitiveLog = (obj: DeleteNotebookInstanceLifecycleConfigInput): any => ({ - ...obj, - }); -} + SingleSignOnUserIdentifier?: string; -export interface DeletePipelineRequest { /** - *

                          The name of the pipeline to delete.

                          + *

                          The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is + * required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified. + *

                          */ - PipelineName: string | undefined; + SingleSignOnUserValue?: string; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the - * operation. An idempotent operation completes no more than one time.

                          + *

                          Each tag consists of a key and an optional value. + * Tag keys must be unique per resource.

                          */ - ClientRequestToken?: string; -} - -export namespace DeletePipelineRequest { - export const filterSensitiveLog = (obj: DeletePipelineRequest): any => ({ - ...obj, - }); -} + Tags?: Tag[]; -export interface DeletePipelineResponse { /** - *

                          The Amazon Resource Name (ARN) of the pipeline to delete.

                          + *

                          A collection of settings.

                          */ - PipelineArn?: string; + UserSettings?: UserSettings; } -export namespace DeletePipelineResponse { - export const filterSensitiveLog = (obj: DeletePipelineResponse): any => ({ +export namespace CreateUserProfileRequest { + export const filterSensitiveLog = (obj: CreateUserProfileRequest): any => ({ ...obj, }); } -export interface DeleteProjectInput { +export interface CreateUserProfileResponse { /** - *

                          The name of the project to delete.

                          + *

                          The user profile Amazon Resource Name (ARN).

                          */ - ProjectName: string | undefined; + UserProfileArn?: string; } -export namespace DeleteProjectInput { - export const filterSensitiveLog = (obj: DeleteProjectInput): any => ({ +export namespace CreateUserProfileResponse { + export const filterSensitiveLog = (obj: CreateUserProfileResponse): any => ({ ...obj, }); } -export interface DeleteTagsInput { +/** + *

                          Use this parameter to configure your OIDC Identity Provider (IdP).

                          + */ +export interface OidcConfig { /** - *

                          The Amazon Resource Name (ARN) of the resource whose tags you want to - * delete.

                          + *

                          The OIDC IdP client ID used to configure your private workforce.

                          */ - ResourceArn: string | undefined; + ClientId: string | undefined; /** - *

                          An array or one or more tag keys to delete.

                          + *

                          The OIDC IdP client secret used to configure your private workforce.

                          */ - TagKeys: string[] | undefined; -} - -export namespace DeleteTagsInput { - export const filterSensitiveLog = (obj: DeleteTagsInput): any => ({ - ...obj, - }); -} - -export interface DeleteTagsOutput {} + ClientSecret: string | undefined; -export namespace DeleteTagsOutput { - export const filterSensitiveLog = (obj: DeleteTagsOutput): any => ({ - ...obj, - }); -} + /** + *

                          The OIDC IdP issuer used to configure your private workforce.

                          + */ + Issuer: string | undefined; -export interface DeleteTrialRequest { /** - *

                          The name of the trial to delete.

                          + *

                          The OIDC IdP authorization endpoint used to configure your private workforce.

                          */ - TrialName: string | undefined; -} + AuthorizationEndpoint: string | undefined; -export namespace DeleteTrialRequest { - export const filterSensitiveLog = (obj: DeleteTrialRequest): any => ({ - ...obj, - }); -} + /** + *

                          The OIDC IdP token endpoint used to configure your private workforce.

                          + */ + TokenEndpoint: string | undefined; -export interface DeleteTrialResponse { /** - *

                          The Amazon Resource Name (ARN) of the trial that is being deleted.

                          + *

                          The OIDC IdP user information endpoint used to configure your private workforce.

                          */ - TrialArn?: string; -} + UserInfoEndpoint: string | undefined; -export namespace DeleteTrialResponse { - export const filterSensitiveLog = (obj: DeleteTrialResponse): any => ({ - ...obj, - }); -} + /** + *

                          The OIDC IdP logout endpoint used to configure your private workforce.

                          + */ + LogoutEndpoint: string | undefined; -export interface DeleteTrialComponentRequest { /** - *

                          The name of the component to delete.

                          + *

                          The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.

                          */ - TrialComponentName: string | undefined; + JwksUri: string | undefined; } -export namespace DeleteTrialComponentRequest { - export const filterSensitiveLog = (obj: DeleteTrialComponentRequest): any => ({ +export namespace OidcConfig { + export const filterSensitiveLog = (obj: OidcConfig): any => ({ ...obj, + ...(obj.ClientSecret && { ClientSecret: SENSITIVE_STRING }), }); } -export interface DeleteTrialComponentResponse { +/** + *

                          A list of IP address ranges (CIDRs). Used to create an allow + * list of IP addresses for a private workforce. Workers will only be able to login to their worker portal from an + * IP address within this range. By default, a workforce isn't restricted to specific IP addresses.

                          + */ +export interface SourceIpConfig { /** - *

                          The Amazon Resource Name (ARN) of the component is being deleted.

                          + *

                          A list of one to ten Classless Inter-Domain Routing (CIDR) values.

                          + *

                          Maximum: Ten CIDR values

                          + * + *

                          The following Length Constraints apply to individual CIDR values in + * the CIDR value list.

                          + *
                          */ - TrialComponentArn?: string; + Cidrs: string[] | undefined; } -export namespace DeleteTrialComponentResponse { - export const filterSensitiveLog = (obj: DeleteTrialComponentResponse): any => ({ +export namespace SourceIpConfig { + export const filterSensitiveLog = (obj: SourceIpConfig): any => ({ ...obj, }); } -export interface DeleteUserProfileRequest { +export interface CreateWorkforceRequest { /** - *

                          The domain ID.

                          + *

                          Use this parameter to configure an Amazon Cognito private workforce. + * A single Cognito workforce is created using and corresponds to a single + * + * Amazon Cognito user pool.

                          + * + *

                          Do not use OidcConfig if you specify values for + * CognitoConfig.

                          */ - DomainId: string | undefined; + CognitoConfig?: CognitoConfig; /** - *

                          The user profile name.

                          + *

                          Use this parameter to configure a private workforce using your own OIDC Identity Provider.

                          + *

                          Do not use CognitoConfig if you specify values for + * OidcConfig.

                          */ - UserProfileName: string | undefined; -} + OidcConfig?: OidcConfig; -export namespace DeleteUserProfileRequest { - export const filterSensitiveLog = (obj: DeleteUserProfileRequest): any => ({ - ...obj, - }); -} + /** + *

                          A list of IP address ranges (CIDRs). Used to create an allow + * list of IP addresses for a private workforce. Workers will only be able to login to their worker portal from an + * IP address within this range. By default, a workforce isn't restricted to specific IP addresses.

                          + */ + SourceIpConfig?: SourceIpConfig; -export interface DeleteWorkforceRequest { /** - *

                          The name of the workforce.

                          + *

                          The name of the private workforce.

                          */ WorkforceName: string | undefined; -} -export namespace DeleteWorkforceRequest { - export const filterSensitiveLog = (obj: DeleteWorkforceRequest): any => ({ - ...obj, - }); + /** + *

                          An array of key-value pairs that contain metadata to help you categorize and + * organize our workforce. Each tag consists of a key and a value, + * both of which you define.

                          + */ + Tags?: Tag[]; } -export interface DeleteWorkforceResponse {} - -export namespace DeleteWorkforceResponse { - export const filterSensitiveLog = (obj: DeleteWorkforceResponse): any => ({ +export namespace CreateWorkforceRequest { + export const filterSensitiveLog = (obj: CreateWorkforceRequest): any => ({ ...obj, + ...(obj.OidcConfig && { OidcConfig: OidcConfig.filterSensitiveLog(obj.OidcConfig) }), }); } -export interface DeleteWorkteamRequest { +export interface CreateWorkforceResponse { /** - *

                          The name of the work team to delete.

                          + *

                          The Amazon Resource Name (ARN) of the workforce.

                          */ - WorkteamName: string | undefined; + WorkforceArn: string | undefined; } -export namespace DeleteWorkteamRequest { - export const filterSensitiveLog = (obj: DeleteWorkteamRequest): any => ({ +export namespace CreateWorkforceResponse { + export const filterSensitiveLog = (obj: CreateWorkforceResponse): any => ({ ...obj, }); } -export interface DeleteWorkteamResponse { +/** + *

                          A list of user groups that exist in your OIDC Identity Provider (IdP). + * One to ten groups can be used to create a single private work team. + * When you add a user group to the list of Groups, you can add that user group to one or more + * private work teams. If you add a user group to a private work team, all workers in that user group + * are added to the work team.

                          + */ +export interface OidcMemberDefinition { /** - *

                          Returns true if the work team was successfully deleted; otherwise, - * returns false.

                          + *

                          A list of comma seperated strings that identifies + * user groups in your OIDC IdP. Each user group is + * made up of a group of private workers.

                          */ - Success: boolean | undefined; + Groups: string[] | undefined; } -export namespace DeleteWorkteamResponse { - export const filterSensitiveLog = (obj: DeleteWorkteamResponse): any => ({ +export namespace OidcMemberDefinition { + export const filterSensitiveLog = (obj: OidcMemberDefinition): any => ({ ...obj, }); } /** - *

                          Gets the Amazon EC2 Container Registry path of the docker image of the model that is hosted in this ProductionVariant.

                          - *

                          If you used the registry/repository[:tag] form to specify the image path - * of the primary container when you created the model hosted in this - * ProductionVariant, the path resolves to a path of the form - * registry/repository[@digest]. A digest is a hash value that identifies - * a specific version of an image. For information about Amazon ECR paths, see Pulling an Image in the Amazon ECR User Guide.

                          + *

                          Defines an Amazon Cognito or your own OIDC IdP user group that is part of a work team.

                          */ -export interface DeployedImage { +export interface MemberDefinition { /** - *

                          The image path you specified when you created the model.

                          + *

                          The Amazon Cognito user group that is part of the work team.

                          */ - SpecifiedImage?: string; - - /** - *

                          The specific digest path of the image hosted in this - * ProductionVariant.

                          - */ - ResolvedImage?: string; + CognitoMemberDefinition?: CognitoMemberDefinition; /** - *

                          The date and time when the image path for the model resolved to the - * ResolvedImage - *

                          + *

                          A list user groups that exist in your OIDC Identity Provider (IdP). + * One to ten groups can be used to create a single private work team. + * When you add a user group to the list of Groups, you can add that user group to one or more + * private work teams. If you add a user group to a private work team, all workers in that user group + * are added to the work team.

                          */ - ResolutionTime?: Date; + OidcMemberDefinition?: OidcMemberDefinition; } -export namespace DeployedImage { - export const filterSensitiveLog = (obj: DeployedImage): any => ({ +export namespace MemberDefinition { + export const filterSensitiveLog = (obj: MemberDefinition): any => ({ ...obj, }); } /** - *

                          Currently, the DeploymentConfig API is not supported.

                          + *

                          Configures SNS notifications of available or expiring work items for work + * teams.

                          */ -export interface DeploymentConfig { - /** - *

                          - */ - BlueGreenUpdatePolicy: BlueGreenUpdatePolicy | undefined; - +export interface NotificationConfiguration { /** - *

                          + *

                          The ARN for the SNS topic to which notifications should be published.

                          */ - AutoRollbackConfiguration?: AutoRollbackConfig; + NotificationTopicArn?: string; } -export namespace DeploymentConfig { - export const filterSensitiveLog = (obj: DeploymentConfig): any => ({ +export namespace NotificationConfiguration { + export const filterSensitiveLog = (obj: NotificationConfiguration): any => ({ ...obj, }); } -export interface DescribeActionRequest { +export interface CreateWorkteamRequest { /** - *

                          The name of the action to describe.

                          + *

                          The name of the work team. Use this name to identify the work team.

                          */ - ActionName: string | undefined; -} - -export namespace DescribeActionRequest { - export const filterSensitiveLog = (obj: DescribeActionRequest): any => ({ - ...obj, - }); -} + WorkteamName: string | undefined; -export interface DescribeActionResponse { /** - *

                          The name of the action.

                          + *

                          The name of the workforce.

                          */ - ActionName?: string; + WorkforceName?: string; /** - *

                          The Amazon Resource Name (ARN) of the action.

                          + *

                          A list of MemberDefinition objects that contains objects that identify + * the workers that make up the work team.

                          + *

                          Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For + * private workforces created using Amazon Cognito use CognitoMemberDefinition. For + * workforces created using your own OIDC identity provider (IdP) use + * OidcMemberDefinition. Do not provide input for both of these parameters + * in a single request.

                          + *

                          For workforces created using Amazon Cognito, private work teams correspond to Amazon Cognito + * user groups within the user pool used to create a workforce. All of the + * CognitoMemberDefinition objects that make up the member definition must + * have the same ClientId and UserPool values. To add a Amazon + * Cognito user group to an existing worker pool, see Adding groups to a User + * Pool. For more information about user pools, see Amazon Cognito User + * Pools.

                          + *

                          For workforces created using your own OIDC IdP, specify the user groups that you want to + * include in your private work team in OidcMemberDefinition by listing those groups + * in Groups.

                          */ - ActionArn?: string; + MemberDefinitions: MemberDefinition[] | undefined; /** - *

                          The source of the action.

                          + *

                          A description of the work team.

                          */ - Source?: ActionSource; + Description: string | undefined; /** - *

                          The type of the action.

                          + *

                          Configures notification of workers regarding available or expiring work items.

                          */ - ActionType?: string; + NotificationConfiguration?: NotificationConfiguration; /** - *

                          The description of the action.

                          + *

                          An array of key-value pairs.

                          + *

                          For more information, see Resource + * Tag and Using + * Cost Allocation Tags in the AWS Billing and Cost Management User + * Guide.

                          */ - Description?: string; + Tags?: Tag[]; +} - /** - *

                          The status of the action.

                          - */ - Status?: ActionStatus | string; +export namespace CreateWorkteamRequest { + export const filterSensitiveLog = (obj: CreateWorkteamRequest): any => ({ + ...obj, + }); +} +export interface CreateWorkteamResponse { /** - *

                          A list of the action's properties.

                          + *

                          The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the + * work team.

                          */ - Properties?: { [key: string]: string }; + WorkteamArn?: string; +} + +export namespace CreateWorkteamResponse { + export const filterSensitiveLog = (obj: CreateWorkteamResponse): any => ({ + ...obj, + }); +} +/** + *

                          + */ +export interface DataCaptureConfigSummary { /** - *

                          When the action was created.

                          + *

                          */ - CreationTime?: Date; + EnableCapture: boolean | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          */ - CreatedBy?: UserContext; + CaptureStatus: CaptureStatus | string | undefined; /** - *

                          When the action was last modified.

                          + *

                          */ - LastModifiedTime?: Date; + CurrentSamplingPercentage: number | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          */ - LastModifiedBy?: UserContext; + DestinationS3Uri: string | undefined; /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          */ - MetadataProperties?: MetadataProperties; + KmsKeyId: string | undefined; } -export namespace DescribeActionResponse { - export const filterSensitiveLog = (obj: DescribeActionResponse): any => ({ +export namespace DataCaptureConfigSummary { + export const filterSensitiveLog = (obj: DataCaptureConfigSummary): any => ({ ...obj, }); } -export interface DescribeAlgorithmInput { - /** - *

                          The name of the algorithm to describe.

                          - */ - AlgorithmName: string | undefined; -} - -export namespace DescribeAlgorithmInput { - export const filterSensitiveLog = (obj: DescribeAlgorithmInput): any => ({ - ...obj, - }); +export enum RuleEvaluationStatus { + ERROR = "Error", + IN_PROGRESS = "InProgress", + ISSUES_FOUND = "IssuesFound", + NO_ISSUES_FOUND = "NoIssuesFound", + STOPPED = "Stopped", + STOPPING = "Stopping", } -export interface DescribeAlgorithmOutput { +/** + *

                          Information about the status of the rule evaluation.

                          + */ +export interface DebugRuleEvaluationStatus { /** - *

                          The name of the algorithm being described.

                          + *

                          The name of the rule configuration.

                          */ - AlgorithmName: string | undefined; + RuleConfigurationName?: string; /** - *

                          The Amazon Resource Name (ARN) of the algorithm.

                          + *

                          The Amazon Resource Name (ARN) of the rule evaluation job.

                          */ - AlgorithmArn: string | undefined; + RuleEvaluationJobArn?: string; /** - *

                          A brief summary about the algorithm.

                          + *

                          Status of the rule evaluation.

                          */ - AlgorithmDescription?: string; + RuleEvaluationStatus?: RuleEvaluationStatus | string; /** - *

                          A timestamp specifying when the algorithm was created.

                          + *

                          Details from the rule evaluation.

                          */ - CreationTime: Date | undefined; + StatusDetails?: string; /** - *

                          Details about training jobs run by this algorithm.

                          + *

                          Timestamp when the rule evaluation status was last modified.

                          */ - TrainingSpecification: TrainingSpecification | undefined; + LastModifiedTime?: Date; +} - /** - *

                          Details about inference jobs that the algorithm runs.

                          - */ - InferenceSpecification?: InferenceSpecification; +export namespace DebugRuleEvaluationStatus { + export const filterSensitiveLog = (obj: DebugRuleEvaluationStatus): any => ({ + ...obj, + }); +} +export interface DeleteActionRequest { /** - *

                          Details about configurations for one or more training jobs that Amazon SageMaker runs to test the - * algorithm.

                          + *

                          The name of the action to delete.

                          */ - ValidationSpecification?: AlgorithmValidationSpecification; + ActionName: string | undefined; +} - /** - *

                          The current status of the algorithm.

                          - */ - AlgorithmStatus: AlgorithmStatus | string | undefined; +export namespace DeleteActionRequest { + export const filterSensitiveLog = (obj: DeleteActionRequest): any => ({ + ...obj, + }); +} +export interface DeleteActionResponse { /** - *

                          Details about the current status of the algorithm.

                          + *

                          The Amazon Resource Name (ARN) of the action.

                          */ - AlgorithmStatusDetails: AlgorithmStatusDetails | undefined; + ActionArn?: string; +} - /** - *

                          The product identifier of the algorithm.

                          - */ - ProductId?: string; +export namespace DeleteActionResponse { + export const filterSensitiveLog = (obj: DeleteActionResponse): any => ({ + ...obj, + }); +} +export interface DeleteAlgorithmInput { /** - *

                          Whether the algorithm is certified to be listed in AWS Marketplace.

                          + *

                          The name of the algorithm to delete.

                          */ - CertifyForMarketplace?: boolean; + AlgorithmName: string | undefined; } -export namespace DescribeAlgorithmOutput { - export const filterSensitiveLog = (obj: DescribeAlgorithmOutput): any => ({ +export namespace DeleteAlgorithmInput { + export const filterSensitiveLog = (obj: DeleteAlgorithmInput): any => ({ ...obj, }); } -export interface DescribeAppRequest { +export interface DeleteAppRequest { /** *

                          The domain ID.

                          */ @@ -2896,6628 +3001,6530 @@ export interface DescribeAppRequest { AppName: string | undefined; } -export namespace DescribeAppRequest { - export const filterSensitiveLog = (obj: DescribeAppRequest): any => ({ +export namespace DeleteAppRequest { + export const filterSensitiveLog = (obj: DeleteAppRequest): any => ({ ...obj, }); } -export interface DescribeAppResponse { +export interface DeleteAppImageConfigRequest { /** - *

                          The Amazon Resource Name (ARN) of the app.

                          + *

                          The name of the AppImageConfig to delete.

                          */ - AppArn?: string; + AppImageConfigName: string | undefined; +} - /** - *

                          The type of app.

                          - */ - AppType?: AppType | string; +export namespace DeleteAppImageConfigRequest { + export const filterSensitiveLog = (obj: DeleteAppImageConfigRequest): any => ({ + ...obj, + }); +} +export interface DeleteArtifactRequest { /** - *

                          The name of the app.

                          + *

                          The Amazon Resource Name (ARN) of the artifact to delete.

                          */ - AppName?: string; + ArtifactArn?: string; /** - *

                          The domain ID.

                          + *

                          The URI of the source.

                          */ - DomainId?: string; + Source?: ArtifactSource; +} - /** - *

                          The user profile name.

                          - */ - UserProfileName?: string; +export namespace DeleteArtifactRequest { + export const filterSensitiveLog = (obj: DeleteArtifactRequest): any => ({ + ...obj, + }); +} +export interface DeleteArtifactResponse { /** - *

                          The status.

                          + *

                          The Amazon Resource Name (ARN) of the artifact.

                          */ - Status?: AppStatus | string; + ArtifactArn?: string; +} - /** - *

                          The timestamp of the last health check.

                          - */ - LastHealthCheckTimestamp?: Date; +export namespace DeleteArtifactResponse { + export const filterSensitiveLog = (obj: DeleteArtifactResponse): any => ({ + ...obj, + }); +} +export interface DeleteAssociationRequest { /** - *

                          The timestamp of the last user's activity.

                          + *

                          The ARN of the source.

                          */ - LastUserActivityTimestamp?: Date; + SourceArn: string | undefined; /** - *

                          The creation time.

                          + *

                          The Amazon Resource Name (ARN) of the destination.

                          */ - CreationTime?: Date; + DestinationArn: string | undefined; +} + +export namespace DeleteAssociationRequest { + export const filterSensitiveLog = (obj: DeleteAssociationRequest): any => ({ + ...obj, + }); +} +export interface DeleteAssociationResponse { /** - *

                          The failure reason.

                          + *

                          The ARN of the source.

                          */ - FailureReason?: string; + SourceArn?: string; /** - *

                          The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

                          + *

                          The Amazon Resource Name (ARN) of the destination.

                          */ - ResourceSpec?: ResourceSpec; + DestinationArn?: string; } -export namespace DescribeAppResponse { - export const filterSensitiveLog = (obj: DescribeAppResponse): any => ({ +export namespace DeleteAssociationResponse { + export const filterSensitiveLog = (obj: DeleteAssociationResponse): any => ({ ...obj, }); } -export interface DescribeAppImageConfigRequest { +export interface DeleteCodeRepositoryInput { /** - *

                          The name of the AppImageConfig to describe.

                          + *

                          The name of the Git repository to delete.

                          */ - AppImageConfigName: string | undefined; + CodeRepositoryName: string | undefined; } -export namespace DescribeAppImageConfigRequest { - export const filterSensitiveLog = (obj: DescribeAppImageConfigRequest): any => ({ +export namespace DeleteCodeRepositoryInput { + export const filterSensitiveLog = (obj: DeleteCodeRepositoryInput): any => ({ ...obj, }); } -export interface DescribeAppImageConfigResponse { +export interface DeleteContextRequest { /** - *

                          The Amazon Resource Name (ARN) of the AppImageConfig.

                          + *

                          The name of the context to delete.

                          */ - AppImageConfigArn?: string; + ContextName: string | undefined; +} - /** - *

                          The name of the AppImageConfig.

                          - */ - AppImageConfigName?: string; +export namespace DeleteContextRequest { + export const filterSensitiveLog = (obj: DeleteContextRequest): any => ({ + ...obj, + }); +} +export interface DeleteContextResponse { /** - *

                          When the AppImageConfig was created.

                          + *

                          The Amazon Resource Name (ARN) of the context.

                          */ - CreationTime?: Date; + ContextArn?: string; +} - /** - *

                          When the AppImageConfig was last modified.

                          - */ - LastModifiedTime?: Date; +export namespace DeleteContextResponse { + export const filterSensitiveLog = (obj: DeleteContextResponse): any => ({ + ...obj, + }); +} +export interface DeleteDataQualityJobDefinitionRequest { /** - *

                          The configuration of a KernelGateway app.

                          + *

                          The name of the data quality monitoring job definition to delete.

                          */ - KernelGatewayImageConfig?: KernelGatewayImageConfig; + JobDefinitionName: string | undefined; } -export namespace DescribeAppImageConfigResponse { - export const filterSensitiveLog = (obj: DescribeAppImageConfigResponse): any => ({ +export namespace DeleteDataQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DeleteDataQualityJobDefinitionRequest): any => ({ ...obj, }); } -export interface DescribeArtifactRequest { +export interface DeleteDeviceFleetRequest { /** - *

                          The Amazon Resource Name (ARN) of the artifact to describe.

                          + *

                          The name of the fleet to delete.

                          */ - ArtifactArn: string | undefined; + DeviceFleetName: string | undefined; } -export namespace DescribeArtifactRequest { - export const filterSensitiveLog = (obj: DescribeArtifactRequest): any => ({ +export namespace DeleteDeviceFleetRequest { + export const filterSensitiveLog = (obj: DeleteDeviceFleetRequest): any => ({ ...obj, }); } -export interface DescribeArtifactResponse { - /** - *

                          The name of the artifact.

                          - */ - ArtifactName?: string; - - /** - *

                          The Amazon Resource Name (ARN) of the artifact.

                          - */ - ArtifactArn?: string; +export enum RetentionType { + Delete = "Delete", + Retain = "Retain", +} +/** + *

                          The retention policy for data stored on an Amazon Elastic File System (EFS) volume.

                          + */ +export interface RetentionPolicy { /** - *

                          The source of the artifact.

                          + *

                          The default is Retain, which specifies to keep the data stored on the EFS volume.

                          + *

                          Specify Delete to delete the data stored on the EFS volume.

                          */ - Source?: ArtifactSource; + HomeEfsFileSystem?: RetentionType | string; +} - /** - *

                          The type of the artifact.

                          - */ - ArtifactType?: string; +export namespace RetentionPolicy { + export const filterSensitiveLog = (obj: RetentionPolicy): any => ({ + ...obj, + }); +} +export interface DeleteDomainRequest { /** - *

                          A list of the artifact's properties.

                          + *

                          The domain ID.

                          */ - Properties?: { [key: string]: string }; + DomainId: string | undefined; /** - *

                          When the artifact was created.

                          + *

                          The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. + * By default, all resources are retained (not automatically deleted). + *

                          */ - CreationTime?: Date; + RetentionPolicy?: RetentionPolicy; +} - /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          - */ - CreatedBy?: UserContext; +export namespace DeleteDomainRequest { + export const filterSensitiveLog = (obj: DeleteDomainRequest): any => ({ + ...obj, + }); +} +export interface DeleteEndpointInput { /** - *

                          When the artifact was last modified.

                          + *

                          The name of the endpoint that you want to delete.

                          */ - LastModifiedTime?: Date; + EndpointName: string | undefined; +} - /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          - */ - LastModifiedBy?: UserContext; +export namespace DeleteEndpointInput { + export const filterSensitiveLog = (obj: DeleteEndpointInput): any => ({ + ...obj, + }); +} +export interface DeleteEndpointConfigInput { /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          The name of the endpoint configuration that you want to delete.

                          */ - MetadataProperties?: MetadataProperties; + EndpointConfigName: string | undefined; } -export namespace DescribeArtifactResponse { - export const filterSensitiveLog = (obj: DescribeArtifactResponse): any => ({ +export namespace DeleteEndpointConfigInput { + export const filterSensitiveLog = (obj: DeleteEndpointConfigInput): any => ({ ...obj, }); } -export interface DescribeAutoMLJobRequest { +export interface DeleteExperimentRequest { /** - *

                          Request information about a job using that job's unique name.

                          + *

                          The name of the experiment to delete.

                          */ - AutoMLJobName: string | undefined; + ExperimentName: string | undefined; } -export namespace DescribeAutoMLJobRequest { - export const filterSensitiveLog = (obj: DescribeAutoMLJobRequest): any => ({ +export namespace DeleteExperimentRequest { + export const filterSensitiveLog = (obj: DeleteExperimentRequest): any => ({ ...obj, }); } -/** - *

                          The resolved attributes.

                          - */ -export interface ResolvedAttributes { +export interface DeleteExperimentResponse { /** - *

                          Specifies a metric to minimize or maximize as the objective of a job.

                          + *

                          The Amazon Resource Name (ARN) of the experiment that is being deleted.

                          */ - AutoMLJobObjective?: AutoMLJobObjective; + ExperimentArn?: string; +} - /** - *

                          The problem type.

                          - */ - ProblemType?: ProblemType | string; +export namespace DeleteExperimentResponse { + export const filterSensitiveLog = (obj: DeleteExperimentResponse): any => ({ + ...obj, + }); +} +export interface DeleteFeatureGroupRequest { /** - *

                          How long a job is allowed to run, or how many candidates a job is allowed to - * generate.

                          + *

                          The name of the FeatureGroup you want to delete. The name must be unique + * within an AWS Region in an AWS account.

                          */ - CompletionCriteria?: AutoMLJobCompletionCriteria; + FeatureGroupName: string | undefined; } -export namespace ResolvedAttributes { - export const filterSensitiveLog = (obj: ResolvedAttributes): any => ({ +export namespace DeleteFeatureGroupRequest { + export const filterSensitiveLog = (obj: DeleteFeatureGroupRequest): any => ({ ...obj, }); } -export interface DescribeAutoMLJobResponse { +export interface DeleteFlowDefinitionRequest { /** - *

                          Returns the name of a job.

                          + *

                          The name of the flow definition you are deleting.

                          */ - AutoMLJobName: string | undefined; + FlowDefinitionName: string | undefined; +} - /** - *

                          Returns the job's ARN.

                          - */ - AutoMLJobArn: string | undefined; +export namespace DeleteFlowDefinitionRequest { + export const filterSensitiveLog = (obj: DeleteFlowDefinitionRequest): any => ({ + ...obj, + }); +} - /** - *

                          Returns the job's input data config.

                          - */ - InputDataConfig: AutoMLChannel[] | undefined; +export interface DeleteFlowDefinitionResponse {} - /** - *

                          Returns the job's output data config.

                          - */ - OutputDataConfig: AutoMLOutputDataConfig | undefined; +export namespace DeleteFlowDefinitionResponse { + export const filterSensitiveLog = (obj: DeleteFlowDefinitionResponse): any => ({ + ...obj, + }); +} +export interface DeleteHumanTaskUiRequest { /** - *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that has read permission to - * the input data location and write permission to the output data location in Amazon S3.

                          + *

                          The name of the human task user interface (work task template) you want to delete.

                          */ - RoleArn: string | undefined; + HumanTaskUiName: string | undefined; +} - /** - *

                          Returns the job's objective.

                          - */ - AutoMLJobObjective?: AutoMLJobObjective; +export namespace DeleteHumanTaskUiRequest { + export const filterSensitiveLog = (obj: DeleteHumanTaskUiRequest): any => ({ + ...obj, + }); +} - /** - *

                          Returns the job's problem type.

                          - */ - ProblemType?: ProblemType | string; +export interface DeleteHumanTaskUiResponse {} - /** - *

                          Returns the job's config.

                          - */ - AutoMLJobConfig?: AutoMLJobConfig; +export namespace DeleteHumanTaskUiResponse { + export const filterSensitiveLog = (obj: DeleteHumanTaskUiResponse): any => ({ + ...obj, + }); +} +export interface DeleteImageRequest { /** - *

                          Returns the job's creation time.

                          + *

                          The name of the image to delete.

                          */ - CreationTime: Date | undefined; + ImageName: string | undefined; +} - /** - *

                          Returns the job's end time.

                          - */ - EndTime?: Date; +export namespace DeleteImageRequest { + export const filterSensitiveLog = (obj: DeleteImageRequest): any => ({ + ...obj, + }); +} - /** - *

                          Returns the job's last modified time.

                          - */ - LastModifiedTime: Date | undefined; +export interface DeleteImageResponse {} - /** - *

                          Returns the job's FailureReason.

                          - */ - FailureReason?: string; +export namespace DeleteImageResponse { + export const filterSensitiveLog = (obj: DeleteImageResponse): any => ({ + ...obj, + }); +} +export interface DeleteImageVersionRequest { /** - *

                          Returns the job's BestCandidate.

                          + *

                          The name of the image.

                          */ - BestCandidate?: AutoMLCandidate; + ImageName: string | undefined; /** - *

                          Returns the job's AutoMLJobStatus.

                          + *

                          The version to delete.

                          */ - AutoMLJobStatus: AutoMLJobStatus | string | undefined; + Version: number | undefined; +} - /** - *

                          Returns the job's AutoMLJobSecondaryStatus.

                          - */ - AutoMLJobSecondaryStatus: AutoMLJobSecondaryStatus | string | undefined; +export namespace DeleteImageVersionRequest { + export const filterSensitiveLog = (obj: DeleteImageVersionRequest): any => ({ + ...obj, + }); +} - /** - *

                          Returns the job's output from GenerateCandidateDefinitionsOnly.

                          - */ - GenerateCandidateDefinitionsOnly?: boolean; +export interface DeleteImageVersionResponse {} - /** - *

                          Returns information on the job's artifacts found in AutoMLJobArtifacts.

                          - */ - AutoMLJobArtifacts?: AutoMLJobArtifacts; +export namespace DeleteImageVersionResponse { + export const filterSensitiveLog = (obj: DeleteImageVersionResponse): any => ({ + ...obj, + }); +} +export interface DeleteModelInput { /** - *

                          This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They're - * auto-inferred values, if not provided by you. If you do provide them, then they'll be the - * same as provided.

                          + *

                          The name of the model to delete.

                          */ - ResolvedAttributes?: ResolvedAttributes; + ModelName: string | undefined; } -export namespace DescribeAutoMLJobResponse { - export const filterSensitiveLog = (obj: DescribeAutoMLJobResponse): any => ({ +export namespace DeleteModelInput { + export const filterSensitiveLog = (obj: DeleteModelInput): any => ({ ...obj, }); } -export interface DescribeCodeRepositoryInput { +export interface DeleteModelBiasJobDefinitionRequest { /** - *

                          The name of the Git repository to describe.

                          + *

                          The name of the model bias job definition to delete.

                          */ - CodeRepositoryName: string | undefined; + JobDefinitionName: string | undefined; } -export namespace DescribeCodeRepositoryInput { - export const filterSensitiveLog = (obj: DescribeCodeRepositoryInput): any => ({ +export namespace DeleteModelBiasJobDefinitionRequest { + export const filterSensitiveLog = (obj: DeleteModelBiasJobDefinitionRequest): any => ({ ...obj, }); } -export interface DescribeCodeRepositoryOutput { +export interface DeleteModelExplainabilityJobDefinitionRequest { /** - *

                          The name of the Git repository.

                          + *

                          The name of the model explainability job definition to delete.

                          */ - CodeRepositoryName: string | undefined; + JobDefinitionName: string | undefined; +} - /** - *

                          The Amazon Resource Name (ARN) of the Git repository.

                          - */ - CodeRepositoryArn: string | undefined; +export namespace DeleteModelExplainabilityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DeleteModelExplainabilityJobDefinitionRequest): any => ({ + ...obj, + }); +} +export interface DeleteModelPackageInput { /** - *

                          The date and time that the repository was created.

                          + *

                          The name of the model package. The name must have 1 to 63 characters. Valid characters + * are a-z, A-Z, 0-9, and - (hyphen).

                          */ - CreationTime: Date | undefined; + ModelPackageName: string | undefined; +} - /** - *

                          The date and time that the repository was last changed.

                          - */ - LastModifiedTime: Date | undefined; +export namespace DeleteModelPackageInput { + export const filterSensitiveLog = (obj: DeleteModelPackageInput): any => ({ + ...obj, + }); +} +export interface DeleteModelPackageGroupInput { /** - *

                          Configuration details about the repository, including the URL where the repository is - * located, the default branch, and the Amazon Resource Name (ARN) of the AWS Secrets - * Manager secret that contains the credentials used to access the repository.

                          + *

                          The name of the model group to delete.

                          */ - GitConfig?: GitConfig; + ModelPackageGroupName: string | undefined; } -export namespace DescribeCodeRepositoryOutput { - export const filterSensitiveLog = (obj: DescribeCodeRepositoryOutput): any => ({ +export namespace DeleteModelPackageGroupInput { + export const filterSensitiveLog = (obj: DeleteModelPackageGroupInput): any => ({ ...obj, }); } -export interface DescribeCompilationJobRequest { +export interface DeleteModelPackageGroupPolicyInput { /** - *

                          The name of the model compilation job that you want information about.

                          + *

                          The name of the model group for which to delete the policy.

                          */ - CompilationJobName: string | undefined; + ModelPackageGroupName: string | undefined; } -export namespace DescribeCompilationJobRequest { - export const filterSensitiveLog = (obj: DescribeCompilationJobRequest): any => ({ +export namespace DeleteModelPackageGroupPolicyInput { + export const filterSensitiveLog = (obj: DeleteModelPackageGroupPolicyInput): any => ({ ...obj, }); } -/** - *

                          Provides information about the location that is configured for storing model - * artifacts.

                          - *

                          Model artifacts are the output that results from training a model, and typically - * consist of trained parameters, a model defintion that desribes how to compute - * inferences, and other metadata.

                          - */ -export interface ModelArtifacts { +export interface DeleteModelQualityJobDefinitionRequest { /** - *

                          The path of the S3 object that contains the model artifacts. For example, - * s3://bucket-name/keynameprefix/model.tar.gz.

                          + *

                          The name of the model quality monitoring job definition to delete.

                          */ - S3ModelArtifacts: string | undefined; + JobDefinitionName: string | undefined; } -export namespace ModelArtifacts { - export const filterSensitiveLog = (obj: ModelArtifacts): any => ({ +export namespace DeleteModelQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DeleteModelQualityJobDefinitionRequest): any => ({ ...obj, }); } -/** - *

                          Provides information to verify the integrity of stored model artifacts.

                          - */ -export interface ModelDigests { +export interface DeleteMonitoringScheduleRequest { /** - *

                          Provides a hash value that uniquely identifies the stored model artifacts.

                          + *

                          The name of the monitoring schedule to delete.

                          */ - ArtifactDigest?: string; + MonitoringScheduleName: string | undefined; } -export namespace ModelDigests { - export const filterSensitiveLog = (obj: ModelDigests): any => ({ +export namespace DeleteMonitoringScheduleRequest { + export const filterSensitiveLog = (obj: DeleteMonitoringScheduleRequest): any => ({ ...obj, }); } -export interface DescribeCompilationJobResponse { +export interface DeleteNotebookInstanceInput { /** - *

                          The name of the model compilation job.

                          + *

                          The name of the Amazon SageMaker notebook instance to delete.

                          */ - CompilationJobName: string | undefined; + NotebookInstanceName: string | undefined; +} - /** - *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model - * compilation job.

                          - */ - CompilationJobArn: string | undefined; +export namespace DeleteNotebookInstanceInput { + export const filterSensitiveLog = (obj: DeleteNotebookInstanceInput): any => ({ + ...obj, + }); +} +export interface DeleteNotebookInstanceLifecycleConfigInput { /** - *

                          The status of the model compilation job.

                          + *

                          The name of the lifecycle configuration to delete.

                          */ - CompilationJobStatus: CompilationJobStatus | string | undefined; + NotebookInstanceLifecycleConfigName: string | undefined; +} - /** - *

                          The time when the model compilation job started the CompilationJob - * instances.

                          - *

                          You are billed for the time between this timestamp and the timestamp in the DescribeCompilationJobResponse$CompilationEndTime field. In Amazon CloudWatch Logs, - * the start time might be later than this time. That's because it takes time to download - * the compilation job, which depends on the size of the compilation job container.

                          - */ - CompilationStartTime?: Date; +export namespace DeleteNotebookInstanceLifecycleConfigInput { + export const filterSensitiveLog = (obj: DeleteNotebookInstanceLifecycleConfigInput): any => ({ + ...obj, + }); +} +export interface DeletePipelineRequest { /** - *

                          The time when the model compilation job on a compilation job instance ended. For a - * successful or stopped job, this is when the job's model artifacts have finished - * uploading. For a failed job, this is when Amazon SageMaker detected that the job failed.

                          + *

                          The name of the pipeline to delete.

                          */ - CompilationEndTime?: Date; + PipelineName: string | undefined; /** - *

                          Specifies a limit to how long a model compilation job can run. When the job reaches - * the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training - * costs.

                          + *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the + * operation. An idempotent operation completes no more than one time.

                          */ - StoppingCondition: StoppingCondition | undefined; + ClientRequestToken?: string; +} - /** - *

                          The time that the model compilation job was created.

                          - */ - CreationTime: Date | undefined; +export namespace DeletePipelineRequest { + export const filterSensitiveLog = (obj: DeletePipelineRequest): any => ({ + ...obj, + }); +} +export interface DeletePipelineResponse { /** - *

                          The time that the status - * of - * the model compilation job was last modified.

                          + *

                          The Amazon Resource Name (ARN) of the pipeline to delete.

                          */ - LastModifiedTime: Date | undefined; + PipelineArn?: string; +} + +export namespace DeletePipelineResponse { + export const filterSensitiveLog = (obj: DeletePipelineResponse): any => ({ + ...obj, + }); +} +export interface DeleteProjectInput { /** - *

                          If a model compilation job failed, the reason it failed.

                          + *

                          The name of the project to delete.

                          */ - FailureReason: string | undefined; + ProjectName: string | undefined; +} + +export namespace DeleteProjectInput { + export const filterSensitiveLog = (obj: DeleteProjectInput): any => ({ + ...obj, + }); +} +export interface DeleteTagsInput { /** - *

                          Information about the location in Amazon S3 that has been configured for storing the model - * artifacts used in the compilation job.

                          + *

                          The Amazon Resource Name (ARN) of the resource whose tags you want to + * delete.

                          */ - ModelArtifacts: ModelArtifacts | undefined; + ResourceArn: string | undefined; /** - *

                          Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.

                          + *

                          An array or one or more tag keys to delete.

                          */ - ModelDigests?: ModelDigests; + TagKeys: string[] | undefined; +} + +export namespace DeleteTagsInput { + export const filterSensitiveLog = (obj: DeleteTagsInput): any => ({ + ...obj, + }); +} + +export interface DeleteTagsOutput {} + +export namespace DeleteTagsOutput { + export const filterSensitiveLog = (obj: DeleteTagsOutput): any => ({ + ...obj, + }); +} +export interface DeleteTrialRequest { /** - *

                          The Amazon Resource Name (ARN) of the model compilation job.

                          + *

                          The name of the trial to delete.

                          */ - RoleArn: string | undefined; + TrialName: string | undefined; +} +export namespace DeleteTrialRequest { + export const filterSensitiveLog = (obj: DeleteTrialRequest): any => ({ + ...obj, + }); +} + +export interface DeleteTrialResponse { /** - *

                          Information about the location in Amazon S3 of the input model artifacts, the name and - * shape of the expected data inputs, and the framework in which the model was - * trained.

                          + *

                          The Amazon Resource Name (ARN) of the trial that is being deleted.

                          */ - InputConfig: InputConfig | undefined; + TrialArn?: string; +} + +export namespace DeleteTrialResponse { + export const filterSensitiveLog = (obj: DeleteTrialResponse): any => ({ + ...obj, + }); +} +export interface DeleteTrialComponentRequest { /** - *

                          Information about the output location for the compiled model and the target device - * that the model runs on.

                          + *

                          The name of the component to delete.

                          */ - OutputConfig: OutputConfig | undefined; + TrialComponentName: string | undefined; } -export namespace DescribeCompilationJobResponse { - export const filterSensitiveLog = (obj: DescribeCompilationJobResponse): any => ({ +export namespace DeleteTrialComponentRequest { + export const filterSensitiveLog = (obj: DeleteTrialComponentRequest): any => ({ ...obj, }); } -export interface DescribeContextRequest { +export interface DeleteTrialComponentResponse { /** - *

                          The name of the context to describe.

                          + *

                          The Amazon Resource Name (ARN) of the component is being deleted.

                          */ - ContextName: string | undefined; + TrialComponentArn?: string; } -export namespace DescribeContextRequest { - export const filterSensitiveLog = (obj: DescribeContextRequest): any => ({ +export namespace DeleteTrialComponentResponse { + export const filterSensitiveLog = (obj: DeleteTrialComponentResponse): any => ({ ...obj, }); } -export interface DescribeContextResponse { +export interface DeleteUserProfileRequest { /** - *

                          The name of the context.

                          + *

                          The domain ID.

                          */ - ContextName?: string; + DomainId: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the context.

                          + *

                          The user profile name.

                          */ - ContextArn?: string; + UserProfileName: string | undefined; +} + +export namespace DeleteUserProfileRequest { + export const filterSensitiveLog = (obj: DeleteUserProfileRequest): any => ({ + ...obj, + }); +} +export interface DeleteWorkforceRequest { /** - *

                          The source of the context.

                          + *

                          The name of the workforce.

                          */ - Source?: ContextSource; + WorkforceName: string | undefined; +} + +export namespace DeleteWorkforceRequest { + export const filterSensitiveLog = (obj: DeleteWorkforceRequest): any => ({ + ...obj, + }); +} + +export interface DeleteWorkforceResponse {} + +export namespace DeleteWorkforceResponse { + export const filterSensitiveLog = (obj: DeleteWorkforceResponse): any => ({ + ...obj, + }); +} +export interface DeleteWorkteamRequest { /** - *

                          The type of the context.

                          + *

                          The name of the work team to delete.

                          */ - ContextType?: string; + WorkteamName: string | undefined; +} + +export namespace DeleteWorkteamRequest { + export const filterSensitiveLog = (obj: DeleteWorkteamRequest): any => ({ + ...obj, + }); +} +export interface DeleteWorkteamResponse { /** - *

                          The description of the context.

                          + *

                          Returns true if the work team was successfully deleted; otherwise, + * returns false.

                          */ - Description?: string; + Success: boolean | undefined; +} +export namespace DeleteWorkteamResponse { + export const filterSensitiveLog = (obj: DeleteWorkteamResponse): any => ({ + ...obj, + }); +} + +/** + *

                          Gets the Amazon EC2 Container Registry path of the docker image of the model that is hosted in this ProductionVariant.

                          + *

                          If you used the registry/repository[:tag] form to specify the image path + * of the primary container when you created the model hosted in this + * ProductionVariant, the path resolves to a path of the form + * registry/repository[@digest]. A digest is a hash value that identifies + * a specific version of an image. For information about Amazon ECR paths, see Pulling an Image in the Amazon ECR User Guide.

                          + */ +export interface DeployedImage { /** - *

                          A list of the context's properties.

                          + *

                          The image path you specified when you created the model.

                          */ - Properties?: { [key: string]: string }; + SpecifiedImage?: string; /** - *

                          When the context was created.

                          + *

                          The specific digest path of the image hosted in this + * ProductionVariant.

                          */ - CreationTime?: Date; + ResolvedImage?: string; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The date and time when the image path for the model resolved to the + * ResolvedImage + *

                          */ - CreatedBy?: UserContext; + ResolutionTime?: Date; +} +export namespace DeployedImage { + export const filterSensitiveLog = (obj: DeployedImage): any => ({ + ...obj, + }); +} + +/** + *

                          Currently, the DeploymentConfig API is not supported.

                          + */ +export interface DeploymentConfig { /** - *

                          When the context was last modified.

                          + *

                          */ - LastModifiedTime?: Date; + BlueGreenUpdatePolicy: BlueGreenUpdatePolicy | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          */ - LastModifiedBy?: UserContext; + AutoRollbackConfiguration?: AutoRollbackConfig; } -export namespace DescribeContextResponse { - export const filterSensitiveLog = (obj: DescribeContextResponse): any => ({ +export namespace DeploymentConfig { + export const filterSensitiveLog = (obj: DeploymentConfig): any => ({ ...obj, }); } -export interface DescribeDomainRequest { +export interface DeregisterDevicesRequest { /** - *

                          The domain ID.

                          + *

                          The name of the fleet the devices belong to.

                          */ - DomainId: string | undefined; + DeviceFleetName: string | undefined; + + /** + *

                          The unique IDs of the devices.

                          + */ + DeviceNames: string[] | undefined; } -export namespace DescribeDomainRequest { - export const filterSensitiveLog = (obj: DescribeDomainRequest): any => ({ +export namespace DeregisterDevicesRequest { + export const filterSensitiveLog = (obj: DeregisterDevicesRequest): any => ({ ...obj, }); } -export enum DomainStatus { - Delete_Failed = "Delete_Failed", - Deleting = "Deleting", - Failed = "Failed", - InService = "InService", - Pending = "Pending", - Update_Failed = "Update_Failed", - Updating = "Updating", +export interface DescribeActionRequest { + /** + *

                          The name of the action to describe.

                          + */ + ActionName: string | undefined; } -export interface DescribeDomainResponse { +export namespace DescribeActionRequest { + export const filterSensitiveLog = (obj: DescribeActionRequest): any => ({ + ...obj, + }); +} + +export interface DescribeActionResponse { /** - *

                          The domain's Amazon Resource Name (ARN).

                          + *

                          The name of the action.

                          */ - DomainArn?: string; + ActionName?: string; /** - *

                          The domain ID.

                          + *

                          The Amazon Resource Name (ARN) of the action.

                          */ - DomainId?: string; + ActionArn?: string; /** - *

                          The domain name.

                          + *

                          The source of the action.

                          */ - DomainName?: string; + Source?: ActionSource; /** - *

                          The ID of the Amazon Elastic File System (EFS) managed by this Domain.

                          + *

                          The type of the action.

                          */ - HomeEfsFileSystemId?: string; + ActionType?: string; /** - *

                          The SSO managed application instance ID.

                          + *

                          The description of the action.

                          */ - SingleSignOnManagedApplicationInstanceId?: string; + Description?: string; /** - *

                          The status.

                          + *

                          The status of the action.

                          */ - Status?: DomainStatus | string; + Status?: ActionStatus | string; /** - *

                          The creation time.

                          + *

                          A list of the action's properties.

                          */ - CreationTime?: Date; + Properties?: { [key: string]: string }; /** - *

                          The last modified time.

                          + *

                          When the action was created.

                          */ - LastModifiedTime?: Date; + CreationTime?: Date; /** - *

                          The failure reason.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - FailureReason?: string; + CreatedBy?: UserContext; /** - *

                          The domain's authentication mode.

                          + *

                          When the action was last modified.

                          */ - AuthMode?: AuthMode | string; + LastModifiedTime?: Date; /** - *

                          Settings which are applied to all UserProfiles in this domain, if settings are not explicitly specified - * in a given UserProfile. - *

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - DefaultUserSettings?: UserSettings; + LastModifiedBy?: UserContext; /** - *

                          Specifies the VPC used for non-EFS traffic. The default value is - * PublicInternetOnly.

                          - *
                            - *
                          • - *

                            - * PublicInternetOnly - Non-EFS traffic is through a VPC managed by - * Amazon SageMaker, which allows direct internet access

                            - *
                          • - *
                          • - *

                            - * VpcOnly - All Studio traffic is through the specified VPC and subnets

                            - *
                          • - *
                          + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          */ - AppNetworkAccessType?: AppNetworkAccessType | string; + MetadataProperties?: MetadataProperties; +} + +export namespace DescribeActionResponse { + export const filterSensitiveLog = (obj: DescribeActionResponse): any => ({ + ...obj, + }); +} +export interface DescribeAlgorithmInput { /** - *

                          This member is deprecated and replaced with KmsKeyId.

                          + *

                          The name of the algorithm to describe.

                          */ - HomeEfsFileSystemKmsKeyId?: string; + AlgorithmName: string | undefined; +} + +export namespace DescribeAlgorithmInput { + export const filterSensitiveLog = (obj: DescribeAlgorithmInput): any => ({ + ...obj, + }); +} +export interface DescribeAlgorithmOutput { /** - *

                          The VPC subnets that Studio uses for communication.

                          + *

                          The name of the algorithm being described.

                          */ - SubnetIds?: string[]; + AlgorithmName: string | undefined; /** - *

                          The domain's URL.

                          + *

                          The Amazon Resource Name (ARN) of the algorithm.

                          */ - Url?: string; + AlgorithmArn: string | undefined; /** - *

                          The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                          + *

                          A brief summary about the algorithm.

                          */ - VpcId?: string; + AlgorithmDescription?: string; /** - *

                          The AWS KMS customer managed CMK used to encrypt - * the EFS volume attached to the domain.

                          + *

                          A timestamp specifying when the algorithm was created.

                          */ - KmsKeyId?: string; -} - -export namespace DescribeDomainResponse { - export const filterSensitiveLog = (obj: DescribeDomainResponse): any => ({ - ...obj, - }); -} + CreationTime: Date | undefined; -export interface DescribeEndpointInput { /** - *

                          The name of the endpoint.

                          + *

                          Details about training jobs run by this algorithm.

                          */ - EndpointName: string | undefined; -} - -export namespace DescribeEndpointInput { - export const filterSensitiveLog = (obj: DescribeEndpointInput): any => ({ - ...obj, - }); -} - -export enum EndpointStatus { - CREATING = "Creating", - DELETING = "Deleting", - FAILED = "Failed", - IN_SERVICE = "InService", - OUT_OF_SERVICE = "OutOfService", - ROLLING_BACK = "RollingBack", - SYSTEM_UPDATING = "SystemUpdating", - UPDATING = "Updating", -} + TrainingSpecification: TrainingSpecification | undefined; -/** - *

                          Describes weight and capacities for a production variant associated with an - * endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities - * API and the endpoint status is Updating, you get different desired and - * current values.

                          - */ -export interface ProductionVariantSummary { /** - *

                          The name of the variant.

                          + *

                          Details about inference jobs that the algorithm runs.

                          */ - VariantName: string | undefined; + InferenceSpecification?: InferenceSpecification; /** - *

                          An array of DeployedImage objects that specify the Amazon EC2 Container Registry paths of the - * inference images deployed on instances of this ProductionVariant.

                          + *

                          Details about configurations for one or more training jobs that Amazon SageMaker runs to test the + * algorithm.

                          */ - DeployedImages?: DeployedImage[]; + ValidationSpecification?: AlgorithmValidationSpecification; /** - *

                          The weight associated with the variant.

                          + *

                          The current status of the algorithm.

                          */ - CurrentWeight?: number; + AlgorithmStatus: AlgorithmStatus | string | undefined; /** - *

                          The requested weight, as specified in the - * UpdateEndpointWeightsAndCapacities request.

                          + *

                          Details about the current status of the algorithm.

                          */ - DesiredWeight?: number; + AlgorithmStatusDetails: AlgorithmStatusDetails | undefined; /** - *

                          The number of instances associated with the variant.

                          + *

                          The product identifier of the algorithm.

                          */ - CurrentInstanceCount?: number; + ProductId?: string; /** - *

                          The number of instances requested in the - * UpdateEndpointWeightsAndCapacities request.

                          + *

                          Whether the algorithm is certified to be listed in AWS Marketplace.

                          */ - DesiredInstanceCount?: number; + CertifyForMarketplace?: boolean; } -export namespace ProductionVariantSummary { - export const filterSensitiveLog = (obj: ProductionVariantSummary): any => ({ +export namespace DescribeAlgorithmOutput { + export const filterSensitiveLog = (obj: DescribeAlgorithmOutput): any => ({ ...obj, }); } -export interface DescribeEndpointOutput { +export interface DescribeAppRequest { /** - *

                          Name of the endpoint.

                          + *

                          The domain ID.

                          */ - EndpointName: string | undefined; + DomainId: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the endpoint.

                          + *

                          The user profile name.

                          */ - EndpointArn: string | undefined; + UserProfileName: string | undefined; /** - *

                          The name of the endpoint configuration associated with this endpoint.

                          + *

                          The type of app.

                          */ - EndpointConfigName: string | undefined; + AppType: AppType | string | undefined; /** - *

                          An array of ProductionVariantSummary objects, one for each model - * hosted behind this endpoint.

                          + *

                          The name of the app.

                          */ - ProductionVariants?: ProductionVariantSummary[]; + AppName: string | undefined; +} + +export namespace DescribeAppRequest { + export const filterSensitiveLog = (obj: DescribeAppRequest): any => ({ + ...obj, + }); +} +export interface DescribeAppResponse { /** - *

                          + *

                          The Amazon Resource Name (ARN) of the app.

                          */ - DataCaptureConfig?: DataCaptureConfigSummary; + AppArn?: string; /** - *

                          The status of the endpoint.

                          - *
                            - *
                          • - *

                            - * OutOfService: Endpoint is not available to take incoming - * requests.

                            - *
                          • - *
                          • - *

                            - * Creating: CreateEndpoint is executing.

                            - *
                          • - *
                          • - *

                            - * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing.

                            - *
                          • - *
                          • - *

                            - * SystemUpdating: Endpoint is undergoing maintenance and cannot be - * updated or deleted or re-scaled until it has completed. This maintenance - * operation does not change any customer-specified values such as VPC config, KMS - * encryption, model, instance type, or instance count.

                            - *
                          • - *
                          • - *

                            - * RollingBack: Endpoint fails to scale up or down or change its - * variant weight and is in the process of rolling back to its previous - * configuration. Once the rollback completes, endpoint returns to an - * InService status. This transitional status only applies to an - * endpoint that has autoscaling enabled and is undergoing variant weight or - * capacity changes as part of an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities operation is called - * explicitly.

                            - *
                          • - *
                          • - *

                            - * InService: Endpoint is available to process incoming - * requests.

                            - *
                          • - *
                          • - *

                            - * Deleting: DeleteEndpoint is executing.

                            - *
                          • - *
                          • - *

                            - * Failed: Endpoint could not be created, updated, or re-scaled. Use - * DescribeEndpointOutput$FailureReason for information about - * the failure. DeleteEndpoint is the only operation that can be - * performed on a failed endpoint.

                            - *
                          • - *
                          + *

                          The type of app.

                          */ - EndpointStatus: EndpointStatus | string | undefined; + AppType?: AppType | string; /** - *

                          If the status of the endpoint is Failed, the reason why it failed. - *

                          + *

                          The name of the app.

                          */ - FailureReason?: string; + AppName?: string; /** - *

                          A timestamp that shows when the endpoint was created.

                          + *

                          The domain ID.

                          */ - CreationTime: Date | undefined; + DomainId?: string; /** - *

                          A timestamp that shows when the endpoint was last modified.

                          + *

                          The user profile name.

                          */ - LastModifiedTime: Date | undefined; + UserProfileName?: string; /** - *

                          The most recent deployment configuration for the endpoint.

                          + *

                          The status.

                          */ - LastDeploymentConfig?: DeploymentConfig; -} + Status?: AppStatus | string; -export namespace DescribeEndpointOutput { - export const filterSensitiveLog = (obj: DescribeEndpointOutput): any => ({ - ...obj, - }); -} + /** + *

                          The timestamp of the last health check.

                          + */ + LastHealthCheckTimestamp?: Date; -export interface DescribeEndpointConfigInput { /** - *

                          The name of the endpoint configuration.

                          + *

                          The timestamp of the last user's activity.

                          */ - EndpointConfigName: string | undefined; + LastUserActivityTimestamp?: Date; + + /** + *

                          The creation time.

                          + */ + CreationTime?: Date; + + /** + *

                          The failure reason.

                          + */ + FailureReason?: string; + + /** + *

                          The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

                          + */ + ResourceSpec?: ResourceSpec; } -export namespace DescribeEndpointConfigInput { - export const filterSensitiveLog = (obj: DescribeEndpointConfigInput): any => ({ +export namespace DescribeAppResponse { + export const filterSensitiveLog = (obj: DescribeAppResponse): any => ({ ...obj, }); } -export interface DescribeEndpointConfigOutput { +export interface DescribeAppImageConfigRequest { /** - *

                          Name of the Amazon SageMaker endpoint configuration.

                          + *

                          The name of the AppImageConfig to describe.

                          */ - EndpointConfigName: string | undefined; + AppImageConfigName: string | undefined; +} - /** - *

                          The Amazon Resource Name (ARN) of the endpoint configuration.

                          - */ - EndpointConfigArn: string | undefined; +export namespace DescribeAppImageConfigRequest { + export const filterSensitiveLog = (obj: DescribeAppImageConfigRequest): any => ({ + ...obj, + }); +} +export interface DescribeAppImageConfigResponse { /** - *

                          An array of ProductionVariant objects, one for each model that you - * want to host at this endpoint.

                          + *

                          The Amazon Resource Name (ARN) of the AppImageConfig.

                          */ - ProductionVariants: ProductionVariant[] | undefined; + AppImageConfigArn?: string; /** - *

                          + *

                          The name of the AppImageConfig.

                          */ - DataCaptureConfig?: DataCaptureConfig; + AppImageConfigName?: string; /** - *

                          AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage - * volume attached to the instance.

                          + *

                          When the AppImageConfig was created.

                          */ - KmsKeyId?: string; + CreationTime?: Date; /** - *

                          A timestamp that shows when the endpoint configuration was created.

                          + *

                          When the AppImageConfig was last modified.

                          */ - CreationTime: Date | undefined; -} - -export namespace DescribeEndpointConfigOutput { - export const filterSensitiveLog = (obj: DescribeEndpointConfigOutput): any => ({ - ...obj, - }); -} + LastModifiedTime?: Date; -export interface DescribeExperimentRequest { /** - *

                          The name of the experiment to describe.

                          + *

                          The configuration of a KernelGateway app.

                          */ - ExperimentName: string | undefined; + KernelGatewayImageConfig?: KernelGatewayImageConfig; } -export namespace DescribeExperimentRequest { - export const filterSensitiveLog = (obj: DescribeExperimentRequest): any => ({ +export namespace DescribeAppImageConfigResponse { + export const filterSensitiveLog = (obj: DescribeAppImageConfigResponse): any => ({ ...obj, }); } -/** - *

                          The source of the experiment.

                          - */ -export interface ExperimentSource { - /** - *

                          The Amazon Resource Name (ARN) of the source.

                          - */ - SourceArn: string | undefined; - +export interface DescribeArtifactRequest { /** - *

                          The source type.

                          + *

                          The Amazon Resource Name (ARN) of the artifact to describe.

                          */ - SourceType?: string; + ArtifactArn: string | undefined; } -export namespace ExperimentSource { - export const filterSensitiveLog = (obj: ExperimentSource): any => ({ +export namespace DescribeArtifactRequest { + export const filterSensitiveLog = (obj: DescribeArtifactRequest): any => ({ ...obj, }); } -export interface DescribeExperimentResponse { +export interface DescribeArtifactResponse { /** - *

                          The name of the experiment.

                          + *

                          The name of the artifact.

                          */ - ExperimentName?: string; + ArtifactName?: string; /** - *

                          The Amazon Resource Name (ARN) of the experiment.

                          + *

                          The Amazon Resource Name (ARN) of the artifact.

                          */ - ExperimentArn?: string; + ArtifactArn?: string; /** - *

                          The name of the experiment as displayed. If DisplayName isn't specified, - * ExperimentName is displayed.

                          + *

                          The source of the artifact.

                          */ - DisplayName?: string; + Source?: ArtifactSource; /** - *

                          The ARN of the source and, optionally, the type.

                          + *

                          The type of the artifact.

                          */ - Source?: ExperimentSource; + ArtifactType?: string; /** - *

                          The description of the experiment.

                          + *

                          A list of the artifact's properties.

                          */ - Description?: string; + Properties?: { [key: string]: string }; /** - *

                          When the experiment was created.

                          + *

                          When the artifact was created.

                          */ CreationTime?: Date; /** - *

                          Who created the experiment.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ CreatedBy?: UserContext; /** - *

                          When the experiment was last modified.

                          + *

                          When the artifact was last modified.

                          */ LastModifiedTime?: Date; /** - *

                          Who last modified the experiment.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ LastModifiedBy?: UserContext; + + /** + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + */ + MetadataProperties?: MetadataProperties; } -export namespace DescribeExperimentResponse { - export const filterSensitiveLog = (obj: DescribeExperimentResponse): any => ({ +export namespace DescribeArtifactResponse { + export const filterSensitiveLog = (obj: DescribeArtifactResponse): any => ({ ...obj, }); } -export interface DescribeFeatureGroupRequest { - /** - *

                          The name of the FeatureGroup you want described.

                          - */ - FeatureGroupName: string | undefined; - +export interface DescribeAutoMLJobRequest { /** - *

                          A token to resume pagination of the list of Features - * (FeatureDefinitions). 2,500 Features are returned by - * default.

                          + *

                          Request information about a job using that job's unique name.

                          */ - NextToken?: string; + AutoMLJobName: string | undefined; } -export namespace DescribeFeatureGroupRequest { - export const filterSensitiveLog = (obj: DescribeFeatureGroupRequest): any => ({ +export namespace DescribeAutoMLJobRequest { + export const filterSensitiveLog = (obj: DescribeAutoMLJobRequest): any => ({ ...obj, }); } -export enum FeatureGroupStatus { - CREATED = "Created", - CREATE_FAILED = "CreateFailed", - CREATING = "Creating", - DELETE_FAILED = "DeleteFailed", - DELETING = "Deleting", -} - -export enum OfflineStoreStatusValue { - ACTIVE = "Active", - BLOCKED = "Blocked", - DISABLED = "Disabled", -} - /** - *

                          The status of OfflineStore.

                          + *

                          The resolved attributes.

                          */ -export interface OfflineStoreStatus { +export interface ResolvedAttributes { /** - *

                          An OfflineStore status.

                          + *

                          Specifies a metric to minimize or maximize as the objective of a job.

                          */ - Status: OfflineStoreStatusValue | string | undefined; + AutoMLJobObjective?: AutoMLJobObjective; /** - *

                          The justification for why the OfflineStoreStatus is Blocked (if applicable).

                          + *

                          The problem type.

                          */ - BlockedReason?: string; + ProblemType?: ProblemType | string; + + /** + *

                          How long a job is allowed to run, or how many candidates a job is allowed to + * generate.

                          + */ + CompletionCriteria?: AutoMLJobCompletionCriteria; } -export namespace OfflineStoreStatus { - export const filterSensitiveLog = (obj: OfflineStoreStatus): any => ({ +export namespace ResolvedAttributes { + export const filterSensitiveLog = (obj: ResolvedAttributes): any => ({ ...obj, }); } -export interface DescribeFeatureGroupResponse { +export interface DescribeAutoMLJobResponse { /** - *

                          The Amazon Resource Name (ARN) of the FeatureGroup.

                          + *

                          Returns the name of a job.

                          */ - FeatureGroupArn: string | undefined; + AutoMLJobName: string | undefined; /** - *

                          he name of the FeatureGroup.

                          + *

                          Returns the job's ARN.

                          */ - FeatureGroupName: string | undefined; + AutoMLJobArn: string | undefined; /** - *

                          The name of the Feature used for RecordIdentifier, whose value - * uniquely identifies a record stored in the feature store.

                          + *

                          Returns the job's input data config.

                          */ - RecordIdentifierFeatureName: string | undefined; + InputDataConfig: AutoMLChannel[] | undefined; /** - *

                          The name of the feature that stores the EventTime of a Record in a - * FeatureGroup.

                          - *

                          An EventTime is a point in time when a new event occurs that - * corresponds to the creation or update of a Record in a - * FeatureGroup. All Records in the FeatureGroup - * have a corresponding EventTime.

                          + *

                          Returns the job's output data config.

                          */ - EventTimeFeatureName: string | undefined; + OutputDataConfig: AutoMLOutputDataConfig | undefined; /** - *

                          A list of the Features in the FeatureGroup. - * Each feature is defined by a FeatureName and FeatureType.

                          + *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that has read permission to + * the input data location and write permission to the output data location in Amazon S3.

                          */ - FeatureDefinitions: FeatureDefinition[] | undefined; + RoleArn: string | undefined; /** - *

                          A timestamp indicating when SageMaker created the FeatureGroup.

                          + *

                          Returns the job's objective.

                          */ - CreationTime: Date | undefined; + AutoMLJobObjective?: AutoMLJobObjective; /** - *

                          The configuration for the OnlineStore.

                          + *

                          Returns the job's problem type.

                          */ - OnlineStoreConfig?: OnlineStoreConfig; + ProblemType?: ProblemType | string; /** - *

                          The configuration of the OfflineStore, inducing the S3 location of the - * OfflineStore, AWS Glue or AWS Hive data catalogue configurations, and the - * security configuration.

                          + *

                          Returns the job's config.

                          */ - OfflineStoreConfig?: OfflineStoreConfig; + AutoMLJobConfig?: AutoMLJobConfig; /** - *

                          The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the - * OfflineStore if an OfflineStoreConfig is provided.

                          + *

                          Returns the job's creation time.

                          */ - RoleArn?: string; + CreationTime: Date | undefined; /** - *

                          The status of the feature group.

                          + *

                          Returns the job's end time.

                          */ - FeatureGroupStatus?: FeatureGroupStatus | string; + EndTime?: Date; /** - *

                          The status of the OfflineStore. Notifies you if replicating data into the - * OfflineStore has failed. Returns either: Active or - * Blocked - *

                          + *

                          Returns the job's last modified time.

                          */ - OfflineStoreStatus?: OfflineStoreStatus; + LastModifiedTime: Date | undefined; /** - *

                          The reason that the FeatureGroup failed to be replicated in the - * OfflineStore. This is failure can occur because:

                          - *
                            - *
                          • - *

                            The FeatureGroup could not be created in the - * OfflineStore.

                            - *
                          • - *
                          • - *

                            The FeatureGroup could not be deleted from the - * OfflineStore.

                            - *
                          • - *
                          + *

                          Returns the job's FailureReason.

                          */ FailureReason?: string; /** - *

                          A free form description of the feature group.

                          + *

                          Returns the job's BestCandidate.

                          */ - Description?: string; + BestCandidate?: AutoMLCandidate; /** - *

                          A token to resume pagination of the list of Features - * (FeatureDefinitions).

                          + *

                          Returns the job's AutoMLJobStatus.

                          */ - NextToken: string | undefined; -} - -export namespace DescribeFeatureGroupResponse { - export const filterSensitiveLog = (obj: DescribeFeatureGroupResponse): any => ({ - ...obj, - }); -} + AutoMLJobStatus: AutoMLJobStatus | string | undefined; -export interface DescribeFlowDefinitionRequest { /** - *

                          The name of the flow definition.

                          + *

                          Returns the job's AutoMLJobSecondaryStatus.

                          */ - FlowDefinitionName: string | undefined; -} - -export namespace DescribeFlowDefinitionRequest { - export const filterSensitiveLog = (obj: DescribeFlowDefinitionRequest): any => ({ - ...obj, - }); -} - -export enum FlowDefinitionStatus { - ACTIVE = "Active", - DELETING = "Deleting", - FAILED = "Failed", - INITIALIZING = "Initializing", -} + AutoMLJobSecondaryStatus: AutoMLJobSecondaryStatus | string | undefined; -export interface DescribeFlowDefinitionResponse { /** - *

                          The Amazon Resource Name (ARN) of the flow defintion.

                          + *

                          Returns the job's output from GenerateCandidateDefinitionsOnly.

                          */ - FlowDefinitionArn: string | undefined; + GenerateCandidateDefinitionsOnly?: boolean; /** - *

                          The Amazon Resource Name (ARN) of the flow definition.

                          + *

                          Returns information on the job's artifacts found in AutoMLJobArtifacts.

                          */ - FlowDefinitionName: string | undefined; + AutoMLJobArtifacts?: AutoMLJobArtifacts; /** - *

                          The status of the flow definition. Valid values are listed below.

                          + *

                          This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They're + * auto-inferred values, if not provided by you. If you do provide them, then they'll be the + * same as provided.

                          */ - FlowDefinitionStatus: FlowDefinitionStatus | string | undefined; + ResolvedAttributes?: ResolvedAttributes; +} - /** - *

                          The timestamp when the flow definition was created.

                          - */ - CreationTime: Date | undefined; +export namespace DescribeAutoMLJobResponse { + export const filterSensitiveLog = (obj: DescribeAutoMLJobResponse): any => ({ + ...obj, + }); +} +export interface DescribeCodeRepositoryInput { /** - *

                          Container for configuring the source of human task requests. Used to specify if - * Amazon Rekognition or Amazon Textract is used as an integration source.

                          + *

                          The name of the Git repository to describe.

                          */ - HumanLoopRequestSource?: HumanLoopRequestSource; + CodeRepositoryName: string | undefined; +} + +export namespace DescribeCodeRepositoryInput { + export const filterSensitiveLog = (obj: DescribeCodeRepositoryInput): any => ({ + ...obj, + }); +} +export interface DescribeCodeRepositoryOutput { /** - *

                          An object containing information about what triggers a human review workflow.

                          + *

                          The name of the Git repository.

                          */ - HumanLoopActivationConfig?: HumanLoopActivationConfig; + CodeRepositoryName: string | undefined; /** - *

                          An object containing information about who works on the task, the workforce task price, and other task details.

                          + *

                          The Amazon Resource Name (ARN) of the Git repository.

                          */ - HumanLoopConfig: HumanLoopConfig | undefined; + CodeRepositoryArn: string | undefined; /** - *

                          An object containing information about the output file.

                          + *

                          The date and time that the repository was created.

                          */ - OutputConfig: FlowDefinitionOutputConfig | undefined; + CreationTime: Date | undefined; /** - *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) execution role for the flow definition.

                          + *

                          The date and time that the repository was last changed.

                          */ - RoleArn: string | undefined; + LastModifiedTime: Date | undefined; /** - *

                          The reason your flow definition failed.

                          + *

                          Configuration details about the repository, including the URL where the repository is + * located, the default branch, and the Amazon Resource Name (ARN) of the AWS Secrets + * Manager secret that contains the credentials used to access the repository.

                          */ - FailureReason?: string; + GitConfig?: GitConfig; } -export namespace DescribeFlowDefinitionResponse { - export const filterSensitiveLog = (obj: DescribeFlowDefinitionResponse): any => ({ +export namespace DescribeCodeRepositoryOutput { + export const filterSensitiveLog = (obj: DescribeCodeRepositoryOutput): any => ({ ...obj, }); } -export interface DescribeHumanTaskUiRequest { +export interface DescribeCompilationJobRequest { /** - *

                          The name of the human task user interface - * (worker task template) you want information about.

                          + *

                          The name of the model compilation job that you want information about.

                          */ - HumanTaskUiName: string | undefined; + CompilationJobName: string | undefined; } -export namespace DescribeHumanTaskUiRequest { - export const filterSensitiveLog = (obj: DescribeHumanTaskUiRequest): any => ({ +export namespace DescribeCompilationJobRequest { + export const filterSensitiveLog = (obj: DescribeCompilationJobRequest): any => ({ ...obj, }); } -export enum HumanTaskUiStatus { - ACTIVE = "Active", - DELETING = "Deleting", -} - /** - *

                          Container for user interface template information.

                          + *

                          Provides information about the location that is configured for storing model + * artifacts.

                          + *

                          Model artifacts are the output that results from training a model, and typically + * consist of trained parameters, a model defintion that desribes how to compute + * inferences, and other metadata.

                          */ -export interface UiTemplateInfo { +export interface ModelArtifacts { /** - *

                          The URL for the user interface template.

                          + *

                          The path of the S3 object that contains the model artifacts. For example, + * s3://bucket-name/keynameprefix/model.tar.gz.

                          */ - Url?: string; + S3ModelArtifacts: string | undefined; +} + +export namespace ModelArtifacts { + export const filterSensitiveLog = (obj: ModelArtifacts): any => ({ + ...obj, + }); +} +/** + *

                          Provides information to verify the integrity of stored model artifacts.

                          + */ +export interface ModelDigests { /** - *

                          The SHA-256 digest of the contents of the template.

                          + *

                          Provides a hash value that uniquely identifies the stored model artifacts.

                          */ - ContentSha256?: string; + ArtifactDigest?: string; } -export namespace UiTemplateInfo { - export const filterSensitiveLog = (obj: UiTemplateInfo): any => ({ +export namespace ModelDigests { + export const filterSensitiveLog = (obj: ModelDigests): any => ({ ...obj, }); } -export interface DescribeHumanTaskUiResponse { +export interface DescribeCompilationJobResponse { /** - *

                          The Amazon Resource Name (ARN) of the human task user interface (worker task template).

                          + *

                          The name of the model compilation job.

                          */ - HumanTaskUiArn: string | undefined; + CompilationJobName: string | undefined; /** - *

                          The name of the human task user interface (worker task template).

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model + * compilation job.

                          */ - HumanTaskUiName: string | undefined; + CompilationJobArn: string | undefined; /** - *

                          The status of the human task user interface (worker task template). Valid values are listed below.

                          + *

                          The status of the model compilation job.

                          */ - HumanTaskUiStatus?: HumanTaskUiStatus | string; + CompilationJobStatus: CompilationJobStatus | string | undefined; /** - *

                          The timestamp when the human task user interface was created.

                          + *

                          The time when the model compilation job started the CompilationJob + * instances.

                          + *

                          You are billed for the time between this timestamp and the timestamp in the DescribeCompilationJobResponse$CompilationEndTime field. In Amazon CloudWatch Logs, + * the start time might be later than this time. That's because it takes time to download + * the compilation job, which depends on the size of the compilation job container.

                          */ - CreationTime: Date | undefined; + CompilationStartTime?: Date; /** - *

                          Container for user interface template information.

                          + *

                          The time when the model compilation job on a compilation job instance ended. For a + * successful or stopped job, this is when the job's model artifacts have finished + * uploading. For a failed job, this is when Amazon SageMaker detected that the job failed.

                          */ - UiTemplate: UiTemplateInfo | undefined; -} + CompilationEndTime?: Date; -export namespace DescribeHumanTaskUiResponse { - export const filterSensitiveLog = (obj: DescribeHumanTaskUiResponse): any => ({ - ...obj, - }); -} + /** + *

                          Specifies a limit to how long a model compilation job can run. When the job reaches + * the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training + * costs.

                          + */ + StoppingCondition: StoppingCondition | undefined; -export interface DescribeHyperParameterTuningJobRequest { /** - *

                          The name of the tuning job.

                          + *

                          The time that the model compilation job was created.

                          */ - HyperParameterTuningJobName: string | undefined; -} + CreationTime: Date | undefined; -export namespace DescribeHyperParameterTuningJobRequest { - export const filterSensitiveLog = (obj: DescribeHyperParameterTuningJobRequest): any => ({ - ...obj, - }); -} + /** + *

                          The time that the status + * of + * the model compilation job was last modified.

                          + */ + LastModifiedTime: Date | undefined; -/** - *

                          Shows the final value for the - * objective - * metric for a training job that was launched by a hyperparameter - * tuning job. You define the objective metric in the - * HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig.

                          - */ -export interface FinalHyperParameterTuningJobObjectiveMetric { /** - *

                          Whether to - * minimize - * or maximize the objective metric. Valid values are Minimize and - * Maximize.

                          + *

                          If a model compilation job failed, the reason it failed.

                          */ - Type?: HyperParameterTuningJobObjectiveType | string; + FailureReason: string | undefined; /** - *

                          The name of the - * objective - * metric.

                          + *

                          Information about the location in Amazon S3 that has been configured for storing the model + * artifacts used in the compilation job.

                          */ - MetricName: string | undefined; + ModelArtifacts: ModelArtifacts | undefined; /** - *

                          The value of the objective metric.

                          + *

                          Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.

                          */ - Value: number | undefined; -} + ModelDigests?: ModelDigests; -export namespace FinalHyperParameterTuningJobObjectiveMetric { - export const filterSensitiveLog = (obj: FinalHyperParameterTuningJobObjectiveMetric): any => ({ - ...obj, - }); -} + /** + *

                          The Amazon Resource Name (ARN) of the model compilation job.

                          + */ + RoleArn: string | undefined; -export enum TrainingJobStatus { - COMPLETED = "Completed", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - STOPPED = "Stopped", - STOPPING = "Stopping", -} + /** + *

                          Information about the location in Amazon S3 of the input model artifacts, the name and + * shape of the expected data inputs, and the framework in which the model was + * trained.

                          + */ + InputConfig: InputConfig | undefined; -/** - *

                          Specifies - * summary information about a training job.

                          - */ -export interface HyperParameterTrainingJobSummary { /** - *

                          The training job definition name.

                          + *

                          Information about the output location for the compiled model and the target device + * that the model runs on.

                          */ - TrainingJobDefinitionName?: string; + OutputConfig: OutputConfig | undefined; +} + +export namespace DescribeCompilationJobResponse { + export const filterSensitiveLog = (obj: DescribeCompilationJobResponse): any => ({ + ...obj, + }); +} +export interface DescribeContextRequest { /** - *

                          The name of the training job.

                          + *

                          The name of the context to describe.

                          */ - TrainingJobName: string | undefined; + ContextName: string | undefined; +} + +export namespace DescribeContextRequest { + export const filterSensitiveLog = (obj: DescribeContextRequest): any => ({ + ...obj, + }); +} +export interface DescribeContextResponse { /** - *

                          The - * Amazon - * Resource Name (ARN) of the training job.

                          + *

                          The name of the context.

                          */ - TrainingJobArn: string | undefined; + ContextName?: string; /** - *

                          The HyperParameter tuning job that launched the training job.

                          + *

                          The Amazon Resource Name (ARN) of the context.

                          */ - TuningJobName?: string; + ContextArn?: string; /** - *

                          The date and time that the training job was created.

                          + *

                          The source of the context.

                          */ - CreationTime: Date | undefined; + Source?: ContextSource; /** - *

                          The date and time that the training job started.

                          + *

                          The type of the context.

                          */ - TrainingStartTime?: Date; + ContextType?: string; /** - *

                          Specifies the time when the training job ends on training instances. You are billed - * for the time interval between the value of TrainingStartTime and this time. - * For successful jobs and stopped jobs, this is the time after model artifacts are - * uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

                          + *

                          The description of the context.

                          */ - TrainingEndTime?: Date; + Description?: string; /** - *

                          The - * status - * of the training job.

                          + *

                          A list of the context's properties.

                          */ - TrainingJobStatus: TrainingJobStatus | string | undefined; + Properties?: { [key: string]: string }; /** - *

                          A - * list of the hyperparameters for which you specified ranges to - * search.

                          + *

                          When the context was created.

                          */ - TunedHyperParameters: { [key: string]: string } | undefined; + CreationTime?: Date; /** - *

                          The - * reason that the training job failed. - *

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - FailureReason?: string; + CreatedBy?: UserContext; /** - *

                          The FinalHyperParameterTuningJobObjectiveMetric object that - * specifies the - * value - * of the - * objective - * metric of the tuning job that launched this training job.

                          + *

                          When the context was last modified.

                          */ - FinalHyperParameterTuningJobObjectiveMetric?: FinalHyperParameterTuningJobObjectiveMetric; + LastModifiedTime?: Date; /** - *

                          The status of the objective metric for the training job:

                          - *
                            - *
                          • - *

                            Succeeded: The - * final - * objective metric for the training job was evaluated by the - * hyperparameter tuning job and - * used - * in the hyperparameter tuning process.

                            - *
                          • - *
                          - *
                            - *
                          • - *

                            Pending: The training job is in progress and evaluation of its final objective - * metric is pending.

                            - *
                          • - *
                          - *
                            - *
                          • - *

                            Failed: - * The final objective metric for the training job was not evaluated, and was not - * used in the hyperparameter tuning process. This typically occurs when the - * training job failed or did not emit an objective - * metric.

                            - *
                          • - *
                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - ObjectiveStatus?: ObjectiveStatus | string; + LastModifiedBy?: UserContext; } -export namespace HyperParameterTrainingJobSummary { - export const filterSensitiveLog = (obj: HyperParameterTrainingJobSummary): any => ({ +export namespace DescribeContextResponse { + export const filterSensitiveLog = (obj: DescribeContextResponse): any => ({ ...obj, }); } -export enum HyperParameterTuningJobStatus { - COMPLETED = "Completed", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - STOPPED = "Stopped", - STOPPING = "Stopping", +export interface DescribeDataQualityJobDefinitionRequest { + /** + *

                          The name of the data quality monitoring job definition to describe.

                          + */ + JobDefinitionName: string | undefined; } -/** - *

                          Specifies the number of training jobs that this hyperparameter tuning job launched, - * categorized by the status of their objective metric. The objective metric status shows - * whether the - * final - * objective metric for the training job has been evaluated by the - * tuning job and used in the hyperparameter tuning process.

                          - */ -export interface ObjectiveStatusCounters { +export namespace DescribeDataQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DescribeDataQualityJobDefinitionRequest): any => ({ + ...obj, + }); +} + +export interface DescribeDataQualityJobDefinitionResponse { /** - *

                          The number of training jobs whose final objective metric was evaluated by the - * hyperparameter tuning job and used in the hyperparameter tuning process.

                          + *

                          The Amazon Resource Name (ARN) of the data quality monitoring job definition.

                          */ - Succeeded?: number; + JobDefinitionArn: string | undefined; /** - *

                          The number of training jobs that are in progress and pending evaluation of their final - * objective metric.

                          + *

                          The name of the data quality monitoring job definition.

                          */ - Pending?: number; + JobDefinitionName: string | undefined; /** - *

                          The number of training jobs whose final objective metric was not evaluated and used in - * the hyperparameter tuning process. This typically occurs when the training job failed or - * did not emit an objective metric.

                          + *

                          The time that the data quality monitoring job definition was created.

                          */ - Failed?: number; -} + CreationTime: Date | undefined; -export namespace ObjectiveStatusCounters { - export const filterSensitiveLog = (obj: ObjectiveStatusCounters): any => ({ - ...obj, - }); -} + /** + *

                          The constraints and baselines for the data quality monitoring job definition.

                          + */ + DataQualityBaselineConfig?: DataQualityBaselineConfig; -/** - *

                          The numbers of training jobs launched by a hyperparameter tuning job, categorized by - * status.

                          - */ -export interface TrainingJobStatusCounters { /** - *

                          The number of completed training jobs launched by the hyperparameter tuning - * job.

                          + *

                          Information about the container that runs the data quality monitoring job.

                          */ - Completed?: number; + DataQualityAppSpecification: DataQualityAppSpecification | undefined; /** - *

                          The number of in-progress training jobs launched by a hyperparameter tuning - * job.

                          + *

                          The list of inputs for the data quality monitoring job. Currently endpoints are + * supported.

                          */ - InProgress?: number; + DataQualityJobInput: DataQualityJobInput | undefined; /** - *

                          The number of training jobs that failed, but can be retried. A failed training job can - * be retried only if it failed because an internal service error occurred.

                          + *

                          The output configuration for monitoring jobs.

                          */ - RetryableError?: number; + DataQualityJobOutputConfig: MonitoringOutputConfig | undefined; /** - *

                          The number of training jobs that failed and can't be retried. A failed training job - * can't be retried if it failed because a client error occurred.

                          + *

                          Identifies the resources to deploy for a monitoring job.

                          */ - NonRetryableError?: number; + JobResources: MonitoringResources | undefined; /** - *

                          The number of training jobs launched by a hyperparameter tuning job that were - * manually - * stopped.

                          + *

                          The networking configuration for the data quality monitoring job.

                          */ - Stopped?: number; + NetworkConfig?: MonitoringNetworkConfig; + + /** + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                          + */ + RoleArn: string | undefined; + + /** + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          + */ + StoppingCondition?: MonitoringStoppingCondition; } -export namespace TrainingJobStatusCounters { - export const filterSensitiveLog = (obj: TrainingJobStatusCounters): any => ({ +export namespace DescribeDataQualityJobDefinitionResponse { + export const filterSensitiveLog = (obj: DescribeDataQualityJobDefinitionResponse): any => ({ ...obj, }); } -export interface DescribeHyperParameterTuningJobResponse { +export interface DescribeDeviceRequest { /** - *

                          The name of the tuning job.

                          + *

                          Next token of device description.

                          */ - HyperParameterTuningJobName: string | undefined; + NextToken?: string; /** - *

                          The - * Amazon Resource Name (ARN) of the tuning job.

                          + *

                          The unique ID of the device.

                          */ - HyperParameterTuningJobArn: string | undefined; + DeviceName: string | undefined; /** - *

                          The HyperParameterTuningJobConfig object that specifies the - * configuration of the tuning job.

                          + *

                          The name of the fleet the devices belong to.

                          */ - HyperParameterTuningJobConfig: HyperParameterTuningJobConfig | undefined; + DeviceFleetName: string | undefined; +} + +export namespace DescribeDeviceRequest { + export const filterSensitiveLog = (obj: DescribeDeviceRequest): any => ({ + ...obj, + }); +} +/** + *

                          The model on the edge device.

                          + */ +export interface EdgeModel { /** - *

                          The HyperParameterTrainingJobDefinition object that specifies the - * definition of the training jobs that this tuning job launches.

                          + *

                          The name of the model.

                          */ - TrainingJobDefinition?: HyperParameterTrainingJobDefinition; + ModelName: string | undefined; /** - *

                          A list of the HyperParameterTrainingJobDefinition objects launched - * for this tuning job.

                          + *

                          The model version.

                          */ - TrainingJobDefinitions?: HyperParameterTrainingJobDefinition[]; + ModelVersion: string | undefined; /** - *

                          The status of the tuning job: InProgress, Completed, Failed, Stopping, or - * Stopped.

                          + *

                          The timestamp of the last data sample taken.

                          */ - HyperParameterTuningJobStatus: HyperParameterTuningJobStatus | string | undefined; + LatestSampleTime?: Date; /** - *

                          The date and time that the tuning job started.

                          + *

                          The timestamp of the last inference that was made.

                          */ - CreationTime: Date | undefined; + LatestInference?: Date; +} + +export namespace EdgeModel { + export const filterSensitiveLog = (obj: EdgeModel): any => ({ + ...obj, + }); +} +export interface DescribeDeviceResponse { /** - *

                          The date and time that the tuning job ended.

                          + *

                          The Amazon Resource Name (ARN) of the device.

                          */ - HyperParameterTuningEndTime?: Date; + DeviceArn?: string; /** - *

                          The date and time that the status of the tuning job was modified.

                          + *

                          The unique identifier of the device.

                          */ - LastModifiedTime?: Date; + DeviceName: string | undefined; /** - *

                          The TrainingJobStatusCounters object that specifies the number of - * training jobs, categorized by status, that this tuning job launched.

                          + *

                          A description of the device.

                          */ - TrainingJobStatusCounters: TrainingJobStatusCounters | undefined; + Description?: string; /** - *

                          The ObjectiveStatusCounters object that specifies the number of - * training jobs, categorized by the status of their final objective metric, that this - * tuning job launched.

                          + *

                          The name of the fleet the device belongs to.

                          */ - ObjectiveStatusCounters: ObjectiveStatusCounters | undefined; + DeviceFleetName: string | undefined; /** - *

                          A TrainingJobSummary object that describes the training job that - * completed with the best current HyperParameterTuningJobObjective.

                          + *

                          The AWS Internet of Things (IoT) object thing name associated with the device.

                          */ - BestTrainingJob?: HyperParameterTrainingJobSummary; + IotThingName?: string; /** - *

                          If the hyperparameter tuning job is an warm start tuning job with a - * WarmStartType of IDENTICAL_DATA_AND_ALGORITHM, this is the - * TrainingJobSummary for the training job with the best objective - * metric value of all training jobs launched by this tuning job and all parent jobs - * specified for the warm start tuning job.

                          + *

                          The timestamp of the last registration or de-reregistration.

                          */ - OverallBestTrainingJob?: HyperParameterTrainingJobSummary; + RegistrationTime: Date | undefined; /** - *

                          The configuration for starting the hyperparameter parameter tuning job using one or - * more previous tuning jobs as a starting point. The results of previous tuning jobs are - * used to inform which combinations of hyperparameters to search over in the new tuning - * job.

                          + *

                          The last heartbeat received from the device.

                          */ - WarmStartConfig?: HyperParameterTuningJobWarmStartConfig; + LatestHeartbeat?: Date; /** - *

                          If the tuning job failed, the reason it failed.

                          + *

                          Models on the device.

                          */ - FailureReason?: string; + Models?: EdgeModel[]; + + /** + *

                          The maximum number of models.

                          + */ + MaxModels?: number; + + /** + *

                          The response from the last list when returning a list large enough to need tokening.

                          + */ + NextToken?: string; } -export namespace DescribeHyperParameterTuningJobResponse { - export const filterSensitiveLog = (obj: DescribeHyperParameterTuningJobResponse): any => ({ +export namespace DescribeDeviceResponse { + export const filterSensitiveLog = (obj: DescribeDeviceResponse): any => ({ ...obj, }); } -export interface DescribeImageRequest { +export interface DescribeDeviceFleetRequest { /** - *

                          The name of the image to describe.

                          + *

                          The name of the fleet.

                          */ - ImageName: string | undefined; + DeviceFleetName: string | undefined; } -export namespace DescribeImageRequest { - export const filterSensitiveLog = (obj: DescribeImageRequest): any => ({ +export namespace DescribeDeviceFleetRequest { + export const filterSensitiveLog = (obj: DescribeDeviceFleetRequest): any => ({ ...obj, }); } -export enum ImageStatus { - CREATED = "CREATED", - CREATE_FAILED = "CREATE_FAILED", - CREATING = "CREATING", - DELETE_FAILED = "DELETE_FAILED", - DELETING = "DELETING", - UPDATE_FAILED = "UPDATE_FAILED", - UPDATING = "UPDATING", -} - -export interface DescribeImageResponse { - /** - *

                          When the image was created.

                          - */ - CreationTime?: Date; - +export interface DescribeDeviceFleetResponse { /** - *

                          The description of the image.

                          + *

                          The name of the fleet.

                          */ - Description?: string; + DeviceFleetName: string | undefined; /** - *

                          The name of the image as displayed.

                          + *

                          The The Amazon Resource Name (ARN) of the fleet.

                          */ - DisplayName?: string; + DeviceFleetArn: string | undefined; /** - *

                          When a create, update, or delete operation fails, the reason for the failure.

                          + *

                          The output configuration for storing sampled data.

                          */ - FailureReason?: string; + OutputConfig: EdgeOutputConfig | undefined; /** - *

                          The Amazon Resource Name (ARN) of the image.

                          + *

                          A description of the fleet.

                          */ - ImageArn?: string; + Description?: string; /** - *

                          The name of the image.

                          + *

                          Timestamp of when the device fleet was created.

                          */ - ImageName?: string; + CreationTime: Date | undefined; /** - *

                          The status of the image.

                          + *

                          Timestamp of when the device fleet was last updated.

                          */ - ImageStatus?: ImageStatus | string; + LastModifiedTime: Date | undefined; /** - *

                          When the image was last modified.

                          + *

                          The Amazon Resource Name (ARN) that has access to AWS Internet of Things (IoT).

                          */ - LastModifiedTime?: Date; + RoleArn?: string; /** - *

                          The Amazon Resource Name (ARN) of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.

                          + *

                          The Amazon Resource Name (ARN) alias created in AWS Internet of Things (IoT).

                          */ - RoleArn?: string; + IotRoleAlias?: string; } -export namespace DescribeImageResponse { - export const filterSensitiveLog = (obj: DescribeImageResponse): any => ({ +export namespace DescribeDeviceFleetResponse { + export const filterSensitiveLog = (obj: DescribeDeviceFleetResponse): any => ({ ...obj, }); } -export interface DescribeImageVersionRequest { - /** - *

                          The name of the image.

                          - */ - ImageName: string | undefined; - +export interface DescribeDomainRequest { /** - *

                          The version of the image. If not specified, the latest version is described.

                          + *

                          The domain ID.

                          */ - Version?: number; + DomainId: string | undefined; } -export namespace DescribeImageVersionRequest { - export const filterSensitiveLog = (obj: DescribeImageVersionRequest): any => ({ +export namespace DescribeDomainRequest { + export const filterSensitiveLog = (obj: DescribeDomainRequest): any => ({ ...obj, }); } -export enum ImageVersionStatus { - CREATED = "CREATED", - CREATE_FAILED = "CREATE_FAILED", - CREATING = "CREATING", - DELETE_FAILED = "DELETE_FAILED", - DELETING = "DELETING", +export enum DomainStatus { + Delete_Failed = "Delete_Failed", + Deleting = "Deleting", + Failed = "Failed", + InService = "InService", + Pending = "Pending", + Update_Failed = "Update_Failed", + Updating = "Updating", } -export interface DescribeImageVersionResponse { +export interface DescribeDomainResponse { /** - *

                          The registry path of the container image on which this image version is based.

                          + *

                          The domain's Amazon Resource Name (ARN).

                          */ - BaseImage?: string; + DomainArn?: string; /** - *

                          The registry path of the container image that contains this image version.

                          + *

                          The domain ID.

                          */ - ContainerImage?: string; + DomainId?: string; /** - *

                          When the version was created.

                          + *

                          The domain name.

                          */ - CreationTime?: Date; + DomainName?: string; /** - *

                          When a create or delete operation fails, the reason for the failure.

                          + *

                          The ID of the Amazon Elastic File System (EFS) managed by this Domain.

                          */ - FailureReason?: string; + HomeEfsFileSystemId?: string; /** - *

                          The Amazon Resource Name (ARN) of the image the version is based on.

                          + *

                          The SSO managed application instance ID.

                          */ - ImageArn?: string; + SingleSignOnManagedApplicationInstanceId?: string; /** - *

                          The ARN of the version.

                          + *

                          The status.

                          */ - ImageVersionArn?: string; + Status?: DomainStatus | string; /** - *

                          The status of the version.

                          + *

                          The creation time.

                          */ - ImageVersionStatus?: ImageVersionStatus | string; + CreationTime?: Date; /** - *

                          When the version was last modified.

                          + *

                          The last modified time.

                          */ LastModifiedTime?: Date; /** - *

                          The version number.

                          + *

                          The failure reason.

                          */ - Version?: number; -} + FailureReason?: string; -export namespace DescribeImageVersionResponse { - export const filterSensitiveLog = (obj: DescribeImageVersionResponse): any => ({ - ...obj, - }); -} + /** + *

                          The domain's authentication mode.

                          + */ + AuthMode?: AuthMode | string; -export interface DescribeLabelingJobRequest { /** - *

                          The name of the labeling job to return information for.

                          + *

                          Settings which are applied to all UserProfiles in this domain, if settings are not explicitly specified + * in a given UserProfile. + *

                          */ - LabelingJobName: string | undefined; -} + DefaultUserSettings?: UserSettings; -export namespace DescribeLabelingJobRequest { - export const filterSensitiveLog = (obj: DescribeLabelingJobRequest): any => ({ - ...obj, - }); -} + /** + *

                          Specifies the VPC used for non-EFS traffic. The default value is + * PublicInternetOnly.

                          + *
                            + *
                          • + *

                            + * PublicInternetOnly - Non-EFS traffic is through a VPC managed by + * Amazon SageMaker, which allows direct internet access

                            + *
                          • + *
                          • + *

                            + * VpcOnly - All Studio traffic is through the specified VPC and subnets

                            + *
                          • + *
                          + */ + AppNetworkAccessType?: AppNetworkAccessType | string; -/** - *

                          Provides a breakdown of the number of objects labeled.

                          - */ -export interface LabelCounters { /** - *

                          The total number of objects labeled.

                          + *

                          This member is deprecated and replaced with KmsKeyId.

                          */ - TotalLabeled?: number; + HomeEfsFileSystemKmsKeyId?: string; /** - *

                          The total number of objects labeled by a human worker.

                          + *

                          The VPC subnets that Studio uses for communication.

                          */ - HumanLabeled?: number; + SubnetIds?: string[]; /** - *

                          The total number of objects labeled by automated data labeling.

                          + *

                          The domain's URL.

                          */ - MachineLabeled?: number; + Url?: string; /** - *

                          The total number of objects that could not be labeled due to an error.

                          + *

                          The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

                          */ - FailedNonRetryableError?: number; + VpcId?: string; /** - *

                          The total number of objects not yet labeled.

                          + *

                          The AWS KMS customer managed CMK used to encrypt + * the EFS volume attached to the domain.

                          */ - Unlabeled?: number; + KmsKeyId?: string; } -export namespace LabelCounters { - export const filterSensitiveLog = (obj: LabelCounters): any => ({ +export namespace DescribeDomainResponse { + export const filterSensitiveLog = (obj: DescribeDomainResponse): any => ({ ...obj, }); } -/** - *

                          Specifies the location of the output produced by the labeling job.

                          - */ -export interface LabelingJobOutput { - /** - *

                          The Amazon S3 bucket location of the manifest file for labeled data.

                          - */ - OutputDatasetS3Uri: string | undefined; - +export interface DescribeEdgePackagingJobRequest { /** - *

                          The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model trained as part of - * automated data labeling.

                          + *

                          The name of the edge packaging job.

                          */ - FinalActiveLearningModelArn?: string; + EdgePackagingJobName: string | undefined; } -export namespace LabelingJobOutput { - export const filterSensitiveLog = (obj: LabelingJobOutput): any => ({ +export namespace DescribeEdgePackagingJobRequest { + export const filterSensitiveLog = (obj: DescribeEdgePackagingJobRequest): any => ({ ...obj, }); } -export enum LabelingJobStatus { - COMPLETED = "Completed", - FAILED = "Failed", - INITIALIZING = "Initializing", - IN_PROGRESS = "InProgress", - STOPPED = "Stopped", - STOPPING = "Stopping", +export enum EdgePackagingJobStatus { + Completed = "COMPLETED", + Failed = "FAILED", + InProgress = "INPROGRESS", + Starting = "STARTING", + Stopped = "STOPPED", + Stopping = "STOPPING", } -export interface DescribeLabelingJobResponse { +export interface DescribeEdgePackagingJobResponse { /** - *

                          The processing status of the labeling job.

                          + *

                          The Amazon Resource Name (ARN) of the edge packaging job.

                          */ - LabelingJobStatus: LabelingJobStatus | string | undefined; + EdgePackagingJobArn: string | undefined; /** - *

                          Provides a breakdown of the number of data objects labeled by humans, the number of - * objects labeled by machine, the number of objects than couldn't be labeled, and the - * total number of objects labeled.

                          + *

                          The name of the edge packaging job.

                          */ - LabelCounters: LabelCounters | undefined; + EdgePackagingJobName: string | undefined; /** - *

                          If the job failed, the reason that it failed.

                          + *

                          The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.

                          */ - FailureReason?: string; + CompilationJobName?: string; /** - *

                          The date and time that the labeling job was created.

                          + *

                          The name of the model.

                          */ - CreationTime: Date | undefined; + ModelName?: string; /** - *

                          The date and time that the labeling job was last updated.

                          + *

                          The version of the model.

                          */ - LastModifiedTime: Date | undefined; + ModelVersion?: string; /** - *

                          A unique identifier for work done as part of a labeling job.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.

                          */ - JobReferenceCode: string | undefined; + RoleArn?: string; /** - *

                          The name assigned to the labeling job when it was created.

                          + *

                          The output configuration for the edge packaging job.

                          */ - LabelingJobName: string | undefined; + OutputConfig?: EdgeOutputConfig; /** - *

                          The Amazon Resource Name (ARN) of the labeling job.

                          + *

                          The CMK to use when encrypting the EBS volume the job run on.

                          */ - LabelingJobArn: string | undefined; + ResourceKey?: string; /** - *

                          The attribute used as the label in the output manifest file.

                          + *

                          The current status of the packaging job.

                          */ - LabelAttributeName?: string; + EdgePackagingJobStatus: EdgePackagingJobStatus | string | undefined; /** - *

                          Input configuration information for the labeling job, such as the Amazon S3 location of the - * data objects and the location of the manifest file that describes the data - * objects.

                          + *

                          Returns a message describing the job status and error messages.

                          */ - InputConfig: LabelingJobInputConfig | undefined; + EdgePackagingJobStatusMessage?: string; /** - *

                          The location of the job's output data and the AWS Key Management Service key ID for the key used to - * encrypt the output data, if any.

                          + *

                          The timestamp of when the packaging job was created.

                          */ - OutputConfig: LabelingJobOutputConfig | undefined; + CreationTime?: Date; /** - *

                          The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on your behalf - * during data labeling.

                          + *

                          The timestamp of when the job was last updated.

                          */ - RoleArn: string | undefined; + LastModifiedTime?: Date; /** - *

                          The S3 location of the JSON file that defines the categories used to label data - * objects. Please note the following label-category limits:

                          - *
                            - *
                          • - *

                            Semantic segmentation labeling jobs using automated labeling: 20 labels

                            - *
                          • - *
                          • - *

                            Box bounding labeling jobs (all): 10 labels

                            - *
                          • - *
                          - *

                          The file is a JSON structure in the following format:

                          - *

                          - * { - *

                          - *

                          - * "document-version": "2018-11-28" - *

                          - *

                          - * "labels": [ - *

                          - *

                          - * { - *

                          - *

                          - * "label": "label 1" - *

                          - *

                          - * }, - *

                          - *

                          - * { - *

                          - *

                          - * "label": "label 2" - *

                          - *

                          - * }, - *

                          - *

                          - * ... - *

                          - *

                          - * { - *

                          - *

                          - * "label": "label n" - *

                          - *

                          - * } - *

                          - *

                          - * ] - *

                          - *

                          - * } - *

                          + *

                          The Amazon Simple Storage (S3) URI where model artifacts ares stored.

                          */ - LabelCategoryConfigS3Uri?: string; + ModelArtifact?: string; /** - *

                          A set of conditions for stopping a labeling job. If any of the conditions are met, the - * job is automatically stopped.

                          + *

                          The signature document of files in the model artifact.

                          */ - StoppingConditions?: LabelingJobStoppingConditions; + ModelSignature?: string; +} +export namespace DescribeEdgePackagingJobResponse { + export const filterSensitiveLog = (obj: DescribeEdgePackagingJobResponse): any => ({ + ...obj, + }); +} + +export interface DescribeEndpointInput { /** - *

                          Configuration information for automated data labeling.

                          + *

                          The name of the endpoint.

                          */ - LabelingJobAlgorithmsConfig?: LabelingJobAlgorithmsConfig; + EndpointName: string | undefined; +} + +export namespace DescribeEndpointInput { + export const filterSensitiveLog = (obj: DescribeEndpointInput): any => ({ + ...obj, + }); +} +export enum EndpointStatus { + CREATING = "Creating", + DELETING = "Deleting", + FAILED = "Failed", + IN_SERVICE = "InService", + OUT_OF_SERVICE = "OutOfService", + ROLLING_BACK = "RollingBack", + SYSTEM_UPDATING = "SystemUpdating", + UPDATING = "Updating", +} + +/** + *

                          Describes weight and capacities for a production variant associated with an + * endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities + * API and the endpoint status is Updating, you get different desired and + * current values.

                          + */ +export interface ProductionVariantSummary { /** - *

                          Configuration information required for human workers to complete a labeling - * task.

                          + *

                          The name of the variant.

                          */ - HumanTaskConfig: HumanTaskConfig | undefined; + VariantName: string | undefined; /** - *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in - * different ways, for example, by purpose, owner, or environment. For more information, - * see Tagging AWS - * Resources.

                          + *

                          An array of DeployedImage objects that specify the Amazon EC2 Container Registry paths of the + * inference images deployed on instances of this ProductionVariant.

                          */ - Tags?: Tag[]; + DeployedImages?: DeployedImage[]; /** - *

                          The location of the output produced by the labeling job.

                          + *

                          The weight associated with the variant.

                          */ - LabelingJobOutput?: LabelingJobOutput; -} + CurrentWeight?: number; -export namespace DescribeLabelingJobResponse { - export const filterSensitiveLog = (obj: DescribeLabelingJobResponse): any => ({ - ...obj, - }); -} + /** + *

                          The requested weight, as specified in the + * UpdateEndpointWeightsAndCapacities request.

                          + */ + DesiredWeight?: number; -export interface DescribeModelInput { /** - *

                          The name of the model.

                          + *

                          The number of instances associated with the variant.

                          */ - ModelName: string | undefined; + CurrentInstanceCount?: number; + + /** + *

                          The number of instances requested in the + * UpdateEndpointWeightsAndCapacities request.

                          + */ + DesiredInstanceCount?: number; } -export namespace DescribeModelInput { - export const filterSensitiveLog = (obj: DescribeModelInput): any => ({ +export namespace ProductionVariantSummary { + export const filterSensitiveLog = (obj: ProductionVariantSummary): any => ({ ...obj, }); } -export interface DescribeModelOutput { +export interface DescribeEndpointOutput { /** - *

                          Name of the Amazon SageMaker model.

                          + *

                          Name of the endpoint.

                          */ - ModelName: string | undefined; + EndpointName: string | undefined; /** - *

                          The location of the primary inference code, associated artifacts, and custom - * environment map that the inference code uses when it is deployed in production. - *

                          + *

                          The Amazon Resource Name (ARN) of the endpoint.

                          */ - PrimaryContainer?: ContainerDefinition; + EndpointArn: string | undefined; /** - *

                          The containers in the inference pipeline.

                          + *

                          The name of the endpoint configuration associated with this endpoint.

                          */ - Containers?: ContainerDefinition[]; + EndpointConfigName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the IAM role that you specified for the - * model.

                          + *

                          An array of ProductionVariantSummary objects, one for each model + * hosted behind this endpoint.

                          */ - ExecutionRoleArn: string | undefined; + ProductionVariants?: ProductionVariantSummary[]; /** - *

                          A VpcConfig object that specifies the VPC that this model has access - * to. For more information, see Protect Endpoints by Using an Amazon Virtual - * Private Cloud - *

                          + *

                          */ - VpcConfig?: VpcConfig; + DataCaptureConfig?: DataCaptureConfigSummary; /** - *

                          A timestamp that shows when the model was created.

                          + *

                          The status of the endpoint.

                          + *
                            + *
                          • + *

                            + * OutOfService: Endpoint is not available to take incoming + * requests.

                            + *
                          • + *
                          • + *

                            + * Creating: CreateEndpoint is executing.

                            + *
                          • + *
                          • + *

                            + * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing.

                            + *
                          • + *
                          • + *

                            + * SystemUpdating: Endpoint is undergoing maintenance and cannot be + * updated or deleted or re-scaled until it has completed. This maintenance + * operation does not change any customer-specified values such as VPC config, KMS + * encryption, model, instance type, or instance count.

                            + *
                          • + *
                          • + *

                            + * RollingBack: Endpoint fails to scale up or down or change its + * variant weight and is in the process of rolling back to its previous + * configuration. Once the rollback completes, endpoint returns to an + * InService status. This transitional status only applies to an + * endpoint that has autoscaling enabled and is undergoing variant weight or + * capacity changes as part of an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities operation is called + * explicitly.

                            + *
                          • + *
                          • + *

                            + * InService: Endpoint is available to process incoming + * requests.

                            + *
                          • + *
                          • + *

                            + * Deleting: DeleteEndpoint is executing.

                            + *
                          • + *
                          • + *

                            + * Failed: Endpoint could not be created, updated, or re-scaled. Use + * DescribeEndpointOutput$FailureReason for information about + * the failure. DeleteEndpoint is the only operation that can be + * performed on a failed endpoint.

                            + *
                          • + *
                          + */ + EndpointStatus: EndpointStatus | string | undefined; + + /** + *

                          If the status of the endpoint is Failed, the reason why it failed. + *

                          + */ + FailureReason?: string; + + /** + *

                          A timestamp that shows when the endpoint was created.

                          */ CreationTime: Date | undefined; /** - *

                          The Amazon Resource Name (ARN) of the model.

                          + *

                          A timestamp that shows when the endpoint was last modified.

                          */ - ModelArn: string | undefined; + LastModifiedTime: Date | undefined; /** - *

                          If True, no inbound or outbound network calls can be made to or from the - * model container.

                          + *

                          The most recent deployment configuration for the endpoint.

                          */ - EnableNetworkIsolation?: boolean; + LastDeploymentConfig?: DeploymentConfig; } -export namespace DescribeModelOutput { - export const filterSensitiveLog = (obj: DescribeModelOutput): any => ({ +export namespace DescribeEndpointOutput { + export const filterSensitiveLog = (obj: DescribeEndpointOutput): any => ({ ...obj, }); } -export interface DescribeModelPackageInput { +export interface DescribeEndpointConfigInput { /** - *

                          The name of the model package to describe.

                          + *

                          The name of the endpoint configuration.

                          */ - ModelPackageName: string | undefined; + EndpointConfigName: string | undefined; } -export namespace DescribeModelPackageInput { - export const filterSensitiveLog = (obj: DescribeModelPackageInput): any => ({ +export namespace DescribeEndpointConfigInput { + export const filterSensitiveLog = (obj: DescribeEndpointConfigInput): any => ({ ...obj, }); } -export enum ModelPackageStatus { - COMPLETED = "Completed", - DELETING = "Deleting", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - PENDING = "Pending", -} +export interface DescribeEndpointConfigOutput { + /** + *

                          Name of the Amazon SageMaker endpoint configuration.

                          + */ + EndpointConfigName: string | undefined; -export enum DetailedModelPackageStatus { - COMPLETED = "Completed", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - NOT_STARTED = "NotStarted", -} + /** + *

                          The Amazon Resource Name (ARN) of the endpoint configuration.

                          + */ + EndpointConfigArn: string | undefined; -/** - *

                          Represents the overall status of a model package.

                          - */ -export interface ModelPackageStatusItem { /** - *

                          The name of the model package for which the overall status is being reported.

                          + *

                          An array of ProductionVariant objects, one for each model that you + * want to host at this endpoint.

                          */ - Name: string | undefined; + ProductionVariants: ProductionVariant[] | undefined; /** - *

                          The current status.

                          + *

                          */ - Status: DetailedModelPackageStatus | string | undefined; + DataCaptureConfig?: DataCaptureConfig; /** - *

                          if the overall status is Failed, the reason for the failure.

                          + *

                          AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage + * volume attached to the instance.

                          */ - FailureReason?: string; + KmsKeyId?: string; + + /** + *

                          A timestamp that shows when the endpoint configuration was created.

                          + */ + CreationTime: Date | undefined; } -export namespace ModelPackageStatusItem { - export const filterSensitiveLog = (obj: ModelPackageStatusItem): any => ({ +export namespace DescribeEndpointConfigOutput { + export const filterSensitiveLog = (obj: DescribeEndpointConfigOutput): any => ({ ...obj, }); } -/** - *

                          Specifies the validation and image scan statuses of the model package.

                          - */ -export interface ModelPackageStatusDetails { - /** - *

                          The validation status of the model package.

                          - */ - ValidationStatuses: ModelPackageStatusItem[] | undefined; - +export interface DescribeExperimentRequest { /** - *

                          The status of the scan of the Docker image container for the model package.

                          + *

                          The name of the experiment to describe.

                          */ - ImageScanStatuses?: ModelPackageStatusItem[]; + ExperimentName: string | undefined; } -export namespace ModelPackageStatusDetails { - export const filterSensitiveLog = (obj: ModelPackageStatusDetails): any => ({ +export namespace DescribeExperimentRequest { + export const filterSensitiveLog = (obj: DescribeExperimentRequest): any => ({ ...obj, }); } -export interface DescribeModelPackageOutput { +/** + *

                          The source of the experiment.

                          + */ +export interface ExperimentSource { /** - *

                          The name of the model package being described.

                          + *

                          The Amazon Resource Name (ARN) of the source.

                          */ - ModelPackageName: string | undefined; + SourceArn: string | undefined; /** - *

                          If the model is a versioned model, the name of the model group that the versioned - * model belongs to.

                          + *

                          The source type.

                          */ - ModelPackageGroupName?: string; + SourceType?: string; +} - /** - *

                          The version of the model package.

                          - */ - ModelPackageVersion?: number; +export namespace ExperimentSource { + export const filterSensitiveLog = (obj: ExperimentSource): any => ({ + ...obj, + }); +} +export interface DescribeExperimentResponse { /** - *

                          The Amazon Resource Name (ARN) of the model package.

                          + *

                          The name of the experiment.

                          */ - ModelPackageArn: string | undefined; + ExperimentName?: string; /** - *

                          A brief summary of the model package.

                          + *

                          The Amazon Resource Name (ARN) of the experiment.

                          */ - ModelPackageDescription?: string; + ExperimentArn?: string; /** - *

                          A timestamp specifying when the model package was created.

                          + *

                          The name of the experiment as displayed. If DisplayName isn't specified, + * ExperimentName is displayed.

                          */ - CreationTime: Date | undefined; + DisplayName?: string; /** - *

                          Details about inference jobs that can be run with models based on this model - * package.

                          + *

                          The ARN of the source and, optionally, the type.

                          */ - InferenceSpecification?: InferenceSpecification; + Source?: ExperimentSource; /** - *

                          Details about the algorithm that was used to create the model package.

                          + *

                          The description of the experiment.

                          */ - SourceAlgorithmSpecification?: SourceAlgorithmSpecification; + Description?: string; /** - *

                          Configurations for one or more transform jobs that Amazon SageMaker runs to test the model - * package.

                          + *

                          When the experiment was created.

                          */ - ValidationSpecification?: ModelPackageValidationSpecification; + CreationTime?: Date; /** - *

                          The current status of the model package.

                          + *

                          Who created the experiment.

                          */ - ModelPackageStatus: ModelPackageStatus | string | undefined; + CreatedBy?: UserContext; /** - *

                          Details about the current status of the model package.

                          + *

                          When the experiment was last modified.

                          */ - ModelPackageStatusDetails: ModelPackageStatusDetails | undefined; + LastModifiedTime?: Date; /** - *

                          Whether the model package is certified for listing on AWS Marketplace.

                          + *

                          Who last modified the experiment.

                          */ - CertifyForMarketplace?: boolean; + LastModifiedBy?: UserContext; +} - /** - *

                          The approval status of the model package.

                          - */ - ModelApprovalStatus?: ModelApprovalStatus | string; +export namespace DescribeExperimentResponse { + export const filterSensitiveLog = (obj: DescribeExperimentResponse): any => ({ + ...obj, + }); +} +export interface DescribeFeatureGroupRequest { /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The name of the FeatureGroup you want described.

                          */ - CreatedBy?: UserContext; + FeatureGroupName: string | undefined; /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          A token to resume pagination of the list of Features + * (FeatureDefinitions). 2,500 Features are returned by + * default.

                          */ - MetadataProperties?: MetadataProperties; + NextToken?: string; +} - /** - *

                          Metrics for the model.

                          - */ - ModelMetrics?: ModelMetrics; +export namespace DescribeFeatureGroupRequest { + export const filterSensitiveLog = (obj: DescribeFeatureGroupRequest): any => ({ + ...obj, + }); +} - /** - *

                          The last time the model package was modified.

                          - */ - LastModifiedTime?: Date; +export enum FeatureGroupStatus { + CREATED = "Created", + CREATE_FAILED = "CreateFailed", + CREATING = "Creating", + DELETE_FAILED = "DeleteFailed", + DELETING = "Deleting", +} + +export enum OfflineStoreStatusValue { + ACTIVE = "Active", + BLOCKED = "Blocked", + DISABLED = "Disabled", +} +/** + *

                          The status of OfflineStore.

                          + */ +export interface OfflineStoreStatus { /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          An OfflineStore status.

                          */ - LastModifiedBy?: UserContext; + Status: OfflineStoreStatusValue | string | undefined; /** - *

                          A description provided for the model approval.

                          + *

                          The justification for why the OfflineStoreStatus is Blocked (if applicable).

                          */ - ApprovalDescription?: string; + BlockedReason?: string; } -export namespace DescribeModelPackageOutput { - export const filterSensitiveLog = (obj: DescribeModelPackageOutput): any => ({ +export namespace OfflineStoreStatus { + export const filterSensitiveLog = (obj: OfflineStoreStatus): any => ({ ...obj, }); } -export interface DescribeModelPackageGroupInput { +export interface DescribeFeatureGroupResponse { /** - *

                          The name of the model group to describe.

                          + *

                          The Amazon Resource Name (ARN) of the FeatureGroup.

                          */ - ModelPackageGroupName: string | undefined; -} - -export namespace DescribeModelPackageGroupInput { - export const filterSensitiveLog = (obj: DescribeModelPackageGroupInput): any => ({ - ...obj, - }); -} + FeatureGroupArn: string | undefined; -export enum ModelPackageGroupStatus { - COMPLETED = "Completed", - DELETE_FAILED = "DeleteFailed", - DELETING = "Deleting", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - PENDING = "Pending", -} + /** + *

                          he name of the FeatureGroup.

                          + */ + FeatureGroupName: string | undefined; -export interface DescribeModelPackageGroupOutput { /** - *

                          The name of the model group.

                          + *

                          The name of the Feature used for RecordIdentifier, whose value + * uniquely identifies a record stored in the feature store.

                          */ - ModelPackageGroupName: string | undefined; + RecordIdentifierFeatureName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the model group.

                          + *

                          The name of the feature that stores the EventTime of a Record in a + * FeatureGroup.

                          + *

                          An EventTime is a point in time when a new event occurs that + * corresponds to the creation or update of a Record in a + * FeatureGroup. All Records in the FeatureGroup + * have a corresponding EventTime.

                          */ - ModelPackageGroupArn: string | undefined; + EventTimeFeatureName: string | undefined; /** - *

                          A description of the model group.

                          + *

                          A list of the Features in the FeatureGroup. + * Each feature is defined by a FeatureName and FeatureType.

                          */ - ModelPackageGroupDescription?: string; + FeatureDefinitions: FeatureDefinition[] | undefined; /** - *

                          The time that the model group was created.

                          + *

                          A timestamp indicating when SageMaker created the FeatureGroup.

                          */ CreationTime: Date | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The configuration for the OnlineStore.

                          */ - CreatedBy: UserContext | undefined; + OnlineStoreConfig?: OnlineStoreConfig; /** - *

                          The status of the model group.

                          + *

                          The configuration of the OfflineStore, inducing the S3 location of the + * OfflineStore, AWS Glue or AWS Hive data catalogue configurations, and the + * security configuration.

                          */ - ModelPackageGroupStatus: ModelPackageGroupStatus | string | undefined; -} + OfflineStoreConfig?: OfflineStoreConfig; -export namespace DescribeModelPackageGroupOutput { - export const filterSensitiveLog = (obj: DescribeModelPackageGroupOutput): any => ({ - ...obj, - }); -} + /** + *

                          The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the + * OfflineStore if an OfflineStoreConfig is provided.

                          + */ + RoleArn?: string; -export interface DescribeMonitoringScheduleRequest { /** - *

                          Name of a previously created monitoring schedule.

                          + *

                          The status of the feature group.

                          */ - MonitoringScheduleName: string | undefined; -} - -export namespace DescribeMonitoringScheduleRequest { - export const filterSensitiveLog = (obj: DescribeMonitoringScheduleRequest): any => ({ - ...obj, - }); -} - -export enum ExecutionStatus { - COMPLETED = "Completed", - COMPLETED_WITH_VIOLATIONS = "CompletedWithViolations", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - PENDING = "Pending", - STOPPED = "Stopped", - STOPPING = "Stopping", -} - -/** - *

                          Summary of information about the last monitoring job to run.

                          - */ -export interface MonitoringExecutionSummary { - /** - *

                          The name of the monitoring schedule.

                          - */ - MonitoringScheduleName: string | undefined; - - /** - *

                          The time the monitoring job was scheduled.

                          - */ - ScheduledTime: Date | undefined; + FeatureGroupStatus?: FeatureGroupStatus | string; /** - *

                          The time at which the monitoring job was created.

                          + *

                          The status of the OfflineStore. Notifies you if replicating data into the + * OfflineStore has failed. Returns either: Active or + * Blocked + *

                          */ - CreationTime: Date | undefined; + OfflineStoreStatus?: OfflineStoreStatus; /** - *

                          A timestamp that indicates the last time the monitoring job was modified.

                          + *

                          The reason that the FeatureGroup failed to be replicated in the + * OfflineStore. This is failure can occur because:

                          + *
                            + *
                          • + *

                            The FeatureGroup could not be created in the + * OfflineStore.

                            + *
                          • + *
                          • + *

                            The FeatureGroup could not be deleted from the + * OfflineStore.

                            + *
                          • + *
                          */ - LastModifiedTime: Date | undefined; + FailureReason?: string; /** - *

                          The status of the monitoring job.

                          + *

                          A free form description of the feature group.

                          */ - MonitoringExecutionStatus: ExecutionStatus | string | undefined; + Description?: string; /** - *

                          The Amazon Resource Name (ARN) of the monitoring job.

                          + *

                          A token to resume pagination of the list of Features + * (FeatureDefinitions).

                          */ - ProcessingJobArn?: string; + NextToken: string | undefined; +} - /** - *

                          The name of teh endpoint used to run the monitoring job.

                          - */ - EndpointName?: string; +export namespace DescribeFeatureGroupResponse { + export const filterSensitiveLog = (obj: DescribeFeatureGroupResponse): any => ({ + ...obj, + }); +} +export interface DescribeFlowDefinitionRequest { /** - *

                          Contains the reason a monitoring job failed, if it failed.

                          + *

                          The name of the flow definition.

                          */ - FailureReason?: string; + FlowDefinitionName: string | undefined; } -export namespace MonitoringExecutionSummary { - export const filterSensitiveLog = (obj: MonitoringExecutionSummary): any => ({ +export namespace DescribeFlowDefinitionRequest { + export const filterSensitiveLog = (obj: DescribeFlowDefinitionRequest): any => ({ ...obj, }); } -export enum ScheduleStatus { +export enum FlowDefinitionStatus { + ACTIVE = "Active", + DELETING = "Deleting", FAILED = "Failed", - PENDING = "Pending", - SCHEDULED = "Scheduled", - STOPPED = "Stopped", + INITIALIZING = "Initializing", } -export interface DescribeMonitoringScheduleResponse { +export interface DescribeFlowDefinitionResponse { /** - *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          + *

                          The Amazon Resource Name (ARN) of the flow defintion.

                          */ - MonitoringScheduleArn: string | undefined; + FlowDefinitionArn: string | undefined; /** - *

                          Name of the monitoring schedule.

                          + *

                          The Amazon Resource Name (ARN) of the flow definition.

                          */ - MonitoringScheduleName: string | undefined; + FlowDefinitionName: string | undefined; /** - *

                          The status of an monitoring job.

                          + *

                          The status of the flow definition. Valid values are listed below.

                          */ - MonitoringScheduleStatus: ScheduleStatus | string | undefined; + FlowDefinitionStatus: FlowDefinitionStatus | string | undefined; /** - *

                          A string, up to one KB in size, that contains the reason a monitoring job failed, if it - * failed.

                          + *

                          The timestamp when the flow definition was created.

                          */ - FailureReason?: string; + CreationTime: Date | undefined; /** - *

                          The time at which the monitoring job was created.

                          + *

                          Container for configuring the source of human task requests. Used to specify if + * Amazon Rekognition or Amazon Textract is used as an integration source.

                          */ - CreationTime: Date | undefined; + HumanLoopRequestSource?: HumanLoopRequestSource; /** - *

                          The time at which the monitoring job was last modified.

                          + *

                          An object containing information about what triggers a human review workflow.

                          */ - LastModifiedTime: Date | undefined; + HumanLoopActivationConfig?: HumanLoopActivationConfig; /** - *

                          The configuration object that specifies the monitoring schedule and defines the - * monitoring job.

                          + *

                          An object containing information about who works on the task, the workforce task price, and other task details.

                          */ - MonitoringScheduleConfig: MonitoringScheduleConfig | undefined; + HumanLoopConfig: HumanLoopConfig | undefined; /** - *

                          The name of the endpoint for the monitoring job.

                          + *

                          An object containing information about the output file.

                          */ - EndpointName?: string; + OutputConfig: FlowDefinitionOutputConfig | undefined; /** - *

                          Describes metadata on the last execution to run, if there was one.

                          + *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) execution role for the flow definition.

                          */ - LastMonitoringExecutionSummary?: MonitoringExecutionSummary; + RoleArn: string | undefined; + + /** + *

                          The reason your flow definition failed.

                          + */ + FailureReason?: string; } -export namespace DescribeMonitoringScheduleResponse { - export const filterSensitiveLog = (obj: DescribeMonitoringScheduleResponse): any => ({ +export namespace DescribeFlowDefinitionResponse { + export const filterSensitiveLog = (obj: DescribeFlowDefinitionResponse): any => ({ ...obj, }); } -export interface DescribeNotebookInstanceInput { +export interface DescribeHumanTaskUiRequest { /** - *

                          The name of the notebook instance that you want information about.

                          + *

                          The name of the human task user interface + * (worker task template) you want information about.

                          */ - NotebookInstanceName: string | undefined; + HumanTaskUiName: string | undefined; } -export namespace DescribeNotebookInstanceInput { - export const filterSensitiveLog = (obj: DescribeNotebookInstanceInput): any => ({ +export namespace DescribeHumanTaskUiRequest { + export const filterSensitiveLog = (obj: DescribeHumanTaskUiRequest): any => ({ ...obj, }); } -export enum NotebookInstanceStatus { - Deleting = "Deleting", - Failed = "Failed", - InService = "InService", - Pending = "Pending", - Stopped = "Stopped", - Stopping = "Stopping", - Updating = "Updating", +export enum HumanTaskUiStatus { + ACTIVE = "Active", + DELETING = "Deleting", } -export interface DescribeNotebookInstanceOutput { +/** + *

                          Container for user interface template information.

                          + */ +export interface UiTemplateInfo { /** - *

                          The Amazon Resource Name (ARN) of the notebook instance.

                          + *

                          The URL for the user interface template.

                          */ - NotebookInstanceArn?: string; + Url?: string; /** - *

                          The name of the Amazon SageMaker notebook instance.

                          + *

                          The SHA-256 digest of the contents of the template.

                          */ - NotebookInstanceName?: string; + ContentSha256?: string; +} - /** - *

                          The status of the notebook instance.

                          - */ - NotebookInstanceStatus?: NotebookInstanceStatus | string; +export namespace UiTemplateInfo { + export const filterSensitiveLog = (obj: UiTemplateInfo): any => ({ + ...obj, + }); +} +export interface DescribeHumanTaskUiResponse { /** - *

                          If status is Failed, the reason it failed.

                          + *

                          The Amazon Resource Name (ARN) of the human task user interface (worker task template).

                          */ - FailureReason?: string; + HumanTaskUiArn: string | undefined; /** - *

                          The URL that you use to connect to the Jupyter notebook that is running in your - * notebook instance.

                          + *

                          The name of the human task user interface (worker task template).

                          */ - Url?: string; + HumanTaskUiName: string | undefined; /** - *

                          The type of ML compute instance running on the notebook instance.

                          + *

                          The status of the human task user interface (worker task template). Valid values are listed below.

                          */ - InstanceType?: _InstanceType | string; + HumanTaskUiStatus?: HumanTaskUiStatus | string; /** - *

                          The ID of the VPC subnet.

                          + *

                          The timestamp when the human task user interface was created.

                          */ - SubnetId?: string; + CreationTime: Date | undefined; /** - *

                          The IDs of the VPC security groups.

                          + *

                          Container for user interface template information.

                          */ - SecurityGroups?: string[]; + UiTemplate: UiTemplateInfo | undefined; +} - /** - *

                          The Amazon Resource Name (ARN) of the IAM role associated with the instance. - *

                          - */ - RoleArn?: string; +export namespace DescribeHumanTaskUiResponse { + export const filterSensitiveLog = (obj: DescribeHumanTaskUiResponse): any => ({ + ...obj, + }); +} +export interface DescribeHyperParameterTuningJobRequest { /** - *

                          The AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage - * volume attached to the instance.

                          + *

                          The name of the tuning job.

                          */ - KmsKeyId?: string; + HyperParameterTuningJobName: string | undefined; +} + +export namespace DescribeHyperParameterTuningJobRequest { + export const filterSensitiveLog = (obj: DescribeHyperParameterTuningJobRequest): any => ({ + ...obj, + }); +} +/** + *

                          Shows the final value for the + * objective + * metric for a training job that was launched by a hyperparameter + * tuning job. You define the objective metric in the + * HyperParameterTuningJobObjective parameter of HyperParameterTuningJobConfig.

                          + */ +export interface FinalHyperParameterTuningJobObjectiveMetric { /** - *

                          The network interface IDs that Amazon SageMaker created at the time of creating the instance. - *

                          + *

                          Whether to + * minimize + * or maximize the objective metric. Valid values are Minimize and + * Maximize.

                          */ - NetworkInterfaceId?: string; + Type?: HyperParameterTuningJobObjectiveType | string; /** - *

                          A timestamp. Use this parameter to retrieve the time when the notebook instance was - * last modified.

                          + *

                          The name of the + * objective + * metric.

                          */ - LastModifiedTime?: Date; + MetricName: string | undefined; /** - *

                          A timestamp. Use this parameter to return the time when the notebook instance was - * created

                          + *

                          The value of the objective metric.

                          */ - CreationTime?: Date; + Value: number | undefined; +} - /** - *

                          Returns the name of a notebook instance lifecycle configuration.

                          - *

                          For information about notebook instance lifestyle configurations, see Step - * 2.1: (Optional) Customize a Notebook Instance - *

                          - */ - NotebookInstanceLifecycleConfigName?: string; +export namespace FinalHyperParameterTuningJobObjectiveMetric { + export const filterSensitiveLog = (obj: FinalHyperParameterTuningJobObjectiveMetric): any => ({ + ...obj, + }); +} - /** - *

                          Describes whether Amazon SageMaker provides internet access to the notebook instance. If this - * value is set to Disabled, the notebook instance does not have - * internet access, and cannot connect to Amazon SageMaker training and endpoint services.

                          - *

                          For more information, see Notebook Instances Are Internet-Enabled by Default.

                          - */ - DirectInternetAccess?: DirectInternetAccess | string; +export enum TrainingJobStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", +} +/** + *

                          Specifies + * summary information about a training job.

                          + */ +export interface HyperParameterTrainingJobSummary { /** - *

                          The size, in GB, of the ML storage volume attached to the notebook instance.

                          + *

                          The training job definition name.

                          */ - VolumeSizeInGB?: number; + TrainingJobDefinitionName?: string; /** - *

                          A list of the Elastic Inference (EI) instance types associated with this notebook - * instance. Currently only one EI instance type can be associated with a notebook - * instance. For more information, see Using Elastic Inference in Amazon - * SageMaker.

                          + *

                          The name of the training job.

                          */ - AcceleratorTypes?: (NotebookInstanceAcceleratorType | string)[]; + TrainingJobName: string | undefined; /** - *

                          The Git repository associated with the notebook instance as its default code - * repository. This can be either the name of a Git repository stored as a resource in your - * account, or the URL of a Git repository in AWS CodeCommit or in any - * other Git repository. When you open a notebook instance, it opens in the directory that - * contains this repository. For more information, see Associating Git Repositories with Amazon SageMaker - * Notebook Instances.

                          + *

                          The + * Amazon + * Resource Name (ARN) of the training job.

                          */ - DefaultCodeRepository?: string; + TrainingJobArn: string | undefined; /** - *

                          An array of up to three Git repositories associated with the notebook instance. These - * can be either the names of Git repositories stored as resources in your account, or the - * URL of Git repositories in AWS CodeCommit or in any - * other Git repository. These repositories are cloned at the same level as the default - * repository of your notebook instance. For more information, see Associating Git - * Repositories with Amazon SageMaker Notebook Instances.

                          + *

                          The HyperParameter tuning job that launched the training job.

                          */ - AdditionalCodeRepositories?: string[]; + TuningJobName?: string; /** - *

                          Whether root access is enabled or disabled for users of the notebook instance.

                          - * - *

                          Lifecycle configurations need root access to be able to set up a notebook - * instance. Because of this, lifecycle configurations associated with a notebook - * instance always run with root access even if you disable root access for - * users.

                          - *
                          + *

                          The date and time that the training job was created.

                          */ - RootAccess?: RootAccess | string; -} - -export namespace DescribeNotebookInstanceOutput { - export const filterSensitiveLog = (obj: DescribeNotebookInstanceOutput): any => ({ - ...obj, - }); -} + CreationTime: Date | undefined; -export interface DescribeNotebookInstanceLifecycleConfigInput { /** - *

                          The name of the lifecycle configuration to describe.

                          + *

                          The date and time that the training job started.

                          */ - NotebookInstanceLifecycleConfigName: string | undefined; -} - -export namespace DescribeNotebookInstanceLifecycleConfigInput { - export const filterSensitiveLog = (obj: DescribeNotebookInstanceLifecycleConfigInput): any => ({ - ...obj, - }); -} + TrainingStartTime?: Date; -export interface DescribeNotebookInstanceLifecycleConfigOutput { /** - *

                          The Amazon Resource Name (ARN) of the lifecycle configuration.

                          + *

                          Specifies the time when the training job ends on training instances. You are billed + * for the time interval between the value of TrainingStartTime and this time. + * For successful jobs and stopped jobs, this is the time after model artifacts are + * uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

                          */ - NotebookInstanceLifecycleConfigArn?: string; + TrainingEndTime?: Date; /** - *

                          The name of the lifecycle configuration.

                          + *

                          The + * status + * of the training job.

                          */ - NotebookInstanceLifecycleConfigName?: string; + TrainingJobStatus: TrainingJobStatus | string | undefined; /** - *

                          The shell script that runs only once, when you create a notebook instance.

                          + *

                          A + * list of the hyperparameters for which you specified ranges to + * search.

                          */ - OnCreate?: NotebookInstanceLifecycleHook[]; + TunedHyperParameters: { [key: string]: string } | undefined; /** - *

                          The shell script that runs every time you start a notebook instance, including when - * you create the notebook instance.

                          + *

                          The + * reason that the training job failed. + *

                          */ - OnStart?: NotebookInstanceLifecycleHook[]; + FailureReason?: string; /** - *

                          A timestamp that tells when the lifecycle configuration was last modified.

                          + *

                          The FinalHyperParameterTuningJobObjectiveMetric object that + * specifies the + * value + * of the + * objective + * metric of the tuning job that launched this training job.

                          */ - LastModifiedTime?: Date; + FinalHyperParameterTuningJobObjectiveMetric?: FinalHyperParameterTuningJobObjectiveMetric; /** - *

                          A timestamp that tells when the lifecycle configuration was created.

                          + *

                          The status of the objective metric for the training job:

                          + *
                            + *
                          • + *

                            Succeeded: The + * final + * objective metric for the training job was evaluated by the + * hyperparameter tuning job and + * used + * in the hyperparameter tuning process.

                            + *
                          • + *
                          + *
                            + *
                          • + *

                            Pending: The training job is in progress and evaluation of its final objective + * metric is pending.

                            + *
                          • + *
                          + *
                            + *
                          • + *

                            Failed: + * The final objective metric for the training job was not evaluated, and was not + * used in the hyperparameter tuning process. This typically occurs when the + * training job failed or did not emit an objective + * metric.

                            + *
                          • + *
                          */ - CreationTime?: Date; + ObjectiveStatus?: ObjectiveStatus | string; } -export namespace DescribeNotebookInstanceLifecycleConfigOutput { - export const filterSensitiveLog = (obj: DescribeNotebookInstanceLifecycleConfigOutput): any => ({ +export namespace HyperParameterTrainingJobSummary { + export const filterSensitiveLog = (obj: HyperParameterTrainingJobSummary): any => ({ ...obj, }); } -export interface DescribePipelineRequest { +export enum HyperParameterTuningJobStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", +} + +/** + *

                          Specifies the number of training jobs that this hyperparameter tuning job launched, + * categorized by the status of their objective metric. The objective metric status shows + * whether the + * final + * objective metric for the training job has been evaluated by the + * tuning job and used in the hyperparameter tuning process.

                          + */ +export interface ObjectiveStatusCounters { /** - *

                          The name of the pipeline to describe.

                          + *

                          The number of training jobs whose final objective metric was evaluated by the + * hyperparameter tuning job and used in the hyperparameter tuning process.

                          */ - PipelineName: string | undefined; + Succeeded?: number; + + /** + *

                          The number of training jobs that are in progress and pending evaluation of their final + * objective metric.

                          + */ + Pending?: number; + + /** + *

                          The number of training jobs whose final objective metric was not evaluated and used in + * the hyperparameter tuning process. This typically occurs when the training job failed or + * did not emit an objective metric.

                          + */ + Failed?: number; } -export namespace DescribePipelineRequest { - export const filterSensitiveLog = (obj: DescribePipelineRequest): any => ({ +export namespace ObjectiveStatusCounters { + export const filterSensitiveLog = (obj: ObjectiveStatusCounters): any => ({ ...obj, }); } -export enum PipelineStatus { - ACTIVE = "Active", -} - -export interface DescribePipelineResponse { +/** + *

                          The numbers of training jobs launched by a hyperparameter tuning job, categorized by + * status.

                          + */ +export interface TrainingJobStatusCounters { /** - *

                          The Amazon Resource Name (ARN) of the pipeline.

                          + *

                          The number of completed training jobs launched by the hyperparameter tuning + * job.

                          */ - PipelineArn?: string; + Completed?: number; /** - *

                          The name of the pipeline.

                          + *

                          The number of in-progress training jobs launched by a hyperparameter tuning + * job.

                          */ - PipelineName?: string; + InProgress?: number; /** - *

                          The display name of the pipeline.

                          + *

                          The number of training jobs that failed, but can be retried. A failed training job can + * be retried only if it failed because an internal service error occurred.

                          */ - PipelineDisplayName?: string; + RetryableError?: number; /** - *

                          The JSON pipeline definition.

                          + *

                          The number of training jobs that failed and can't be retried. A failed training job + * can't be retried if it failed because a client error occurred.

                          */ - PipelineDefinition?: string; + NonRetryableError?: number; /** - *

                          The description of the pipeline.

                          + *

                          The number of training jobs launched by a hyperparameter tuning job that were + * manually + * stopped.

                          */ - PipelineDescription?: string; + Stopped?: number; +} - /** - *

                          The Amazon Resource Name (ARN) that the pipeline uses to execute.

                          - */ - RoleArn?: string; +export namespace TrainingJobStatusCounters { + export const filterSensitiveLog = (obj: TrainingJobStatusCounters): any => ({ + ...obj, + }); +} +export interface DescribeHyperParameterTuningJobResponse { /** - *

                          The status of the pipeline execution.

                          + *

                          The name of the tuning job.

                          */ - PipelineStatus?: PipelineStatus | string; + HyperParameterTuningJobName: string | undefined; /** - *

                          The time when the pipeline was created.

                          + *

                          The + * Amazon Resource Name (ARN) of the tuning job.

                          */ - CreationTime?: Date; + HyperParameterTuningJobArn: string | undefined; /** - *

                          The time when the pipeline was last modified.

                          + *

                          The HyperParameterTuningJobConfig object that specifies the + * configuration of the tuning job.

                          */ - LastModifiedTime?: Date; + HyperParameterTuningJobConfig: HyperParameterTuningJobConfig | undefined; /** - *

                          The time when the pipeline was last run.

                          + *

                          The HyperParameterTrainingJobDefinition object that specifies the + * definition of the training jobs that this tuning job launches.

                          */ - LastRunTime?: Date; + TrainingJobDefinition?: HyperParameterTrainingJobDefinition; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          A list of the HyperParameterTrainingJobDefinition objects launched + * for this tuning job.

                          */ - CreatedBy?: UserContext; + TrainingJobDefinitions?: HyperParameterTrainingJobDefinition[]; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The status of the tuning job: InProgress, Completed, Failed, Stopping, or + * Stopped.

                          */ - LastModifiedBy?: UserContext; -} + HyperParameterTuningJobStatus: HyperParameterTuningJobStatus | string | undefined; -export namespace DescribePipelineResponse { - export const filterSensitiveLog = (obj: DescribePipelineResponse): any => ({ - ...obj, - }); -} + /** + *

                          The date and time that the tuning job started.

                          + */ + CreationTime: Date | undefined; -export interface DescribePipelineDefinitionForExecutionRequest { /** - *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          + *

                          The date and time that the tuning job ended.

                          */ - PipelineExecutionArn: string | undefined; -} + HyperParameterTuningEndTime?: Date; -export namespace DescribePipelineDefinitionForExecutionRequest { - export const filterSensitiveLog = (obj: DescribePipelineDefinitionForExecutionRequest): any => ({ - ...obj, - }); -} + /** + *

                          The date and time that the status of the tuning job was modified.

                          + */ + LastModifiedTime?: Date; -export interface DescribePipelineDefinitionForExecutionResponse { /** - *

                          The JSON pipeline definition.

                          + *

                          The TrainingJobStatusCounters object that specifies the number of + * training jobs, categorized by status, that this tuning job launched.

                          */ - PipelineDefinition?: string; + TrainingJobStatusCounters: TrainingJobStatusCounters | undefined; /** - *

                          The time when the pipeline was created.

                          + *

                          The ObjectiveStatusCounters object that specifies the number of + * training jobs, categorized by the status of their final objective metric, that this + * tuning job launched.

                          */ - CreationTime?: Date; + ObjectiveStatusCounters: ObjectiveStatusCounters | undefined; + + /** + *

                          A TrainingJobSummary object that describes the training job that + * completed with the best current HyperParameterTuningJobObjective.

                          + */ + BestTrainingJob?: HyperParameterTrainingJobSummary; + + /** + *

                          If the hyperparameter tuning job is an warm start tuning job with a + * WarmStartType of IDENTICAL_DATA_AND_ALGORITHM, this is the + * TrainingJobSummary for the training job with the best objective + * metric value of all training jobs launched by this tuning job and all parent jobs + * specified for the warm start tuning job.

                          + */ + OverallBestTrainingJob?: HyperParameterTrainingJobSummary; + + /** + *

                          The configuration for starting the hyperparameter parameter tuning job using one or + * more previous tuning jobs as a starting point. The results of previous tuning jobs are + * used to inform which combinations of hyperparameters to search over in the new tuning + * job.

                          + */ + WarmStartConfig?: HyperParameterTuningJobWarmStartConfig; + + /** + *

                          If the tuning job failed, the reason it failed.

                          + */ + FailureReason?: string; } -export namespace DescribePipelineDefinitionForExecutionResponse { - export const filterSensitiveLog = (obj: DescribePipelineDefinitionForExecutionResponse): any => ({ +export namespace DescribeHyperParameterTuningJobResponse { + export const filterSensitiveLog = (obj: DescribeHyperParameterTuningJobResponse): any => ({ ...obj, }); } -export interface DescribePipelineExecutionRequest { +export interface DescribeImageRequest { /** - *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          + *

                          The name of the image to describe.

                          */ - PipelineExecutionArn: string | undefined; + ImageName: string | undefined; } -export namespace DescribePipelineExecutionRequest { - export const filterSensitiveLog = (obj: DescribePipelineExecutionRequest): any => ({ +export namespace DescribeImageRequest { + export const filterSensitiveLog = (obj: DescribeImageRequest): any => ({ ...obj, }); } -export enum PipelineExecutionStatus { - EXECUTING = "Executing", - FAILED = "Failed", - STOPPED = "Stopped", - STOPPING = "Stopping", - SUCCEEDED = "Succeeded", +export enum ImageStatus { + CREATED = "CREATED", + CREATE_FAILED = "CREATE_FAILED", + CREATING = "CREATING", + DELETE_FAILED = "DELETE_FAILED", + DELETING = "DELETING", + UPDATE_FAILED = "UPDATE_FAILED", + UPDATING = "UPDATING", } -export interface DescribePipelineExecutionResponse { +export interface DescribeImageResponse { /** - *

                          The Amazon Resource Name (ARN) of the pipeline.

                          + *

                          When the image was created.

                          */ - PipelineArn?: string; + CreationTime?: Date; /** - *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          + *

                          The description of the image.

                          */ - PipelineExecutionArn?: string; + Description?: string; /** - *

                          The display name of the pipeline execution.

                          + *

                          The name of the image as displayed.

                          */ - PipelineExecutionDisplayName?: string; + DisplayName?: string; /** - *

                          The status of the pipeline execution.

                          + *

                          When a create, update, or delete operation fails, the reason for the failure.

                          */ - PipelineExecutionStatus?: PipelineExecutionStatus | string; + FailureReason?: string; /** - *

                          The description of the pipeline execution.

                          + *

                          The Amazon Resource Name (ARN) of the image.

                          */ - PipelineExecutionDescription?: string; + ImageArn?: string; /** - *

                          The time when the pipeline execution was created.

                          + *

                          The name of the image.

                          */ - CreationTime?: Date; + ImageName?: string; /** - *

                          The time when the pipeline execution was modified last.

                          + *

                          The status of the image.

                          */ - LastModifiedTime?: Date; + ImageStatus?: ImageStatus | string; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          When the image was last modified.

                          */ - CreatedBy?: UserContext; + LastModifiedTime?: Date; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The Amazon Resource Name (ARN) of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.

                          */ - LastModifiedBy?: UserContext; + RoleArn?: string; } -export namespace DescribePipelineExecutionResponse { - export const filterSensitiveLog = (obj: DescribePipelineExecutionResponse): any => ({ +export namespace DescribeImageResponse { + export const filterSensitiveLog = (obj: DescribeImageResponse): any => ({ ...obj, }); } -export interface DescribeProcessingJobRequest { +export interface DescribeImageVersionRequest { /** - *

                          The name of the processing job. The name must be unique within an AWS Region in the - * AWS account.

                          + *

                          The name of the image.

                          */ - ProcessingJobName: string | undefined; + ImageName: string | undefined; + + /** + *

                          The version of the image. If not specified, the latest version is described.

                          + */ + Version?: number; } -export namespace DescribeProcessingJobRequest { - export const filterSensitiveLog = (obj: DescribeProcessingJobRequest): any => ({ +export namespace DescribeImageVersionRequest { + export const filterSensitiveLog = (obj: DescribeImageVersionRequest): any => ({ ...obj, }); } -export enum ProcessingJobStatus { - COMPLETED = "Completed", - FAILED = "Failed", - IN_PROGRESS = "InProgress", - STOPPED = "Stopped", - STOPPING = "Stopping", +export enum ImageVersionStatus { + CREATED = "CREATED", + CREATE_FAILED = "CREATE_FAILED", + CREATING = "CREATING", + DELETE_FAILED = "DELETE_FAILED", + DELETING = "DELETING", } -export interface DescribeProcessingJobResponse { +export interface DescribeImageVersionResponse { /** - *

                          The inputs for a processing job.

                          + *

                          The registry path of the container image on which this image version is based.

                          */ - ProcessingInputs?: ProcessingInput[]; + BaseImage?: string; /** - *

                          Output configuration for the processing job.

                          + *

                          The registry path of the container image that contains this image version.

                          */ - ProcessingOutputConfig?: ProcessingOutputConfig; + ContainerImage?: string; /** - *

                          The name of the processing job. The name must be unique within an AWS Region in the - * AWS account.

                          + *

                          When the version was created.

                          */ - ProcessingJobName: string | undefined; + CreationTime?: Date; /** - *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a - * processing job. In distributed training, you specify more than one instance.

                          + *

                          When a create or delete operation fails, the reason for the failure.

                          */ - ProcessingResources: ProcessingResources | undefined; + FailureReason?: string; /** - *

                          The time limit for how long the processing job is allowed to run.

                          + *

                          The Amazon Resource Name (ARN) of the image the version is based on.

                          */ - StoppingCondition?: ProcessingStoppingCondition; + ImageArn?: string; /** - *

                          Configures the processing job to run a specified container image.

                          + *

                          The ARN of the version.

                          */ - AppSpecification: AppSpecification | undefined; + ImageVersionArn?: string; /** - *

                          The environment variables set in the Docker container.

                          + *

                          The status of the version.

                          */ - Environment?: { [key: string]: string }; + ImageVersionStatus?: ImageVersionStatus | string; /** - *

                          Networking options for a processing job.

                          + *

                          When the version was last modified.

                          */ - NetworkConfig?: NetworkConfig; + LastModifiedTime?: Date; /** - *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on - * your behalf.

                          + *

                          The version number.

                          */ - RoleArn?: string; + Version?: number; +} + +export namespace DescribeImageVersionResponse { + export const filterSensitiveLog = (obj: DescribeImageVersionResponse): any => ({ + ...obj, + }); +} +export interface DescribeLabelingJobRequest { /** - *

                          The configuration information used to create an experiment.

                          + *

                          The name of the labeling job to return information for.

                          */ - ExperimentConfig?: ExperimentConfig; + LabelingJobName: string | undefined; +} +export namespace DescribeLabelingJobRequest { + export const filterSensitiveLog = (obj: DescribeLabelingJobRequest): any => ({ + ...obj, + }); +} + +/** + *

                          Provides a breakdown of the number of objects labeled.

                          + */ +export interface LabelCounters { /** - *

                          The Amazon Resource Name (ARN) of the processing job.

                          + *

                          The total number of objects labeled.

                          */ - ProcessingJobArn: string | undefined; + TotalLabeled?: number; /** - *

                          Provides the status of a processing job.

                          + *

                          The total number of objects labeled by a human worker.

                          */ - ProcessingJobStatus: ProcessingJobStatus | string | undefined; - - /** - *

                          An optional string, up to one KB in size, that contains metadata from the processing - * container when the processing job exits.

                          - */ - ExitMessage?: string; - - /** - *

                          A string, up to one KB in size, that contains the reason a processing job failed, if - * it failed.

                          - */ - FailureReason?: string; - - /** - *

                          The time at which the processing job completed.

                          - */ - ProcessingEndTime?: Date; - - /** - *

                          The time at which the processing job started.

                          - */ - ProcessingStartTime?: Date; - - /** - *

                          The time at which the processing job was last modified.

                          - */ - LastModifiedTime?: Date; - - /** - *

                          The time at which the processing job was created.

                          - */ - CreationTime: Date | undefined; - - /** - *

                          The ARN of a monitoring schedule for an endpoint associated with this processing - * job.

                          - */ - MonitoringScheduleArn?: string; + HumanLabeled?: number; /** - *

                          The ARN of an AutoML job associated with this processing job.

                          + *

                          The total number of objects labeled by automated data labeling.

                          */ - AutoMLJobArn?: string; + MachineLabeled?: number; /** - *

                          The ARN of a training job associated with this processing job.

                          + *

                          The total number of objects that could not be labeled due to an error.

                          */ - TrainingJobArn?: string; -} - -export namespace DescribeProcessingJobResponse { - export const filterSensitiveLog = (obj: DescribeProcessingJobResponse): any => ({ - ...obj, - }); -} + FailedNonRetryableError?: number; -export interface DescribeProjectInput { /** - *

                          The name of the project to describe.

                          + *

                          The total number of objects not yet labeled.

                          */ - ProjectName: string | undefined; + Unlabeled?: number; } -export namespace DescribeProjectInput { - export const filterSensitiveLog = (obj: DescribeProjectInput): any => ({ +export namespace LabelCounters { + export const filterSensitiveLog = (obj: LabelCounters): any => ({ ...obj, }); } -export enum ProjectStatus { - CREATE_COMPLETED = "CreateCompleted", - CREATE_FAILED = "CreateFailed", - CREATE_IN_PROGRESS = "CreateInProgress", - DELETE_COMPLETED = "DeleteCompleted", - DELETE_FAILED = "DeleteFailed", - DELETE_IN_PROGRESS = "DeleteInProgress", - PENDING = "Pending", -} - /** - *

                          Details of a provisioned service catalog product. For information about service catalog, - * see What is AWS Service - * Catalog.

                          + *

                          Specifies the location of the output produced by the labeling job.

                          */ -export interface ServiceCatalogProvisionedProductDetails { +export interface LabelingJobOutput { /** - *

                          The ID of the provisioned product.

                          + *

                          The Amazon S3 bucket location of the manifest file for labeled data.

                          */ - ProvisionedProductId?: string; + OutputDatasetS3Uri: string | undefined; /** - *

                          The current status of the product.

                          - *
                            - *
                          • - *

                            - * AVAILABLE - Stable state, ready to perform any operation. The most recent operation succeeded and completed.

                            - *
                          • - *
                          • - *

                            - * UNDER_CHANGE - Transitive state. Operations performed might not have valid results. Wait for an AVAILABLE status before performing operations.

                            - *
                          • - *
                          • - *

                            - * TAINTED - Stable state, ready to perform any operation. The stack has completed the requested operation but is not exactly what was requested. For example, a request to update to a new version failed and the stack rolled back to the current version.

                            - *
                          • - *
                          • - *

                            - * ERROR - An unexpected error occurred. The provisioned product exists but the stack is not running. For example, CloudFormation received a parameter value that was not valid and could not launch the stack.

                            - *
                          • - *
                          • - *

                            - * PLAN_IN_PROGRESS - Transitive state. The plan operations were performed to provision a new product, but resources have not yet been created. After reviewing the list of resources to be created, execute the plan. Wait for an AVAILABLE status before performing operations.

                            - *
                          • - *
                          + *

                          The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model trained as part of + * automated data labeling.

                          */ - ProvisionedProductStatusMessage?: string; + FinalActiveLearningModelArn?: string; } -export namespace ServiceCatalogProvisionedProductDetails { - export const filterSensitiveLog = (obj: ServiceCatalogProvisionedProductDetails): any => ({ +export namespace LabelingJobOutput { + export const filterSensitiveLog = (obj: LabelingJobOutput): any => ({ ...obj, }); } -export interface DescribeProjectOutput { - /** - *

                          The Amazon Resource Name (ARN) of the project.

                          - */ - ProjectArn: string | undefined; - - /** - *

                          The name of the project.

                          - */ - ProjectName: string | undefined; - - /** - *

                          The ID of the project.

                          - */ - ProjectId: string | undefined; - - /** - *

                          The description of the project.

                          - */ - ProjectDescription?: string; - - /** - *

                          Information used to provision a service catalog product. For information, see What is AWS Service - * Catalog.

                          - */ - ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails | undefined; +export enum LabelingJobStatus { + COMPLETED = "Completed", + FAILED = "Failed", + INITIALIZING = "Initializing", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", +} +export interface DescribeLabelingJobResponse { /** - *

                          Information about a provisioned service catalog product.

                          + *

                          The processing status of the labeling job.

                          */ - ServiceCatalogProvisionedProductDetails?: ServiceCatalogProvisionedProductDetails; + LabelingJobStatus: LabelingJobStatus | string | undefined; /** - *

                          The status of the project.

                          + *

                          Provides a breakdown of the number of data objects labeled by humans, the number of + * objects labeled by machine, the number of objects than couldn't be labeled, and the + * total number of objects labeled.

                          */ - ProjectStatus: ProjectStatus | string | undefined; + LabelCounters: LabelCounters | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          If the job failed, the reason that it failed.

                          */ - CreatedBy?: UserContext; + FailureReason?: string; /** - *

                          The time when the project was created.

                          + *

                          The date and time that the labeling job was created.

                          */ CreationTime: Date | undefined; -} - -export namespace DescribeProjectOutput { - export const filterSensitiveLog = (obj: DescribeProjectOutput): any => ({ - ...obj, - }); -} - -export interface DescribeSubscribedWorkteamRequest { - /** - *

                          The Amazon Resource Name (ARN) of the subscribed work team to describe.

                          - */ - WorkteamArn: string | undefined; -} - -export namespace DescribeSubscribedWorkteamRequest { - export const filterSensitiveLog = (obj: DescribeSubscribedWorkteamRequest): any => ({ - ...obj, - }); -} -/** - *

                          Describes a work team of a vendor that does the a labelling job.

                          - */ -export interface SubscribedWorkteam { /** - *

                          The Amazon Resource Name (ARN) of the vendor that you have subscribed.

                          + *

                          The date and time that the labeling job was last updated.

                          */ - WorkteamArn: string | undefined; + LastModifiedTime: Date | undefined; /** - *

                          The title of the service provided by the vendor in the Amazon Marketplace.

                          + *

                          A unique identifier for work done as part of a labeling job.

                          */ - MarketplaceTitle?: string; + JobReferenceCode: string | undefined; /** - *

                          The name of the vendor in the Amazon Marketplace.

                          + *

                          The name assigned to the labeling job when it was created.

                          */ - SellerName?: string; + LabelingJobName: string | undefined; /** - *

                          The description of the vendor from the Amazon Marketplace.

                          + *

                          The Amazon Resource Name (ARN) of the labeling job.

                          */ - MarketplaceDescription?: string; + LabelingJobArn: string | undefined; /** - *

                          Marketplace product listing ID.

                          + *

                          The attribute used as the label in the output manifest file.

                          */ - ListingId?: string; -} - -export namespace SubscribedWorkteam { - export const filterSensitiveLog = (obj: SubscribedWorkteam): any => ({ - ...obj, - }); -} + LabelAttributeName?: string; -export interface DescribeSubscribedWorkteamResponse { /** - *

                          A Workteam instance that contains information about the work team.

                          + *

                          Input configuration information for the labeling job, such as the Amazon S3 location of the + * data objects and the location of the manifest file that describes the data + * objects.

                          */ - SubscribedWorkteam: SubscribedWorkteam | undefined; -} - -export namespace DescribeSubscribedWorkteamResponse { - export const filterSensitiveLog = (obj: DescribeSubscribedWorkteamResponse): any => ({ - ...obj, - }); -} + InputConfig: LabelingJobInputConfig | undefined; -export interface DescribeTrainingJobRequest { /** - *

                          The name of the training job.

                          + *

                          The location of the job's output data and the AWS Key Management Service key ID for the key used to + * encrypt the output data, if any.

                          */ - TrainingJobName: string | undefined; -} - -export namespace DescribeTrainingJobRequest { - export const filterSensitiveLog = (obj: DescribeTrainingJobRequest): any => ({ - ...obj, - }); -} + OutputConfig: LabelingJobOutputConfig | undefined; -/** - *

                          The name, value, and date and time of a metric that was emitted to Amazon CloudWatch.

                          - */ -export interface MetricData { /** - *

                          The name of the metric.

                          + *

                          The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on your behalf + * during data labeling.

                          */ - MetricName?: string; + RoleArn: string | undefined; /** - *

                          The value of the metric.

                          - */ - Value?: number; + *

                          The S3 location of the JSON file that defines the categories used to label data + * objects. Please note the following label-category limits:

                          + *
                            + *
                          • + *

                            Semantic segmentation labeling jobs using automated labeling: 20 labels

                            + *
                          • + *
                          • + *

                            Box bounding labeling jobs (all): 10 labels

                            + *
                          • + *
                          + *

                          The file is a JSON structure in the following format:

                          + *

                          + * { + *

                          + *

                          + * "document-version": "2018-11-28" + *

                          + *

                          + * "labels": [ + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label 1" + *

                          + *

                          + * }, + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label 2" + *

                          + *

                          + * }, + *

                          + *

                          + * ... + *

                          + *

                          + * { + *

                          + *

                          + * "label": "label n" + *

                          + *

                          + * } + *

                          + *

                          + * ] + *

                          + *

                          + * } + *

                          + */ + LabelCategoryConfigS3Uri?: string; /** - *

                          The date and time that the algorithm emitted the metric.

                          + *

                          A set of conditions for stopping a labeling job. If any of the conditions are met, the + * job is automatically stopped.

                          */ - Timestamp?: Date; + StoppingConditions?: LabelingJobStoppingConditions; + + /** + *

                          Configuration information for automated data labeling.

                          + */ + LabelingJobAlgorithmsConfig?: LabelingJobAlgorithmsConfig; + + /** + *

                          Configuration information required for human workers to complete a labeling + * task.

                          + */ + HumanTaskConfig: HumanTaskConfig | undefined; + + /** + *

                          An array of key-value pairs. You can use tags to categorize your AWS resources in + * different ways, for example, by purpose, owner, or environment. For more information, + * see Tagging AWS + * Resources.

                          + */ + Tags?: Tag[]; + + /** + *

                          The location of the output produced by the labeling job.

                          + */ + LabelingJobOutput?: LabelingJobOutput; } -export namespace MetricData { - export const filterSensitiveLog = (obj: MetricData): any => ({ +export namespace DescribeLabelingJobResponse { + export const filterSensitiveLog = (obj: DescribeLabelingJobResponse): any => ({ ...obj, }); } -export enum SecondaryStatus { +export interface DescribeModelInput { + /** + *

                          The name of the model.

                          + */ + ModelName: string | undefined; +} + +export namespace DescribeModelInput { + export const filterSensitiveLog = (obj: DescribeModelInput): any => ({ + ...obj, + }); +} + +export interface DescribeModelOutput { + /** + *

                          Name of the Amazon SageMaker model.

                          + */ + ModelName: string | undefined; + + /** + *

                          The location of the primary inference code, associated artifacts, and custom + * environment map that the inference code uses when it is deployed in production. + *

                          + */ + PrimaryContainer?: ContainerDefinition; + + /** + *

                          The containers in the inference pipeline.

                          + */ + Containers?: ContainerDefinition[]; + + /** + *

                          The Amazon Resource Name (ARN) of the IAM role that you specified for the + * model.

                          + */ + ExecutionRoleArn: string | undefined; + + /** + *

                          A VpcConfig object that specifies the VPC that this model has access + * to. For more information, see Protect Endpoints by Using an Amazon Virtual + * Private Cloud + *

                          + */ + VpcConfig?: VpcConfig; + + /** + *

                          A timestamp that shows when the model was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the model.

                          + */ + ModelArn: string | undefined; + + /** + *

                          If True, no inbound or outbound network calls can be made to or from the + * model container.

                          + */ + EnableNetworkIsolation?: boolean; +} + +export namespace DescribeModelOutput { + export const filterSensitiveLog = (obj: DescribeModelOutput): any => ({ + ...obj, + }); +} + +export interface DescribeModelBiasJobDefinitionRequest { + /** + *

                          The name of the model bias job definition. The name must be unique within an AWS Region + * in the AWS account.

                          + */ + JobDefinitionName: string | undefined; +} + +export namespace DescribeModelBiasJobDefinitionRequest { + export const filterSensitiveLog = (obj: DescribeModelBiasJobDefinitionRequest): any => ({ + ...obj, + }); +} + +export interface DescribeModelBiasJobDefinitionResponse { + /** + *

                          The Amazon Resource Name (ARN) of the model bias job.

                          + */ + JobDefinitionArn: string | undefined; + + /** + *

                          The name of the bias job definition. The name must be unique within an AWS Region in the + * AWS account.

                          + */ + JobDefinitionName: string | undefined; + + /** + *

                          The time at which the model bias job was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The baseline configuration for a model bias job.

                          + */ + ModelBiasBaselineConfig?: ModelBiasBaselineConfig; + + /** + *

                          Configures the model bias job to run a specified Docker container image.

                          + */ + ModelBiasAppSpecification: ModelBiasAppSpecification | undefined; + + /** + *

                          Inputs for the model bias job.

                          + */ + ModelBiasJobInput: ModelBiasJobInput | undefined; + + /** + *

                          The output configuration for monitoring jobs.

                          + */ + ModelBiasJobOutputConfig: MonitoringOutputConfig | undefined; + + /** + *

                          Identifies the resources to deploy for a monitoring job.

                          + */ + JobResources: MonitoringResources | undefined; + + /** + *

                          Networking options for a model bias job.

                          + */ + NetworkConfig?: MonitoringNetworkConfig; + + /** + *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that + * has read permission to the input data location and write permission to the output data + * location in Amazon S3.

                          + */ + RoleArn: string | undefined; + + /** + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          + */ + StoppingCondition?: MonitoringStoppingCondition; +} + +export namespace DescribeModelBiasJobDefinitionResponse { + export const filterSensitiveLog = (obj: DescribeModelBiasJobDefinitionResponse): any => ({ + ...obj, + }); +} + +export interface DescribeModelExplainabilityJobDefinitionRequest { + /** + *

                          The name of the model explainability job definition. The name must be unique within an + * AWS Region in the AWS account.

                          + */ + JobDefinitionName: string | undefined; +} + +export namespace DescribeModelExplainabilityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DescribeModelExplainabilityJobDefinitionRequest): any => ({ + ...obj, + }); +} + +export interface DescribeModelExplainabilityJobDefinitionResponse { + /** + *

                          The Amazon Resource Name (ARN) of the model explainability job.

                          + */ + JobDefinitionArn: string | undefined; + + /** + *

                          The name of the explainability job definition. The name must be unique within an AWS + * Region in the AWS account.

                          + */ + JobDefinitionName: string | undefined; + + /** + *

                          The time at which the model explainability job was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The baseline configuration for a model explainability job.

                          + */ + ModelExplainabilityBaselineConfig?: ModelExplainabilityBaselineConfig; + + /** + *

                          Configures the model explainability job to run a specified Docker container + * image.

                          + */ + ModelExplainabilityAppSpecification: ModelExplainabilityAppSpecification | undefined; + + /** + *

                          Inputs for the model explainability job.

                          + */ + ModelExplainabilityJobInput: ModelExplainabilityJobInput | undefined; + + /** + *

                          The output configuration for monitoring jobs.

                          + */ + ModelExplainabilityJobOutputConfig: MonitoringOutputConfig | undefined; + + /** + *

                          Identifies the resources to deploy for a monitoring job.

                          + */ + JobResources: MonitoringResources | undefined; + + /** + *

                          Networking options for a model explainability job.

                          + */ + NetworkConfig?: MonitoringNetworkConfig; + + /** + *

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that + * has read permission to the input data location and write permission to the output data + * location in Amazon S3.

                          + */ + RoleArn: string | undefined; + + /** + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          + */ + StoppingCondition?: MonitoringStoppingCondition; +} + +export namespace DescribeModelExplainabilityJobDefinitionResponse { + export const filterSensitiveLog = (obj: DescribeModelExplainabilityJobDefinitionResponse): any => ({ + ...obj, + }); +} + +export interface DescribeModelPackageInput { + /** + *

                          The name of the model package to describe.

                          + */ + ModelPackageName: string | undefined; +} + +export namespace DescribeModelPackageInput { + export const filterSensitiveLog = (obj: DescribeModelPackageInput): any => ({ + ...obj, + }); +} + +export enum ModelPackageStatus { COMPLETED = "Completed", - DOWNLOADING = "Downloading", - DOWNLOADING_TRAINING_IMAGE = "DownloadingTrainingImage", + DELETING = "Deleting", FAILED = "Failed", - INTERRUPTED = "Interrupted", - LAUNCHING_ML_INSTANCES = "LaunchingMLInstances", - MAX_RUNTIME_EXCEEDED = "MaxRuntimeExceeded", - MAX_WAIT_TIME_EXCEEDED = "MaxWaitTimeExceeded", - PREPARING_TRAINING_STACK = "PreparingTrainingStack", - STARTING = "Starting", - STOPPED = "Stopped", - STOPPING = "Stopping", - TRAINING = "Training", - UPDATING = "Updating", - UPLOADING = "Uploading", + IN_PROGRESS = "InProgress", + PENDING = "Pending", +} + +export enum DetailedModelPackageStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + NOT_STARTED = "NotStarted", } /** - *

                          An array element of DescribeTrainingJobResponse$SecondaryStatusTransitions. It provides - * additional details about a status that the training job has transitioned through. A - * training job can be in one of several states, for example, starting, downloading, - * training, or uploading. Within each state, there are a number of intermediate states. - * For example, within the starting state, Amazon SageMaker could be starting the training job or - * launching the ML instances. These transitional states are referred to as the job's - * secondary - * status. - *

                          - *

                          + *

                          Represents the overall status of a model package.

                          */ -export interface SecondaryStatusTransition { +export interface ModelPackageStatusItem { /** - *

                          Contains a secondary status information from a training - * job.

                          - *

                          Status might be one of the following secondary statuses:

                          - *
                          - *
                          InProgress
                          - *
                          - *
                            - *
                          • - *

                            - * Starting - * - Starting the training job.

                            - *
                          • - *
                          • - *

                            - * Downloading - An optional stage for algorithms that - * support File training input mode. It indicates that - * data is being downloaded to the ML storage volumes.

                            - *
                          • - *
                          • - *

                            - * Training - Training is in progress.

                            - *
                          • - *
                          • - *

                            - * Uploading - Training is complete and the model - * artifacts are being uploaded to the S3 location.

                            - *
                          • - *
                          - *
                          - *
                          Completed
                          - *
                          - *
                            - *
                          • - *

                            - * Completed - The training job has completed.

                            - *
                          • - *
                          - *
                          - *
                          Failed
                          - *
                          - *
                            - *
                          • - *

                            - * Failed - The training job has failed. The reason for - * the failure is returned in the FailureReason field of - * DescribeTrainingJobResponse.

                            - *
                          • - *
                          - *
                          - *
                          Stopped
                          - *
                          - *
                            - *
                          • - *

                            - * MaxRuntimeExceeded - The job stopped because it - * exceeded the maximum allowed runtime.

                            - *
                          • - *
                          • - *

                            - * Stopped - The training job has stopped.

                            - *
                          • - *
                          - *
                          - *
                          Stopping
                          - *
                          - *
                            - *
                          • - *

                            - * Stopping - Stopping the training job.

                            - *
                          • - *
                          - *
                          - *
                          - *

                          We no longer support the following secondary statuses:

                          - *
                            - *
                          • - *

                            - * LaunchingMLInstances - *

                            - *
                          • - *
                          • - *

                            - * PreparingTrainingStack - *

                            - *
                          • - *
                          • - *

                            - * DownloadingTrainingImage - *

                            - *
                          • - *
                          + *

                          The name of the model package for which the overall status is being reported.

                          */ - Status: SecondaryStatus | string | undefined; + Name: string | undefined; /** - *

                          A timestamp that shows when the training job transitioned to the current secondary - * status state.

                          + *

                          The current status.

                          */ - StartTime: Date | undefined; + Status: DetailedModelPackageStatus | string | undefined; /** - *

                          A timestamp that shows when the training job transitioned out of this secondary status - * state into another secondary status state or when the training job has ended.

                          + *

                          if the overall status is Failed, the reason for the failure.

                          */ - EndTime?: Date; + FailureReason?: string; +} + +export namespace ModelPackageStatusItem { + export const filterSensitiveLog = (obj: ModelPackageStatusItem): any => ({ + ...obj, + }); +} +/** + *

                          Specifies the validation and image scan statuses of the model package.

                          + */ +export interface ModelPackageStatusDetails { /** - *

                          A detailed description of the progress within a secondary status. - *

                          - *

                          Amazon SageMaker provides secondary statuses and status messages that apply to each of - * them:

                          - *
                          - *
                          Starting
                          - *
                          - *
                            - *
                          • - *

                            Starting the training job.

                            - *
                          • - *
                          • - *

                            Launching - * requested ML instances.

                            - *
                          • - *
                          • - *

                            Insufficient - * capacity error from EC2 while launching instances, - * retrying!

                            - *
                          • - *
                          • - *

                            Launched - * instance was unhealthy, replacing it!

                            - *
                          • - *
                          • - *

                            Preparing the instances for training.

                            - *
                          • - *
                          - *
                          - *
                          Training
                          - *
                          - *
                            - *
                          • - *

                            Downloading the training image.

                            - *
                          • - *
                          • - *

                            Training - * image download completed. Training in - * progress.

                            - *
                          • - *
                          - *
                          - *
                          - * - *

                          Status messages are subject to change. Therefore, we recommend not including them - * in code that programmatically initiates actions. For examples, don't use status - * messages in if statements.

                          - *
                          - *

                          To have an overview of your training job's progress, view - * TrainingJobStatus and SecondaryStatus in DescribeTrainingJob, and StatusMessage together. For - * example, at the start of a training job, you might see the following:

                          - *
                            - *
                          • - *

                            - * TrainingJobStatus - InProgress

                            - *
                          • - *
                          • - *

                            - * SecondaryStatus - Training

                            - *
                          • - *
                          • - *

                            - * StatusMessage - Downloading the training image

                            - *
                          • - *
                          + *

                          The validation status of the model package.

                          */ - StatusMessage?: string; + ValidationStatuses: ModelPackageStatusItem[] | undefined; + + /** + *

                          The status of the scan of the Docker image container for the model package.

                          + */ + ImageScanStatuses?: ModelPackageStatusItem[]; } -export namespace SecondaryStatusTransition { - export const filterSensitiveLog = (obj: SecondaryStatusTransition): any => ({ +export namespace ModelPackageStatusDetails { + export const filterSensitiveLog = (obj: ModelPackageStatusDetails): any => ({ ...obj, }); } -export interface DescribeTrainingJobResponse { +export interface DescribeModelPackageOutput { /** - *

                          Name of the model training job.

                          + *

                          The name of the model package being described.

                          */ - TrainingJobName: string | undefined; + ModelPackageName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the training job.

                          + *

                          If the model is a versioned model, the name of the model group that the versioned + * model belongs to.

                          */ - TrainingJobArn: string | undefined; + ModelPackageGroupName?: string; /** - *

                          The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the - * training job was launched by a hyperparameter tuning job.

                          + *

                          The version of the model package.

                          */ - TuningJobArn?: string; + ModelPackageVersion?: number; /** - *

                          The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the - * transform or training job.

                          + *

                          The Amazon Resource Name (ARN) of the model package.

                          */ - LabelingJobArn?: string; + ModelPackageArn: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of an AutoML job.

                          + *

                          A brief summary of the model package.

                          */ - AutoMLJobArn?: string; + ModelPackageDescription?: string; /** - *

                          Information about the Amazon S3 location that is configured for storing model artifacts. - *

                          + *

                          A timestamp specifying when the model package was created.

                          */ - ModelArtifacts: ModelArtifacts | undefined; + CreationTime: Date | undefined; /** - *

                          The status of the - * training - * job.

                          - *

                          Amazon SageMaker provides the following training job statuses:

                          - *
                            - *
                          • - *

                            - * InProgress - The training is in progress.

                            - *
                          • - *
                          • - *

                            - * Completed - The training job has completed.

                            - *
                          • - *
                          • - *

                            - * Failed - The training job has failed. To see the reason for the - * failure, see the FailureReason field in the response to a - * DescribeTrainingJobResponse call.

                            - *
                          • - *
                          • - *

                            - * Stopping - The training job is stopping.

                            - *
                          • - *
                          • - *

                            - * Stopped - The training job has stopped.

                            - *
                          • - *
                          - *

                          For - * more detailed information, see SecondaryStatus.

                          + *

                          Details about inference jobs that can be run with models based on this model + * package.

                          */ - TrainingJobStatus: TrainingJobStatus | string | undefined; + InferenceSpecification?: InferenceSpecification; /** - *

                          Provides detailed information about the state of the training job. For detailed - * information on the secondary status of the training job, see StatusMessage - * under SecondaryStatusTransition.

                          - *

                          Amazon SageMaker provides primary statuses and secondary statuses that apply to each of - * them:

                          - *
                          - *
                          InProgress
                          - *
                          - *
                            - *
                          • - *

                            - * Starting - * - Starting the training job.

                            - *
                          • - *
                          • - *

                            - * Downloading - An optional stage for algorithms that - * support File training input mode. It indicates that - * data is being downloaded to the ML storage volumes.

                            - *
                          • - *
                          • - *

                            - * Training - Training is in progress.

                            - *
                          • - *
                          • - *

                            - * Interrupted - The job stopped because the managed - * spot training instances were interrupted.

                            - *
                          • - *
                          • - *

                            - * Uploading - Training is complete and the model - * artifacts are being uploaded to the S3 location.

                            - *
                          • - *
                          - *
                          - *
                          Completed
                          - *
                          - *
                            - *
                          • - *

                            - * Completed - The training job has completed.

                            - *
                          • - *
                          - *
                          - *
                          Failed
                          - *
                          - *
                            - *
                          • - *

                            - * Failed - The training job has failed. The reason for - * the failure is returned in the FailureReason field of - * DescribeTrainingJobResponse.

                            - *
                          • - *
                          - *
                          - *
                          Stopped
                          - *
                          - *
                            - *
                          • - *

                            - * MaxRuntimeExceeded - The job stopped because it - * exceeded the maximum allowed runtime.

                            - *
                          • - *
                          • - *

                            - * MaxWaitTimeExceeded - The job stopped because it - * exceeded the maximum allowed wait time.

                            - *
                          • - *
                          • - *

                            - * Stopped - The training job has stopped.

                            - *
                          • - *
                          - *
                          - *
                          Stopping
                          - *
                          - *
                            - *
                          • - *

                            - * Stopping - Stopping the training job.

                            - *
                          • - *
                          - *
                          - *
                          - * - * - *

                          Valid values for SecondaryStatus are subject to change.

                          - *
                          - *

                          We no longer support the following secondary statuses:

                          - *
                            - *
                          • - *

                            - * LaunchingMLInstances - *

                            - *
                          • - *
                          • - *

                            - * PreparingTrainingStack - *

                            - *
                          • - *
                          • - *

                            - * DownloadingTrainingImage - *

                            - *
                          • - *
                          + *

                          Details about the algorithm that was used to create the model package.

                          */ - SecondaryStatus: SecondaryStatus | string | undefined; + SourceAlgorithmSpecification?: SourceAlgorithmSpecification; /** - *

                          If the training job failed, the reason it failed.

                          + *

                          Configurations for one or more transform jobs that Amazon SageMaker runs to test the model + * package.

                          */ - FailureReason?: string; + ValidationSpecification?: ModelPackageValidationSpecification; /** - *

                          Algorithm-specific parameters.

                          + *

                          The current status of the model package.

                          */ - HyperParameters?: { [key: string]: string }; + ModelPackageStatus: ModelPackageStatus | string | undefined; /** - *

                          Information about the algorithm used for training, and algorithm metadata. - *

                          + *

                          Details about the current status of the model package.

                          */ - AlgorithmSpecification: AlgorithmSpecification | undefined; + ModelPackageStatusDetails: ModelPackageStatusDetails | undefined; /** - *

                          The AWS Identity and Access Management (IAM) role configured for the training job.

                          + *

                          Whether the model package is certified for listing on AWS Marketplace.

                          */ - RoleArn?: string; + CertifyForMarketplace?: boolean; /** - *

                          An array of Channel objects that describes each data input channel. - *

                          + *

                          The approval status of the model package.

                          */ - InputDataConfig?: Channel[]; + ModelApprovalStatus?: ModelApprovalStatus | string; /** - *

                          The S3 path where model artifacts that you configured when creating the job are - * stored. Amazon SageMaker creates subfolders for model artifacts.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - OutputDataConfig?: OutputDataConfig; + CreatedBy?: UserContext; + + /** + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + */ + MetadataProperties?: MetadataProperties; + + /** + *

                          Metrics for the model.

                          + */ + ModelMetrics?: ModelMetrics; + + /** + *

                          The last time the model package was modified.

                          + */ + LastModifiedTime?: Date; + + /** + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          + */ + LastModifiedBy?: UserContext; + + /** + *

                          A description provided for the model approval.

                          + */ + ApprovalDescription?: string; +} + +export namespace DescribeModelPackageOutput { + export const filterSensitiveLog = (obj: DescribeModelPackageOutput): any => ({ + ...obj, + }); +} + +export interface DescribeModelPackageGroupInput { + /** + *

                          The name of the model group to describe.

                          + */ + ModelPackageGroupName: string | undefined; +} + +export namespace DescribeModelPackageGroupInput { + export const filterSensitiveLog = (obj: DescribeModelPackageGroupInput): any => ({ + ...obj, + }); +} + +export enum ModelPackageGroupStatus { + COMPLETED = "Completed", + DELETE_FAILED = "DeleteFailed", + DELETING = "Deleting", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + PENDING = "Pending", +} +export interface DescribeModelPackageGroupOutput { /** - *

                          Resources, including ML compute instances and ML storage volumes, that are - * configured for model training.

                          + *

                          The name of the model group.

                          */ - ResourceConfig: ResourceConfig | undefined; + ModelPackageGroupName: string | undefined; /** - *

                          A VpcConfig object that specifies the VPC that this training job has - * access to. For more information, see Protect Training Jobs by Using an Amazon - * Virtual Private Cloud.

                          + *

                          The Amazon Resource Name (ARN) of the model group.

                          */ - VpcConfig?: VpcConfig; + ModelPackageGroupArn: string | undefined; /** - *

                          Specifies a limit to how long a model training job can run. It also specifies the - * maximum time to wait for a spot instance. When the job reaches the time limit, Amazon SageMaker ends - * the training job. Use this API to cap model training costs.

                          - *

                          To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays - * job termination for 120 seconds. Algorithms can use this 120-second window to save the - * model artifacts, so the results of training are not lost.

                          + *

                          A description of the model group.

                          */ - StoppingCondition: StoppingCondition | undefined; + ModelPackageGroupDescription?: string; /** - *

                          A timestamp that indicates when the training job was created.

                          + *

                          The time that the model group was created.

                          */ CreationTime: Date | undefined; /** - *

                          Indicates the time when the training job starts on training instances. You are - * billed for the time interval between this time and the value of - * TrainingEndTime. The start time in CloudWatch Logs might be later than this time. - * The difference is due to the time it takes to download the training data and to the size - * of the training container.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - TrainingStartTime?: Date; + CreatedBy: UserContext | undefined; /** - *

                          Indicates the time when the training job ends on training instances. You are billed - * for the time interval between the value of TrainingStartTime and this time. - * For successful jobs and stopped jobs, this is the time after model artifacts are - * uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

                          + *

                          The status of the model group.

                          */ - TrainingEndTime?: Date; + ModelPackageGroupStatus: ModelPackageGroupStatus | string | undefined; +} - /** - *

                          A timestamp that indicates when the status of the training job was last - * modified.

                          - */ - LastModifiedTime?: Date; +export namespace DescribeModelPackageGroupOutput { + export const filterSensitiveLog = (obj: DescribeModelPackageGroupOutput): any => ({ + ...obj, + }); +} +export interface DescribeModelQualityJobDefinitionRequest { /** - *

                          A history of all of the secondary statuses that the training job has transitioned - * through.

                          + *

                          The name of the model quality job. The name must be unique within an AWS Region in the + * AWS account.

                          */ - SecondaryStatusTransitions?: SecondaryStatusTransition[]; + JobDefinitionName: string | undefined; +} - /** - *

                          A collection of MetricData objects that specify the names, values, and - * dates and times that the training algorithm emitted to Amazon CloudWatch.

                          - */ - FinalMetricDataList?: MetricData[]; +export namespace DescribeModelQualityJobDefinitionRequest { + export const filterSensitiveLog = (obj: DescribeModelQualityJobDefinitionRequest): any => ({ + ...obj, + }); +} +export interface DescribeModelQualityJobDefinitionResponse { /** - *

                          If you want to allow inbound or outbound network calls, except for calls between peers - * within a training cluster for distributed training, choose True. If you - * enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker - * downloads and uploads customer data and model artifacts through the specified VPC, but - * the training container does not have network access.

                          + *

                          The Amazon Resource Name (ARN) of the model quality job.

                          */ - EnableNetworkIsolation?: boolean; + JobDefinitionArn: string | undefined; /** - *

                          To encrypt all communications between ML compute instances in distributed training, - * choose True. Encryption provides greater security for distributed training, - * but training might take longer. How long it takes depends on the amount of communication - * between compute instances, especially if you use a deep learning algorithms in - * distributed training.

                          + *

                          The name of the quality job definition. The name must be unique within an AWS Region in + * the AWS account.

                          */ - EnableInterContainerTrafficEncryption?: boolean; + JobDefinitionName: string | undefined; /** - *

                          A Boolean indicating whether managed spot training is enabled (True) or - * not (False).

                          + *

                          The time at which the model quality job was created.

                          */ - EnableManagedSpotTraining?: boolean; + CreationTime: Date | undefined; /** - *

                          Contains information about the output location for managed spot training checkpoint - * data.

                          + *

                          The baseline configuration for a model quality job.

                          */ - CheckpointConfig?: CheckpointConfig; + ModelQualityBaselineConfig?: ModelQualityBaselineConfig; /** - *

                          The training time in seconds.

                          + *

                          Configures the model quality job to run a specified Docker container image.

                          */ - TrainingTimeInSeconds?: number; + ModelQualityAppSpecification: ModelQualityAppSpecification | undefined; /** - *

                          The billable time in seconds.

                          - *

                          You can calculate the savings from using managed spot training using the formula - * (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example, - * if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is - * 500, the savings is 80%.

                          + *

                          Inputs for the model quality job.

                          */ - BillableTimeInSeconds?: number; + ModelQualityJobInput: ModelQualityJobInput | undefined; /** - *

                          Configuration information for the debug hook parameters, collection configuration, and - * storage paths.

                          + *

                          The output configuration for monitoring jobs.

                          */ - DebugHookConfig?: DebugHookConfig; + ModelQualityJobOutputConfig: MonitoringOutputConfig | undefined; /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          Identifies the resources to deploy for a monitoring job.

                          */ - ExperimentConfig?: ExperimentConfig; + JobResources: MonitoringResources | undefined; /** - *

                          Configuration information for debugging rules.

                          + *

                          Networking options for a model quality job.

                          */ - DebugRuleConfigurations?: DebugRuleConfiguration[]; + NetworkConfig?: MonitoringNetworkConfig; /** - *

                          Configuration of storage locations for TensorBoard output.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to + * perform tasks on your behalf.

                          */ - TensorBoardOutputConfig?: TensorBoardOutputConfig; + RoleArn: string | undefined; /** - *

                          Status about the debug rule evaluation.

                          + *

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          */ - DebugRuleEvaluationStatuses?: DebugRuleEvaluationStatus[]; + StoppingCondition?: MonitoringStoppingCondition; } -export namespace DescribeTrainingJobResponse { - export const filterSensitiveLog = (obj: DescribeTrainingJobResponse): any => ({ +export namespace DescribeModelQualityJobDefinitionResponse { + export const filterSensitiveLog = (obj: DescribeModelQualityJobDefinitionResponse): any => ({ ...obj, }); } -export interface DescribeTransformJobRequest { +export interface DescribeMonitoringScheduleRequest { /** - *

                          The name of the transform job that you want to view details of.

                          + *

                          Name of a previously created monitoring schedule.

                          */ - TransformJobName: string | undefined; + MonitoringScheduleName: string | undefined; } -export namespace DescribeTransformJobRequest { - export const filterSensitiveLog = (obj: DescribeTransformJobRequest): any => ({ +export namespace DescribeMonitoringScheduleRequest { + export const filterSensitiveLog = (obj: DescribeMonitoringScheduleRequest): any => ({ ...obj, }); } -export enum TransformJobStatus { +export enum ExecutionStatus { COMPLETED = "Completed", + COMPLETED_WITH_VIOLATIONS = "CompletedWithViolations", FAILED = "Failed", IN_PROGRESS = "InProgress", + PENDING = "Pending", STOPPED = "Stopped", STOPPING = "Stopping", } -export interface DescribeTransformJobResponse { +/** + *

                          Summary of information about the last monitoring job to run.

                          + */ +export interface MonitoringExecutionSummary { /** - *

                          The name of the transform job.

                          + *

                          The name of the monitoring schedule.

                          */ - TransformJobName: string | undefined; + MonitoringScheduleName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the transform job.

                          + *

                          The time the monitoring job was scheduled.

                          */ - TransformJobArn: string | undefined; + ScheduledTime: Date | undefined; /** - *

                          The - * status of the transform job. If the transform job failed, the reason - * is returned in the FailureReason field.

                          + *

                          The time at which the monitoring job was created.

                          */ - TransformJobStatus: TransformJobStatus | string | undefined; + CreationTime: Date | undefined; /** - *

                          If the transform job failed, FailureReason describes - * why - * it failed. A transform job creates a log file, which includes error - * messages, and stores it - * as - * an Amazon S3 object. For more information, see Log Amazon SageMaker Events with - * Amazon CloudWatch.

                          + *

                          A timestamp that indicates the last time the monitoring job was modified.

                          */ - FailureReason?: string; + LastModifiedTime: Date | undefined; /** - *

                          The name of the model used in the transform job.

                          + *

                          The status of the monitoring job.

                          */ - ModelName: string | undefined; + MonitoringExecutionStatus: ExecutionStatus | string | undefined; /** - *

                          The - * maximum number - * of - * parallel requests on each instance node - * that can be launched in a transform job. The default value is 1.

                          + *

                          The Amazon Resource Name (ARN) of the monitoring job.

                          */ - MaxConcurrentTransforms?: number; + ProcessingJobArn?: string; /** - *

                          The timeout and maximum number of retries for processing a transform job - * invocation.

                          + *

                          The name of the endpoint used to run the monitoring job.

                          */ - ModelClientConfig?: ModelClientConfig; + EndpointName?: string; /** - *

                          The - * maximum - * payload size, in MB, used in the - * transform job.

                          + *

                          Contains the reason a monitoring job failed, if it failed.

                          */ - MaxPayloadInMB?: number; + FailureReason?: string; /** - *

                          Specifies the number of records to include in a mini-batch for an HTTP inference - * request. - * A record - * is a single unit of input data that inference - * can be made on. For example, a single line in a CSV file is a record.

                          - *

                          To enable the batch strategy, you must set SplitType - * to - * Line, RecordIO, or - * TFRecord.

                          + *

                          The name of the monitoring job.

                          */ - BatchStrategy?: BatchStrategy | string; + MonitoringJobDefinitionName?: string; /** - *

                          The - * environment variables to set in the Docker container. We support up to 16 key and values - * entries in the map.

                          + *

                          The type of the monitoring job.

                          */ - Environment?: { [key: string]: string }; + MonitoringType?: MonitoringType | string; +} + +export namespace MonitoringExecutionSummary { + export const filterSensitiveLog = (obj: MonitoringExecutionSummary): any => ({ + ...obj, + }); +} + +export enum ScheduleStatus { + FAILED = "Failed", + PENDING = "Pending", + SCHEDULED = "Scheduled", + STOPPED = "Stopped", +} +export interface DescribeMonitoringScheduleResponse { /** - *

                          Describes the dataset to be transformed and the Amazon S3 location where it is - * stored.

                          + *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          */ - TransformInput: TransformInput | undefined; + MonitoringScheduleArn: string | undefined; /** - *

                          Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the - * transform job.

                          + *

                          Name of the monitoring schedule.

                          */ - TransformOutput?: TransformOutput; + MonitoringScheduleName: string | undefined; /** - *

                          Describes - * the resources, including ML instance types and ML instance count, to - * use for the transform job.

                          + *

                          The status of an monitoring job.

                          */ - TransformResources: TransformResources | undefined; + MonitoringScheduleStatus: ScheduleStatus | string | undefined; /** - *

                          A timestamp that shows when the transform Job was created.

                          + *

                          The type of the monitoring job that this schedule runs. This is one of the following + * values.

                          + *
                            + *
                          • + *

                            + * DATA_QUALITY - The schedule is for a data quality monitoring + * job.

                            + *
                          • + *
                          • + *

                            + * MODEL_QUALITY - The schedule is for a model quality monitoring + * job.

                            + *
                          • + *
                          • + *

                            + * MODEL_BIAS - The schedule is for a bias monitoring job.

                            + *
                          • + *
                          • + *

                            + * MODEL_EXPLAINABILITY - The schedule is for an explainability + * monitoring job.

                            + *
                          • + *
                          */ - CreationTime: Date | undefined; + MonitoringType?: MonitoringType | string; /** - *

                          Indicates when the transform job starts - * on - * ML instances. You are billed for the time interval between this time - * and the value of TransformEndTime.

                          + *

                          A string, up to one KB in size, that contains the reason a monitoring job failed, if it + * failed.

                          */ - TransformStartTime?: Date; + FailureReason?: string; /** - *

                          Indicates when the transform job has been - * - * completed, or has stopped or failed. You are billed for the time - * interval between this time and the value of TransformStartTime.

                          + *

                          The time at which the monitoring job was created.

                          */ - TransformEndTime?: Date; + CreationTime: Date | undefined; /** - *

                          The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the - * transform or training job.

                          + *

                          The time at which the monitoring job was last modified.

                          */ - LabelingJobArn?: string; + LastModifiedTime: Date | undefined; /** - *

                          The Amazon Resource Name (ARN) of the AutoML transform job.

                          + *

                          The configuration object that specifies the monitoring schedule and defines the + * monitoring job.

                          */ - AutoMLJobArn?: string; + MonitoringScheduleConfig: MonitoringScheduleConfig | undefined; /** - *

                          The data structure used to specify the data to be used for inference in a batch - * transform job and to associate the data that is relevant to the prediction results in - * the output. The input filter provided allows you to exclude input data that is not - * needed for inference in a batch transform job. The output filter provided allows you to - * include input data relevant to interpreting the predictions in the output from the job. - * For more information, see Associate Prediction - * Results with their Corresponding Input Records.

                          + *

                          The name of the endpoint for the monitoring job.

                          */ - DataProcessing?: DataProcessing; + EndpointName?: string; /** - *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when - * you call the following APIs:

                          - * + *

                          Describes metadata on the last execution to run, if there was one.

                          */ - ExperimentConfig?: ExperimentConfig; + LastMonitoringExecutionSummary?: MonitoringExecutionSummary; } -export namespace DescribeTransformJobResponse { - export const filterSensitiveLog = (obj: DescribeTransformJobResponse): any => ({ +export namespace DescribeMonitoringScheduleResponse { + export const filterSensitiveLog = (obj: DescribeMonitoringScheduleResponse): any => ({ ...obj, }); } -export interface DescribeTrialRequest { +export interface DescribeNotebookInstanceInput { /** - *

                          The name of the trial to describe.

                          + *

                          The name of the notebook instance that you want information about.

                          */ - TrialName: string | undefined; + NotebookInstanceName: string | undefined; } -export namespace DescribeTrialRequest { - export const filterSensitiveLog = (obj: DescribeTrialRequest): any => ({ +export namespace DescribeNotebookInstanceInput { + export const filterSensitiveLog = (obj: DescribeNotebookInstanceInput): any => ({ ...obj, }); } -/** - *

                          The source of the trial.

                          - */ -export interface TrialSource { +export enum NotebookInstanceStatus { + Deleting = "Deleting", + Failed = "Failed", + InService = "InService", + Pending = "Pending", + Stopped = "Stopped", + Stopping = "Stopping", + Updating = "Updating", +} + +export interface DescribeNotebookInstanceOutput { /** - *

                          The Amazon Resource Name (ARN) of the source.

                          + *

                          The Amazon Resource Name (ARN) of the notebook instance.

                          */ - SourceArn: string | undefined; + NotebookInstanceArn?: string; /** - *

                          The source job type.

                          + *

                          The name of the Amazon SageMaker notebook instance.

                          */ - SourceType?: string; -} + NotebookInstanceName?: string; -export namespace TrialSource { - export const filterSensitiveLog = (obj: TrialSource): any => ({ - ...obj, - }); -} + /** + *

                          The status of the notebook instance.

                          + */ + NotebookInstanceStatus?: NotebookInstanceStatus | string; -export interface DescribeTrialResponse { /** - *

                          The name of the trial.

                          + *

                          If status is Failed, the reason it failed.

                          */ - TrialName?: string; + FailureReason?: string; /** - *

                          The Amazon Resource Name (ARN) of the trial.

                          + *

                          The URL that you use to connect to the Jupyter notebook that is running in your + * notebook instance.

                          */ - TrialArn?: string; + Url?: string; /** - *

                          The name of the trial as displayed. If DisplayName isn't specified, - * TrialName is displayed.

                          + *

                          The type of ML compute instance running on the notebook instance.

                          */ - DisplayName?: string; + InstanceType?: _InstanceType | string; /** - *

                          The name of the experiment the trial is part of.

                          + *

                          The ID of the VPC subnet.

                          */ - ExperimentName?: string; + SubnetId?: string; /** - *

                          The Amazon Resource Name (ARN) of the source and, optionally, the job type.

                          + *

                          The IDs of the VPC security groups.

                          */ - Source?: TrialSource; + SecurityGroups?: string[]; /** - *

                          When the trial was created.

                          + *

                          The Amazon Resource Name (ARN) of the IAM role associated with the instance. + *

                          */ - CreationTime?: Date; + RoleArn?: string; /** - *

                          Who created the trial.

                          + *

                          The AWS KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage + * volume attached to the instance.

                          */ - CreatedBy?: UserContext; + KmsKeyId?: string; /** - *

                          When the trial was last modified.

                          + *

                          The network interface IDs that Amazon SageMaker created at the time of creating the instance. + *

                          + */ + NetworkInterfaceId?: string; + + /** + *

                          A timestamp. Use this parameter to retrieve the time when the notebook instance was + * last modified.

                          */ LastModifiedTime?: Date; /** - *

                          Who last modified the trial.

                          + *

                          A timestamp. Use this parameter to return the time when the notebook instance was + * created

                          */ - LastModifiedBy?: UserContext; + CreationTime?: Date; /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          Returns the name of a notebook instance lifecycle configuration.

                          + *

                          For information about notebook instance lifestyle configurations, see Step + * 2.1: (Optional) Customize a Notebook Instance + *

                          */ - MetadataProperties?: MetadataProperties; -} + NotebookInstanceLifecycleConfigName?: string; -export namespace DescribeTrialResponse { - export const filterSensitiveLog = (obj: DescribeTrialResponse): any => ({ - ...obj, - }); -} + /** + *

                          Describes whether Amazon SageMaker provides internet access to the notebook instance. If this + * value is set to Disabled, the notebook instance does not have + * internet access, and cannot connect to Amazon SageMaker training and endpoint services.

                          + *

                          For more information, see Notebook Instances Are Internet-Enabled by Default.

                          + */ + DirectInternetAccess?: DirectInternetAccess | string; -export interface DescribeTrialComponentRequest { /** - *

                          The name of the trial component to describe.

                          + *

                          The size, in GB, of the ML storage volume attached to the notebook instance.

                          */ - TrialComponentName: string | undefined; -} + VolumeSizeInGB?: number; -export namespace DescribeTrialComponentRequest { - export const filterSensitiveLog = (obj: DescribeTrialComponentRequest): any => ({ - ...obj, - }); -} + /** + *

                          A list of the Elastic Inference (EI) instance types associated with this notebook + * instance. Currently only one EI instance type can be associated with a notebook + * instance. For more information, see Using Elastic Inference in Amazon + * SageMaker.

                          + */ + AcceleratorTypes?: (NotebookInstanceAcceleratorType | string)[]; -/** - *

                          A summary of the metrics of a trial component.

                          - */ -export interface TrialComponentMetricSummary { /** - *

                          The name of the metric.

                          + *

                          The Git repository associated with the notebook instance as its default code + * repository. This can be either the name of a Git repository stored as a resource in your + * account, or the URL of a Git repository in AWS CodeCommit or in any + * other Git repository. When you open a notebook instance, it opens in the directory that + * contains this repository. For more information, see Associating Git Repositories with Amazon SageMaker + * Notebook Instances.

                          */ - MetricName?: string; + DefaultCodeRepository?: string; /** - *

                          The Amazon Resource Name (ARN) of the source.

                          + *

                          An array of up to three Git repositories associated with the notebook instance. These + * can be either the names of Git repositories stored as resources in your account, or the + * URL of Git repositories in AWS CodeCommit or in any + * other Git repository. These repositories are cloned at the same level as the default + * repository of your notebook instance. For more information, see Associating Git + * Repositories with Amazon SageMaker Notebook Instances.

                          */ - SourceArn?: string; + AdditionalCodeRepositories?: string[]; /** - *

                          When the metric was last updated.

                          + *

                          Whether root access is enabled or disabled for users of the notebook instance.

                          + * + *

                          Lifecycle configurations need root access to be able to set up a notebook + * instance. Because of this, lifecycle configurations associated with a notebook + * instance always run with root access even if you disable root access for + * users.

                          + *
                          */ - TimeStamp?: Date; + RootAccess?: RootAccess | string; +} +export namespace DescribeNotebookInstanceOutput { + export const filterSensitiveLog = (obj: DescribeNotebookInstanceOutput): any => ({ + ...obj, + }); +} + +export interface DescribeNotebookInstanceLifecycleConfigInput { /** - *

                          The maximum value of the metric.

                          + *

                          The name of the lifecycle configuration to describe.

                          */ - Max?: number; + NotebookInstanceLifecycleConfigName: string | undefined; +} + +export namespace DescribeNotebookInstanceLifecycleConfigInput { + export const filterSensitiveLog = (obj: DescribeNotebookInstanceLifecycleConfigInput): any => ({ + ...obj, + }); +} +export interface DescribeNotebookInstanceLifecycleConfigOutput { /** - *

                          The minimum value of the metric.

                          + *

                          The Amazon Resource Name (ARN) of the lifecycle configuration.

                          */ - Min?: number; + NotebookInstanceLifecycleConfigArn?: string; /** - *

                          The most recent value of the metric.

                          + *

                          The name of the lifecycle configuration.

                          */ - Last?: number; + NotebookInstanceLifecycleConfigName?: string; /** - *

                          The number of samples used to generate the metric.

                          + *

                          The shell script that runs only once, when you create a notebook instance.

                          */ - Count?: number; + OnCreate?: NotebookInstanceLifecycleHook[]; /** - *

                          The average value of the metric.

                          + *

                          The shell script that runs every time you start a notebook instance, including when + * you create the notebook instance.

                          */ - Avg?: number; + OnStart?: NotebookInstanceLifecycleHook[]; + + /** + *

                          A timestamp that tells when the lifecycle configuration was last modified.

                          + */ + LastModifiedTime?: Date; /** - *

                          The standard deviation of the metric.

                          + *

                          A timestamp that tells when the lifecycle configuration was created.

                          */ - StdDev?: number; + CreationTime?: Date; } -export namespace TrialComponentMetricSummary { - export const filterSensitiveLog = (obj: TrialComponentMetricSummary): any => ({ +export namespace DescribeNotebookInstanceLifecycleConfigOutput { + export const filterSensitiveLog = (obj: DescribeNotebookInstanceLifecycleConfigOutput): any => ({ ...obj, }); } -/** - *

                          The Amazon Resource Name (ARN) and job type of the source of a trial component.

                          - */ -export interface TrialComponentSource { - /** - *

                          The source ARN.

                          - */ - SourceArn: string | undefined; - +export interface DescribePipelineRequest { /** - *

                          The source job type.

                          + *

                          The name of the pipeline to describe.

                          */ - SourceType?: string; + PipelineName: string | undefined; } -export namespace TrialComponentSource { - export const filterSensitiveLog = (obj: TrialComponentSource): any => ({ +export namespace DescribePipelineRequest { + export const filterSensitiveLog = (obj: DescribePipelineRequest): any => ({ ...obj, }); } -export interface DescribeTrialComponentResponse { - /** - *

                          The name of the trial component.

                          - */ - TrialComponentName?: string; +export enum PipelineStatus { + ACTIVE = "Active", +} +export interface DescribePipelineResponse { /** - *

                          The Amazon Resource Name (ARN) of the trial component.

                          + *

                          The Amazon Resource Name (ARN) of the pipeline.

                          */ - TrialComponentArn?: string; + PipelineArn?: string; /** - *

                          The name of the component as displayed. If DisplayName isn't specified, - * TrialComponentName is displayed.

                          + *

                          The name of the pipeline.

                          */ - DisplayName?: string; + PipelineName?: string; /** - *

                          The Amazon Resource Name (ARN) of the source and, optionally, the job type.

                          + *

                          The display name of the pipeline.

                          */ - Source?: TrialComponentSource; + PipelineDisplayName?: string; /** - *

                          The status of the component. States include:

                          - *
                            - *
                          • - *

                            InProgress

                            - *
                          • - *
                          • - *

                            Completed

                            - *
                          • - *
                          • - *

                            Failed

                            - *
                          • - *
                          + *

                          The JSON pipeline definition.

                          */ - Status?: TrialComponentStatus; + PipelineDefinition?: string; /** - *

                          When the component started.

                          + *

                          The description of the pipeline.

                          */ - StartTime?: Date; + PipelineDescription?: string; /** - *

                          When the component ended.

                          + *

                          The Amazon Resource Name (ARN) that the pipeline uses to execute.

                          */ - EndTime?: Date; + RoleArn?: string; /** - *

                          When the component was created.

                          + *

                          The status of the pipeline execution.

                          */ - CreationTime?: Date; + PipelineStatus?: PipelineStatus | string; /** - *

                          Who created the component.

                          + *

                          The time when the pipeline was created.

                          */ - CreatedBy?: UserContext; + CreationTime?: Date; /** - *

                          When the component was last modified.

                          + *

                          The time when the pipeline was last modified.

                          */ LastModifiedTime?: Date; /** - *

                          Who last modified the component.

                          + *

                          The time when the pipeline was last run.

                          */ - LastModifiedBy?: UserContext; + LastRunTime?: Date; /** - *

                          The hyperparameters of the component.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - Parameters?: { [key: string]: TrialComponentParameterValue }; + CreatedBy?: UserContext; /** - *

                          The input artifacts of the component.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - InputArtifacts?: { [key: string]: TrialComponentArtifact }; + LastModifiedBy?: UserContext; +} + +export namespace DescribePipelineResponse { + export const filterSensitiveLog = (obj: DescribePipelineResponse): any => ({ + ...obj, + }); +} +export interface DescribePipelineDefinitionForExecutionRequest { /** - *

                          The output artifacts of the component.

                          + *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          */ - OutputArtifacts?: { [key: string]: TrialComponentArtifact }; + PipelineExecutionArn: string | undefined; +} + +export namespace DescribePipelineDefinitionForExecutionRequest { + export const filterSensitiveLog = (obj: DescribePipelineDefinitionForExecutionRequest): any => ({ + ...obj, + }); +} +export interface DescribePipelineDefinitionForExecutionResponse { /** - *

                          Metadata properties of the tracking entity, trial, or trial component.

                          + *

                          The JSON pipeline definition.

                          */ - MetadataProperties?: MetadataProperties; + PipelineDefinition?: string; /** - *

                          The metrics for the component.

                          + *

                          The time when the pipeline was created.

                          */ - Metrics?: TrialComponentMetricSummary[]; + CreationTime?: Date; } -export namespace DescribeTrialComponentResponse { - export const filterSensitiveLog = (obj: DescribeTrialComponentResponse): any => ({ +export namespace DescribePipelineDefinitionForExecutionResponse { + export const filterSensitiveLog = (obj: DescribePipelineDefinitionForExecutionResponse): any => ({ ...obj, - ...(obj.Parameters && { - Parameters: Object.entries(obj.Parameters).reduce( - (acc: any, [key, value]: [string, TrialComponentParameterValue]) => ({ - ...acc, - [key]: TrialComponentParameterValue.filterSensitiveLog(value), - }), - {} - ), - }), }); } -export interface DescribeUserProfileRequest { - /** - *

                          The domain ID.

                          - */ - DomainId: string | undefined; - +export interface DescribePipelineExecutionRequest { /** - *

                          The user profile name.

                          + *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          */ - UserProfileName: string | undefined; + PipelineExecutionArn: string | undefined; } -export namespace DescribeUserProfileRequest { - export const filterSensitiveLog = (obj: DescribeUserProfileRequest): any => ({ +export namespace DescribePipelineExecutionRequest { + export const filterSensitiveLog = (obj: DescribePipelineExecutionRequest): any => ({ ...obj, }); } -export enum UserProfileStatus { - Delete_Failed = "Delete_Failed", - Deleting = "Deleting", - Failed = "Failed", - InService = "InService", - Pending = "Pending", - Update_Failed = "Update_Failed", - Updating = "Updating", +export enum PipelineExecutionStatus { + EXECUTING = "Executing", + FAILED = "Failed", + STOPPED = "Stopped", + STOPPING = "Stopping", + SUCCEEDED = "Succeeded", } -export interface DescribeUserProfileResponse { - /** - *

                          The ID of the domain that contains the profile.

                          - */ - DomainId?: string; - +export interface DescribePipelineExecutionResponse { /** - *

                          The user profile Amazon Resource Name (ARN).

                          + *

                          The Amazon Resource Name (ARN) of the pipeline.

                          */ - UserProfileArn?: string; + PipelineArn?: string; /** - *

                          The user profile name.

                          + *

                          The Amazon Resource Name (ARN) of the pipeline execution.

                          */ - UserProfileName?: string; + PipelineExecutionArn?: string; /** - *

                          The ID of the user's profile in the Amazon Elastic File System (EFS) volume.

                          + *

                          The display name of the pipeline execution.

                          */ - HomeEfsFileSystemUid?: string; + PipelineExecutionDisplayName?: string; /** - *

                          The status.

                          + *

                          The status of the pipeline execution.

                          */ - Status?: UserProfileStatus | string; + PipelineExecutionStatus?: PipelineExecutionStatus | string; /** - *

                          The last modified time.

                          + *

                          The description of the pipeline execution.

                          */ - LastModifiedTime?: Date; + PipelineExecutionDescription?: string; /** - *

                          The creation time.

                          + *

                          The time when the pipeline execution was created.

                          */ CreationTime?: Date; /** - *

                          The failure reason.

                          + *

                          The time when the pipeline execution was modified last.

                          */ - FailureReason?: string; + LastModifiedTime?: Date; /** - *

                          The SSO user identifier.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - SingleSignOnUserIdentifier?: string; + CreatedBy?: UserContext; /** - *

                          The SSO user value.

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - SingleSignOnUserValue?: string; + LastModifiedBy?: UserContext; +} + +export namespace DescribePipelineExecutionResponse { + export const filterSensitiveLog = (obj: DescribePipelineExecutionResponse): any => ({ + ...obj, + }); +} +export interface DescribeProcessingJobRequest { /** - *

                          A collection of settings.

                          + *

                          The name of the processing job. The name must be unique within an AWS Region in the + * AWS account.

                          */ - UserSettings?: UserSettings; + ProcessingJobName: string | undefined; } -export namespace DescribeUserProfileResponse { - export const filterSensitiveLog = (obj: DescribeUserProfileResponse): any => ({ +export namespace DescribeProcessingJobRequest { + export const filterSensitiveLog = (obj: DescribeProcessingJobRequest): any => ({ ...obj, }); } -export interface DescribeWorkforceRequest { +export enum ProcessingJobStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", +} + +export interface DescribeProcessingJobResponse { /** - *

                          The name of the private workforce whose access you want to restrict. - * WorkforceName is automatically set to default when a - * workforce is created and cannot be modified.

                          + *

                          The inputs for a processing job.

                          + */ + ProcessingInputs?: ProcessingInput[]; + + /** + *

                          Output configuration for the processing job.

                          + */ + ProcessingOutputConfig?: ProcessingOutputConfig; + + /** + *

                          The name of the processing job. The name must be unique within an AWS Region in the + * AWS account.

                          + */ + ProcessingJobName: string | undefined; + + /** + *

                          Identifies the resources, ML compute instances, and ML storage volumes to deploy for a + * processing job. In distributed training, you specify more than one instance.

                          */ - WorkforceName: string | undefined; -} + ProcessingResources: ProcessingResources | undefined; -export namespace DescribeWorkforceRequest { - export const filterSensitiveLog = (obj: DescribeWorkforceRequest): any => ({ - ...obj, - }); -} + /** + *

                          The time limit for how long the processing job is allowed to run.

                          + */ + StoppingCondition?: ProcessingStoppingCondition; -/** - *

                          Your OIDC IdP workforce configuration.

                          - */ -export interface OidcConfigForResponse { /** - *

                          The OIDC IdP client ID used to configure your private workforce.

                          + *

                          Configures the processing job to run a specified container image.

                          */ - ClientId?: string; + AppSpecification: AppSpecification | undefined; /** - *

                          The OIDC IdP issuer used to configure your private workforce.

                          + *

                          The environment variables set in the Docker container.

                          */ - Issuer?: string; + Environment?: { [key: string]: string }; /** - *

                          The OIDC IdP authorization endpoint used to configure your private workforce.

                          + *

                          Networking options for a processing job.

                          */ - AuthorizationEndpoint?: string; + NetworkConfig?: NetworkConfig; /** - *

                          The OIDC IdP token endpoint used to configure your private workforce.

                          + *

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on + * your behalf.

                          */ - TokenEndpoint?: string; + RoleArn?: string; /** - *

                          The OIDC IdP user information endpoint used to configure your private workforce.

                          + *

                          The configuration information used to create an experiment.

                          */ - UserInfoEndpoint?: string; + ExperimentConfig?: ExperimentConfig; /** - *

                          The OIDC IdP logout endpoint used to configure your private workforce.

                          + *

                          The Amazon Resource Name (ARN) of the processing job.

                          */ - LogoutEndpoint?: string; + ProcessingJobArn: string | undefined; /** - *

                          The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.

                          + *

                          Provides the status of a processing job.

                          */ - JwksUri?: string; -} + ProcessingJobStatus: ProcessingJobStatus | string | undefined; -export namespace OidcConfigForResponse { - export const filterSensitiveLog = (obj: OidcConfigForResponse): any => ({ - ...obj, - }); -} + /** + *

                          An optional string, up to one KB in size, that contains metadata from the processing + * container when the processing job exits.

                          + */ + ExitMessage?: string; -/** - *

                          A single private workforce, which is automatically created when you create your first - * private work team. You can create one private work force in each AWS Region. By default, - * any workforce-related API operation used in a specific region will apply to the - * workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

                          - */ -export interface Workforce { /** - *

                          The name of the private workforce.

                          + *

                          A string, up to one KB in size, that contains the reason a processing job failed, if + * it failed.

                          */ - WorkforceName: string | undefined; + FailureReason?: string; /** - *

                          The Amazon Resource Name (ARN) of the private workforce.

                          + *

                          The time at which the processing job completed.

                          */ - WorkforceArn: string | undefined; + ProcessingEndTime?: Date; /** - *

                          The most recent date that was used to - * successfully add one or more IP address ranges (CIDRs) to a private workforce's - * allow list.

                          + *

                          The time at which the processing job started.

                          */ - LastUpdatedDate?: Date; + ProcessingStartTime?: Date; /** - *

                          A list of one to ten IP address ranges (CIDRs) to be added to the - * workforce allow list. By default, a workforce isn't restricted to specific IP addresses.

                          + *

                          The time at which the processing job was last modified.

                          */ - SourceIpConfig?: SourceIpConfig; + LastModifiedTime?: Date; /** - *

                          The subdomain for your OIDC Identity Provider.

                          + *

                          The time at which the processing job was created.

                          */ - SubDomain?: string; + CreationTime: Date | undefined; /** - *

                          The configuration of an Amazon Cognito workforce. - * A single Cognito workforce is created using and corresponds to a single - * - * Amazon Cognito user pool.

                          + *

                          The ARN of a monitoring schedule for an endpoint associated with this processing + * job.

                          */ - CognitoConfig?: CognitoConfig; + MonitoringScheduleArn?: string; /** - *

                          The configuration of an OIDC Identity Provider (IdP) private workforce.

                          + *

                          The ARN of an AutoML job associated with this processing job.

                          */ - OidcConfig?: OidcConfigForResponse; + AutoMLJobArn?: string; /** - *

                          The date that the workforce is created.

                          + *

                          The ARN of a training job associated with this processing job.

                          */ - CreateDate?: Date; + TrainingJobArn?: string; } -export namespace Workforce { - export const filterSensitiveLog = (obj: Workforce): any => ({ +export namespace DescribeProcessingJobResponse { + export const filterSensitiveLog = (obj: DescribeProcessingJobResponse): any => ({ ...obj, }); } -export interface DescribeWorkforceResponse { +export interface DescribeProjectInput { /** - *

                          A single private workforce, which is automatically created when you create your first - * private work team. You can create one private work force in each AWS Region. By default, - * any workforce-related API operation used in a specific region will apply to the - * workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

                          + *

                          The name of the project to describe.

                          */ - Workforce: Workforce | undefined; + ProjectName: string | undefined; } -export namespace DescribeWorkforceResponse { - export const filterSensitiveLog = (obj: DescribeWorkforceResponse): any => ({ +export namespace DescribeProjectInput { + export const filterSensitiveLog = (obj: DescribeProjectInput): any => ({ ...obj, }); } -export interface DescribeWorkteamRequest { +export enum ProjectStatus { + CREATE_COMPLETED = "CreateCompleted", + CREATE_FAILED = "CreateFailed", + CREATE_IN_PROGRESS = "CreateInProgress", + DELETE_COMPLETED = "DeleteCompleted", + DELETE_FAILED = "DeleteFailed", + DELETE_IN_PROGRESS = "DeleteInProgress", + PENDING = "Pending", +} + +/** + *

                          Details of a provisioned service catalog product. For information about service catalog, + * see What is AWS Service + * Catalog.

                          + */ +export interface ServiceCatalogProvisionedProductDetails { /** - *

                          The name of the work team to return a description of.

                          + *

                          The ID of the provisioned product.

                          */ - WorkteamName: string | undefined; + ProvisionedProductId?: string; + + /** + *

                          The current status of the product.

                          + *
                            + *
                          • + *

                            + * AVAILABLE - Stable state, ready to perform any operation. The most recent operation succeeded and completed.

                            + *
                          • + *
                          • + *

                            + * UNDER_CHANGE - Transitive state. Operations performed might not have valid results. Wait for an AVAILABLE status before performing operations.

                            + *
                          • + *
                          • + *

                            + * TAINTED - Stable state, ready to perform any operation. The stack has completed the requested operation but is not exactly what was requested. For example, a request to update to a new version failed and the stack rolled back to the current version.

                            + *
                          • + *
                          • + *

                            + * ERROR - An unexpected error occurred. The provisioned product exists but the stack is not running. For example, CloudFormation received a parameter value that was not valid and could not launch the stack.

                            + *
                          • + *
                          • + *

                            + * PLAN_IN_PROGRESS - Transitive state. The plan operations were performed to provision a new product, but resources have not yet been created. After reviewing the list of resources to be created, execute the plan. Wait for an AVAILABLE status before performing operations.

                            + *
                          • + *
                          + */ + ProvisionedProductStatusMessage?: string; } -export namespace DescribeWorkteamRequest { - export const filterSensitiveLog = (obj: DescribeWorkteamRequest): any => ({ +export namespace ServiceCatalogProvisionedProductDetails { + export const filterSensitiveLog = (obj: ServiceCatalogProvisionedProductDetails): any => ({ ...obj, }); } -/** - *

                          Provides details about a labeling work team.

                          - */ -export interface Workteam { - /** - *

                          The name of the work team.

                          - */ - WorkteamName: string | undefined; - +export interface DescribeProjectOutput { /** - *

                          A list of MemberDefinition objects that contains objects that identify - * the workers that make up the work team.

                          - *

                          Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). - * For private workforces created using Amazon Cognito use - * CognitoMemberDefinition. For workforces created using your own OIDC identity - * provider (IdP) use OidcMemberDefinition.

                          + *

                          The Amazon Resource Name (ARN) of the project.

                          */ - MemberDefinitions: MemberDefinition[] | undefined; + ProjectArn: string | undefined; /** - *

                          The Amazon Resource Name (ARN) that identifies the work team.

                          + *

                          The name of the project.

                          */ - WorkteamArn: string | undefined; + ProjectName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the workforce.

                          + *

                          The ID of the project.

                          */ - WorkforceArn?: string; + ProjectId: string | undefined; /** - *

                          The Amazon Marketplace identifier for a vendor's work team.

                          + *

                          The description of the project.

                          */ - ProductListingIds?: string[]; + ProjectDescription?: string; /** - *

                          A description of the work team.

                          + *

                          Information used to provision a service catalog product. For information, see What is AWS Service + * Catalog.

                          */ - Description: string | undefined; + ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails | undefined; /** - *

                          The URI of the labeling job's user interface. Workers open this URI to start labeling - * your data objects.

                          + *

                          Information about a provisioned service catalog product.

                          */ - SubDomain?: string; + ServiceCatalogProvisionedProductDetails?: ServiceCatalogProvisionedProductDetails; /** - *

                          The date and time that the work team was created (timestamp).

                          + *

                          The status of the project.

                          */ - CreateDate?: Date; + ProjectStatus: ProjectStatus | string | undefined; /** - *

                          The date and time that the work team was last updated (timestamp).

                          + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          */ - LastUpdatedDate?: Date; + CreatedBy?: UserContext; /** - *

                          Configures SNS notifications of available or expiring work items for work - * teams.

                          + *

                          The time when the project was created.

                          */ - NotificationConfiguration?: NotificationConfiguration; + CreationTime: Date | undefined; } -export namespace Workteam { - export const filterSensitiveLog = (obj: Workteam): any => ({ +export namespace DescribeProjectOutput { + export const filterSensitiveLog = (obj: DescribeProjectOutput): any => ({ ...obj, }); } -export interface DescribeWorkteamResponse { +export interface DescribeSubscribedWorkteamRequest { /** - *

                          A Workteam instance that contains information about the work team. - *

                          + *

                          The Amazon Resource Name (ARN) of the subscribed work team to describe.

                          */ - Workteam: Workteam | undefined; + WorkteamArn: string | undefined; } -export namespace DescribeWorkteamResponse { - export const filterSensitiveLog = (obj: DescribeWorkteamResponse): any => ({ +export namespace DescribeSubscribedWorkteamRequest { + export const filterSensitiveLog = (obj: DescribeSubscribedWorkteamRequest): any => ({ ...obj, }); } /** - *

                          Specifies weight and capacity values for a production variant.

                          + *

                          Describes a work team of a vendor that does the a labelling job.

                          */ -export interface DesiredWeightAndCapacity { +export interface SubscribedWorkteam { + /** + *

                          The Amazon Resource Name (ARN) of the vendor that you have subscribed.

                          + */ + WorkteamArn: string | undefined; + + /** + *

                          The title of the service provided by the vendor in the Amazon Marketplace.

                          + */ + MarketplaceTitle?: string; + /** - *

                          The name of the - * variant - * to update.

                          + *

                          The name of the vendor in the Amazon Marketplace.

                          */ - VariantName: string | undefined; + SellerName?: string; /** - *

                          The variant's weight.

                          + *

                          The description of the vendor from the Amazon Marketplace.

                          */ - DesiredWeight?: number; + MarketplaceDescription?: string; /** - *

                          The variant's capacity.

                          + *

                          Marketplace product listing ID.

                          */ - DesiredInstanceCount?: number; + ListingId?: string; } -export namespace DesiredWeightAndCapacity { - export const filterSensitiveLog = (obj: DesiredWeightAndCapacity): any => ({ +export namespace SubscribedWorkteam { + export const filterSensitiveLog = (obj: SubscribedWorkteam): any => ({ ...obj, }); } -export interface DisableSagemakerServicecatalogPortfolioInput {} - -export namespace DisableSagemakerServicecatalogPortfolioInput { - export const filterSensitiveLog = (obj: DisableSagemakerServicecatalogPortfolioInput): any => ({ - ...obj, - }); +export interface DescribeSubscribedWorkteamResponse { + /** + *

                          A Workteam instance that contains information about the work team.

                          + */ + SubscribedWorkteam: SubscribedWorkteam | undefined; } -export interface DisableSagemakerServicecatalogPortfolioOutput {} - -export namespace DisableSagemakerServicecatalogPortfolioOutput { - export const filterSensitiveLog = (obj: DisableSagemakerServicecatalogPortfolioOutput): any => ({ +export namespace DescribeSubscribedWorkteamResponse { + export const filterSensitiveLog = (obj: DescribeSubscribedWorkteamResponse): any => ({ ...obj, }); } -export interface DisassociateTrialComponentRequest { - /** - *

                          The name of the component to disassociate from the trial.

                          - */ - TrialComponentName: string | undefined; - +export interface DescribeTrainingJobRequest { /** - *

                          The name of the trial to disassociate from.

                          + *

                          The name of the training job.

                          */ - TrialName: string | undefined; + TrainingJobName: string | undefined; } -export namespace DisassociateTrialComponentRequest { - export const filterSensitiveLog = (obj: DisassociateTrialComponentRequest): any => ({ +export namespace DescribeTrainingJobRequest { + export const filterSensitiveLog = (obj: DescribeTrainingJobRequest): any => ({ ...obj, }); } -export interface DisassociateTrialComponentResponse { +/** + *

                          The name, value, and date and time of a metric that was emitted to Amazon CloudWatch.

                          + */ +export interface MetricData { + /** + *

                          The name of the metric.

                          + */ + MetricName?: string; + /** - *

                          The ARN of the trial component.

                          + *

                          The value of the metric.

                          */ - TrialComponentArn?: string; + Value?: number; /** - *

                          The Amazon Resource Name (ARN) of the trial.

                          + *

                          The date and time that the algorithm emitted the metric.

                          */ - TrialArn?: string; + Timestamp?: Date; } -export namespace DisassociateTrialComponentResponse { - export const filterSensitiveLog = (obj: DisassociateTrialComponentResponse): any => ({ +export namespace MetricData { + export const filterSensitiveLog = (obj: MetricData): any => ({ ...obj, }); } /** - *

                          The domain's details.

                          + *

                          Information about the status of the rule evaluation.

                          */ -export interface DomainDetails { - /** - *

                          The domain's Amazon Resource Name (ARN).

                          - */ - DomainArn?: string; - +export interface ProfilerRuleEvaluationStatus { /** - *

                          The domain ID.

                          + *

                          The name of the rule configuration.

                          */ - DomainId?: string; + RuleConfigurationName?: string; /** - *

                          The domain name.

                          + *

                          The Amazon Resource Name (ARN) of the rule evaluation job.

                          */ - DomainName?: string; + RuleEvaluationJobArn?: string; /** - *

                          The status.

                          + *

                          Status of the rule evaluation.

                          */ - Status?: DomainStatus | string; + RuleEvaluationStatus?: RuleEvaluationStatus | string; /** - *

                          The creation time.

                          + *

                          Details from the rule evaluation.

                          */ - CreationTime?: Date; + StatusDetails?: string; /** - *

                          The last modified time.

                          + *

                          Timestamp when the rule evaluation status was last modified.

                          */ LastModifiedTime?: Date; - - /** - *

                          The domain's URL.

                          - */ - Url?: string; } -export namespace DomainDetails { - export const filterSensitiveLog = (obj: DomainDetails): any => ({ +export namespace ProfilerRuleEvaluationStatus { + export const filterSensitiveLog = (obj: ProfilerRuleEvaluationStatus): any => ({ ...obj, }); } -export interface EnableSagemakerServicecatalogPortfolioInput {} - -export namespace EnableSagemakerServicecatalogPortfolioInput { - export const filterSensitiveLog = (obj: EnableSagemakerServicecatalogPortfolioInput): any => ({ - ...obj, - }); +export enum ProfilingStatus { + DISABLED = "Disabled", + ENABLED = "Enabled", } -export interface EnableSagemakerServicecatalogPortfolioOutput {} - -export namespace EnableSagemakerServicecatalogPortfolioOutput { - export const filterSensitiveLog = (obj: EnableSagemakerServicecatalogPortfolioOutput): any => ({ - ...obj, - }); +export enum SecondaryStatus { + COMPLETED = "Completed", + DOWNLOADING = "Downloading", + DOWNLOADING_TRAINING_IMAGE = "DownloadingTrainingImage", + FAILED = "Failed", + INTERRUPTED = "Interrupted", + LAUNCHING_ML_INSTANCES = "LaunchingMLInstances", + MAX_RUNTIME_EXCEEDED = "MaxRuntimeExceeded", + MAX_WAIT_TIME_EXCEEDED = "MaxWaitTimeExceeded", + PREPARING_TRAINING_STACK = "PreparingTrainingStack", + STARTING = "Starting", + STOPPED = "Stopped", + STOPPING = "Stopping", + TRAINING = "Training", + UPDATING = "Updating", + UPLOADING = "Uploading", } /** - *

                          A schedule for a model monitoring job. For information about model monitor, see - * Amazon SageMaker Model - * Monitor.

                          + *

                          An array element of DescribeTrainingJobResponse$SecondaryStatusTransitions. It provides + * additional details about a status that the training job has transitioned through. A + * training job can be in one of several states, for example, starting, downloading, + * training, or uploading. Within each state, there are a number of intermediate states. + * For example, within the starting state, Amazon SageMaker could be starting the training job or + * launching the ML instances. These transitional states are referred to as the job's + * secondary + * status. + *

                          + *

                          */ -export interface MonitoringSchedule { +export interface SecondaryStatusTransition { /** - *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          + *

                          Contains a secondary status information from a training + * job.

                          + *

                          Status might be one of the following secondary statuses:

                          + *
                          + *
                          InProgress
                          + *
                          + *
                            + *
                          • + *

                            + * Starting + * - Starting the training job.

                            + *
                          • + *
                          • + *

                            + * Downloading - An optional stage for algorithms that + * support File training input mode. It indicates that + * data is being downloaded to the ML storage volumes.

                            + *
                          • + *
                          • + *

                            + * Training - Training is in progress.

                            + *
                          • + *
                          • + *

                            + * Uploading - Training is complete and the model + * artifacts are being uploaded to the S3 location.

                            + *
                          • + *
                          + *
                          + *
                          Completed
                          + *
                          + *
                            + *
                          • + *

                            + * Completed - The training job has completed.

                            + *
                          • + *
                          + *
                          + *
                          Failed
                          + *
                          + *
                            + *
                          • + *

                            + * Failed - The training job has failed. The reason for + * the failure is returned in the FailureReason field of + * DescribeTrainingJobResponse.

                            + *
                          • + *
                          + *
                          + *
                          Stopped
                          + *
                          + *
                            + *
                          • + *

                            + * MaxRuntimeExceeded - The job stopped because it + * exceeded the maximum allowed runtime.

                            + *
                          • + *
                          • + *

                            + * Stopped - The training job has stopped.

                            + *
                          • + *
                          + *
                          + *
                          Stopping
                          + *
                          + *
                            + *
                          • + *

                            + * Stopping - Stopping the training job.

                            + *
                          • + *
                          + *
                          + *
                          + *

                          We no longer support the following secondary statuses:

                          + *
                            + *
                          • + *

                            + * LaunchingMLInstances + *

                            + *
                          • + *
                          • + *

                            + * PreparingTrainingStack + *

                            + *
                          • + *
                          • + *

                            + * DownloadingTrainingImage + *

                            + *
                          • + *
                          */ - MonitoringScheduleArn?: string; + Status: SecondaryStatus | string | undefined; /** - *

                          The name of the monitoring schedule.

                          + *

                          A timestamp that shows when the training job transitioned to the current secondary + * status state.

                          */ - MonitoringScheduleName?: string; + StartTime: Date | undefined; + + /** + *

                          A timestamp that shows when the training job transitioned out of this secondary status + * state into another secondary status state or when the training job has ended.

                          + */ + EndTime?: Date; /** - *

                          The status of the monitoring schedule. This can be one of the following values.

                          + *

                          A detailed description of the progress within a secondary status. + *

                          + *

                          Amazon SageMaker provides secondary statuses and status messages that apply to each of + * them:

                          + *
                          + *
                          Starting
                          + *
                          + *
                            + *
                          • + *

                            Starting the training job.

                            + *
                          • + *
                          • + *

                            Launching + * requested ML instances.

                            + *
                          • + *
                          • + *

                            Insufficient + * capacity error from EC2 while launching instances, + * retrying!

                            + *
                          • + *
                          • + *

                            Launched + * instance was unhealthy, replacing it!

                            + *
                          • + *
                          • + *

                            Preparing the instances for training.

                            + *
                          • + *
                          + *
                          + *
                          Training
                          + *
                          + *
                            + *
                          • + *

                            Downloading the training image.

                            + *
                          • + *
                          • + *

                            Training + * image download completed. Training in + * progress.

                            + *
                          • + *
                          + *
                          + *
                          + * + *

                          Status messages are subject to change. Therefore, we recommend not including them + * in code that programmatically initiates actions. For examples, don't use status + * messages in if statements.

                          + *
                          + *

                          To have an overview of your training job's progress, view + * TrainingJobStatus and SecondaryStatus in DescribeTrainingJob, and StatusMessage together. For + * example, at the start of a training job, you might see the following:

                          *
                            *
                          • *

                            - * PENDING - The schedule is pending being created.

                            - *
                          • - *
                          • - *

                            - * FAILED - The schedule failed.

                            + * TrainingJobStatus - InProgress

                            *
                          • *
                          • *

                            - * SCHEDULED - The schedule was successfully created.

                            + * SecondaryStatus - Training

                            *
                          • *
                          • *

                            - * STOPPED - The schedule was stopped.

                            + * StatusMessage - Downloading the training image

                            *
                          • *
                          */ - MonitoringScheduleStatus?: ScheduleStatus | string; - - /** - *

                          If the monitoring schedule failed, the reason it failed.

                          - */ - FailureReason?: string; - - /** - *

                          The time that the monitoring schedule was created.

                          - */ - CreationTime?: Date; - - /** - *

                          The last time the monitoring schedule was changed.

                          - */ - LastModifiedTime?: Date; - - /** - *

                          Configures the monitoring schedule and defines the monitoring job.

                          - */ - MonitoringScheduleConfig?: MonitoringScheduleConfig; - - /** - *

                          The endpoint that hosts the model being monitored.

                          - */ - EndpointName?: string; - - /** - *

                          Summary of information about the last monitoring job to run.

                          - */ - LastMonitoringExecutionSummary?: MonitoringExecutionSummary; - - /** - *

                          A list of the tags associated with the monitoring schedlue. For more information, see Tagging AWS - * resources in the AWS General Reference Guide.

                          - */ - Tags?: Tag[]; -} - -export namespace MonitoringSchedule { - export const filterSensitiveLog = (obj: MonitoringSchedule): any => ({ - ...obj, - }); -} - -/** - *

                          A hosted endpoint for real-time inference.

                          - */ -export interface Endpoint { - /** - *

                          The name of the endpoint.

                          - */ - EndpointName: string | undefined; - - /** - *

                          The Amazon Resource Name (ARN) of the endpoint.

                          - */ - EndpointArn: string | undefined; - - /** - *

                          The endpoint configuration associated with the endpoint.

                          - */ - EndpointConfigName: string | undefined; - - /** - *

                          A list of the production variants hosted on the endpoint. Each production variant is a - * model.

                          - */ - ProductionVariants?: ProductionVariantSummary[]; - - /** - *

                          - */ - DataCaptureConfig?: DataCaptureConfigSummary; - - /** - *

                          The status of the endpoint.

                          - */ - EndpointStatus: EndpointStatus | string | undefined; - - /** - *

                          If the endpoint failed, the reason it failed.

                          - */ - FailureReason?: string; - - /** - *

                          The time that the endpoint was created.

                          - */ - CreationTime: Date | undefined; - - /** - *

                          The last time the endpoint was modified.

                          - */ - LastModifiedTime: Date | undefined; - - /** - *

                          A list of monitoring schedules for the endpoint. For information about model - * monitoring, see Amazon SageMaker Model Monitor.

                          - */ - MonitoringSchedules?: MonitoringSchedule[]; - - /** - *

                          A list of the tags associated with the endpoint. For more information, see Tagging AWS - * resources in the AWS General Reference Guide.

                          - */ - Tags?: Tag[]; + StatusMessage?: string; } -export namespace Endpoint { - export const filterSensitiveLog = (obj: Endpoint): any => ({ +export namespace SecondaryStatusTransition { + export const filterSensitiveLog = (obj: SecondaryStatusTransition): any => ({ ...obj, }); } -export enum EndpointConfigSortKey { - CreationTime = "CreationTime", - Name = "Name", -} - -/** - *

                          Provides summary information for an endpoint configuration.

                          - */ -export interface EndpointConfigSummary { +export interface DescribeTrainingJobResponse { /** - *

                          The name of the endpoint configuration.

                          + *

                          Name of the model training job.

                          */ - EndpointConfigName: string | undefined; + TrainingJobName: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the endpoint configuration.

                          + *

                          The Amazon Resource Name (ARN) of the training job.

                          */ - EndpointConfigArn: string | undefined; + TrainingJobArn: string | undefined; /** - *

                          A timestamp that shows when the endpoint configuration was created.

                          + *

                          The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the + * training job was launched by a hyperparameter tuning job.

                          */ - CreationTime: Date | undefined; -} - -export namespace EndpointConfigSummary { - export const filterSensitiveLog = (obj: EndpointConfigSummary): any => ({ - ...obj, - }); -} - -export enum EndpointSortKey { - CreationTime = "CreationTime", - Name = "Name", - Status = "Status", -} + TuningJobArn?: string; -/** - *

                          Provides summary information for an endpoint.

                          - */ -export interface EndpointSummary { /** - *

                          The name of the endpoint.

                          + *

                          The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the + * transform or training job.

                          */ - EndpointName: string | undefined; + LabelingJobArn?: string; /** - *

                          The Amazon Resource Name (ARN) of the endpoint.

                          + *

                          The Amazon Resource Name (ARN) of an AutoML job.

                          */ - EndpointArn: string | undefined; + AutoMLJobArn?: string; /** - *

                          A timestamp that shows when the endpoint was created.

                          + *

                          Information about the Amazon S3 location that is configured for storing model artifacts. + *

                          */ - CreationTime: Date | undefined; + ModelArtifacts: ModelArtifacts | undefined; /** - *

                          A timestamp that shows when the endpoint was last modified.

                          + *

                          The status of the + * training + * job.

                          + *

                          Amazon SageMaker provides the following training job statuses:

                          + *
                            + *
                          • + *

                            + * InProgress - The training is in progress.

                            + *
                          • + *
                          • + *

                            + * Completed - The training job has completed.

                            + *
                          • + *
                          • + *

                            + * Failed - The training job has failed. To see the reason for the + * failure, see the FailureReason field in the response to a + * DescribeTrainingJobResponse call.

                            + *
                          • + *
                          • + *

                            + * Stopping - The training job is stopping.

                            + *
                          • + *
                          • + *

                            + * Stopped - The training job has stopped.

                            + *
                          • + *
                          + *

                          For + * more detailed information, see SecondaryStatus.

                          */ - LastModifiedTime: Date | undefined; + TrainingJobStatus: TrainingJobStatus | string | undefined; /** - *

                          The status of the endpoint.

                          + *

                          Provides detailed information about the state of the training job. For detailed + * information on the secondary status of the training job, see StatusMessage + * under SecondaryStatusTransition.

                          + *

                          Amazon SageMaker provides primary statuses and secondary statuses that apply to each of + * them:

                          + *
                          + *
                          InProgress
                          + *
                          + *
                            + *
                          • + *

                            + * Starting + * - Starting the training job.

                            + *
                          • + *
                          • + *

                            + * Downloading - An optional stage for algorithms that + * support File training input mode. It indicates that + * data is being downloaded to the ML storage volumes.

                            + *
                          • + *
                          • + *

                            + * Training - Training is in progress.

                            + *
                          • + *
                          • + *

                            + * Interrupted - The job stopped because the managed + * spot training instances were interrupted.

                            + *
                          • + *
                          • + *

                            + * Uploading - Training is complete and the model + * artifacts are being uploaded to the S3 location.

                            + *
                          • + *
                          + *
                          + *
                          Completed
                          + *
                          + *
                            + *
                          • + *

                            + * Completed - The training job has completed.

                            + *
                          • + *
                          + *
                          + *
                          Failed
                          + *
                          + *
                            + *
                          • + *

                            + * Failed - The training job has failed. The reason for + * the failure is returned in the FailureReason field of + * DescribeTrainingJobResponse.

                            + *
                          • + *
                          + *
                          + *
                          Stopped
                          + *
                          + *
                            + *
                          • + *

                            + * MaxRuntimeExceeded - The job stopped because it + * exceeded the maximum allowed runtime.

                            + *
                          • + *
                          • + *

                            + * MaxWaitTimeExceeded - The job stopped because it + * exceeded the maximum allowed wait time.

                            + *
                          • + *
                          • + *

                            + * Stopped - The training job has stopped.

                            + *
                          • + *
                          + *
                          + *
                          Stopping
                          + *
                          + *
                            + *
                          • + *

                            + * Stopping - Stopping the training job.

                            + *
                          • + *
                          + *
                          + *
                          + * + * + *

                          Valid values for SecondaryStatus are subject to change.

                          + *
                          + *

                          We no longer support the following secondary statuses:

                          *
                            *
                          • *

                            - * OutOfService: Endpoint is not available to take incoming - * requests.

                            - *
                          • - *
                          • - *

                            - * Creating: CreateEndpoint is executing.

                            - *
                          • - *
                          • - *

                            - * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing.

                            - *
                          • - *
                          • - *

                            - * SystemUpdating: Endpoint is undergoing maintenance and cannot be - * updated or deleted or re-scaled until it has completed. This maintenance - * operation does not change any customer-specified values such as VPC config, KMS - * encryption, model, instance type, or instance count.

                            - *
                          • - *
                          • - *

                            - * RollingBack: Endpoint fails to scale up or down or change its - * variant weight and is in the process of rolling back to its previous - * configuration. Once the rollback completes, endpoint returns to an - * InService status. This transitional status only applies to an - * endpoint that has autoscaling enabled and is undergoing variant weight or - * capacity changes as part of an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities operation is called - * explicitly.

                            - *
                          • - *
                          • - *

                            - * InService: Endpoint is available to process incoming - * requests.

                            + * LaunchingMLInstances + *

                            *
                          • *
                          • *

                            - * Deleting: DeleteEndpoint is executing.

                            + * PreparingTrainingStack + *

                            *
                          • *
                          • *

                            - * Failed: Endpoint could not be created, updated, or re-scaled. Use - * DescribeEndpointOutput$FailureReason for information about - * the failure. DeleteEndpoint is the only operation that can be - * performed on a failed endpoint.

                            + * DownloadingTrainingImage + *

                            *
                          • *
                          - *

                          To get a list of endpoints with a specified status, use the ListEndpointsInput$StatusEquals filter.

                          - */ - EndpointStatus: EndpointStatus | string | undefined; -} - -export namespace EndpointSummary { - export const filterSensitiveLog = (obj: EndpointSummary): any => ({ - ...obj, - }); -} - -/** - *

                          The properties of an experiment as returned by the Search API.

                          - */ -export interface Experiment { - /** - *

                          The name of the experiment.

                          - */ - ExperimentName?: string; - - /** - *

                          The Amazon Resource Name (ARN) of the experiment.

                          - */ - ExperimentArn?: string; - - /** - *

                          The name of the experiment as displayed. If DisplayName isn't specified, - * ExperimentName is displayed.

                          */ - DisplayName?: string; + SecondaryStatus: SecondaryStatus | string | undefined; /** - *

                          The source of the experiment.

                          + *

                          If the training job failed, the reason it failed.

                          */ - Source?: ExperimentSource; + FailureReason?: string; /** - *

                          The description of the experiment.

                          + *

                          Algorithm-specific parameters.

                          */ - Description?: string; + HyperParameters?: { [key: string]: string }; /** - *

                          When the experiment was created.

                          + *

                          Information about the algorithm used for training, and algorithm metadata. + *

                          */ - CreationTime?: Date; + AlgorithmSpecification: AlgorithmSpecification | undefined; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The AWS Identity and Access Management (IAM) role configured for the training job.

                          */ - CreatedBy?: UserContext; + RoleArn?: string; /** - *

                          When the experiment was last modified.

                          + *

                          An array of Channel objects that describes each data input channel. + *

                          */ - LastModifiedTime?: Date; + InputDataConfig?: Channel[]; /** - *

                          Information about the user who created or modified an experiment, trial, or trial - * component.

                          + *

                          The S3 path where model artifacts that you configured when creating the job are + * stored. Amazon SageMaker creates subfolders for model artifacts.

                          */ - LastModifiedBy?: UserContext; + OutputDataConfig?: OutputDataConfig; /** - *

                          The list of tags that are associated with the experiment. You can use Search API to search on the tags.

                          + *

                          Resources, including ML compute instances and ML storage volumes, that are + * configured for model training.

                          */ - Tags?: Tag[]; -} - -export namespace Experiment { - export const filterSensitiveLog = (obj: Experiment): any => ({ - ...obj, - }); -} + ResourceConfig: ResourceConfig | undefined; -/** - *

                          A summary of the properties of an experiment. To get the complete set of properties, call - * the DescribeExperiment API and provide the - * ExperimentName.

                          - */ -export interface ExperimentSummary { /** - *

                          The Amazon Resource Name (ARN) of the experiment.

                          + *

                          A VpcConfig object that specifies the VPC that this training job has + * access to. For more information, see Protect Training Jobs by Using an Amazon + * Virtual Private Cloud.

                          */ - ExperimentArn?: string; + VpcConfig?: VpcConfig; /** - *

                          The name of the experiment.

                          + *

                          Specifies a limit to how long a model training job can run. It also specifies the + * maximum time to wait for a spot instance. When the job reaches the time limit, Amazon SageMaker ends + * the training job. Use this API to cap model training costs.

                          + *

                          To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays + * job termination for 120 seconds. Algorithms can use this 120-second window to save the + * model artifacts, so the results of training are not lost.

                          */ - ExperimentName?: string; + StoppingCondition: StoppingCondition | undefined; /** - *

                          The name of the experiment as displayed. If DisplayName isn't specified, - * ExperimentName is displayed.

                          + *

                          A timestamp that indicates when the training job was created.

                          */ - DisplayName?: string; + CreationTime: Date | undefined; /** - *

                          The source of the experiment.

                          + *

                          Indicates the time when the training job starts on training instances. You are + * billed for the time interval between this time and the value of + * TrainingEndTime. The start time in CloudWatch Logs might be later than this time. + * The difference is due to the time it takes to download the training data and to the size + * of the training container.

                          */ - ExperimentSource?: ExperimentSource; + TrainingStartTime?: Date; /** - *

                          When the experiment was created.

                          + *

                          Indicates the time when the training job ends on training instances. You are billed + * for the time interval between the value of TrainingStartTime and this time. + * For successful jobs and stopped jobs, this is the time after model artifacts are + * uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.

                          */ - CreationTime?: Date; + TrainingEndTime?: Date; /** - *

                          When the experiment was last modified.

                          + *

                          A timestamp that indicates when the status of the training job was last + * modified.

                          */ LastModifiedTime?: Date; -} - -export namespace ExperimentSummary { - export const filterSensitiveLog = (obj: ExperimentSummary): any => ({ - ...obj, - }); -} - -/** - *

                          Amazon SageMaker Feature Store stores features in a collection called Feature Group. - * A Feature Group can be visualized as a table which has rows, - * with a unique identifier for each row where each column in the table is a feature. - * In principle, a Feature Group is composed of features and values per features.

                          - */ -export interface FeatureGroup { - /** - *

                          The Amazon Resource Name (ARN) of a FeatureGroup.

                          - */ - FeatureGroupArn?: string; /** - *

                          The name of the FeatureGroup.

                          + *

                          A history of all of the secondary statuses that the training job has transitioned + * through.

                          */ - FeatureGroupName?: string; + SecondaryStatusTransitions?: SecondaryStatusTransition[]; /** - *

                          The name of the Feature whose value uniquely identifies a - * Record defined in the FeatureGroup - * FeatureDefinitions.

                          + *

                          A collection of MetricData objects that specify the names, values, and + * dates and times that the training algorithm emitted to Amazon CloudWatch.

                          */ - RecordIdentifierFeatureName?: string; + FinalMetricDataList?: MetricData[]; /** - *

                          The name of the feature that stores the EventTime of a Record in a - * FeatureGroup.

                          - *

                          A EventTime is point in time when a new event - * occurs that corresponds to the creation or update of a Record in - * FeatureGroup. All Records in the FeatureGroup - * must have a corresponding EventTime.

                          + *

                          If you want to allow inbound or outbound network calls, except for calls between peers + * within a training cluster for distributed training, choose True. If you + * enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker + * downloads and uploads customer data and model artifacts through the specified VPC, but + * the training container does not have network access.

                          */ - EventTimeFeatureName?: string; + EnableNetworkIsolation?: boolean; /** - *

                          A list of Features. Each Feature must include a - * FeatureName and a FeatureType.

                          - *

                          Valid FeatureTypes are Integral, Fractional and - * String.

                          - *

                          - * FeatureNames cannot be any of the following: is_deleted, - * write_time, api_invocation_time.

                          - *

                          You can create up to 2,500 FeatureDefinitions per - * FeatureGroup.

                          + *

                          To encrypt all communications between ML compute instances in distributed training, + * choose True. Encryption provides greater security for distributed training, + * but training might take longer. How long it takes depends on the amount of communication + * between compute instances, especially if you use a deep learning algorithms in + * distributed training.

                          */ - FeatureDefinitions?: FeatureDefinition[]; + EnableInterContainerTrafficEncryption?: boolean; /** - *

                          The time a FeatureGroup was created.

                          + *

                          A Boolean indicating whether managed spot training is enabled (True) or + * not (False).

                          */ - CreationTime?: Date; + EnableManagedSpotTraining?: boolean; /** - *

                          Use this to specify the AWS Key Management Service (KMS) Key ID, or - * KMSKeyId, for at rest data encryption. You can turn - * OnlineStore on or off by specifying the EnableOnlineStore flag - * at General Assembly; the default value is False.

                          + *

                          Contains information about the output location for managed spot training checkpoint + * data.

                          */ - OnlineStoreConfig?: OnlineStoreConfig; + CheckpointConfig?: CheckpointConfig; /** - *

                          The configuration of an OfflineStore.

                          - *

                          Provide an OfflineStoreConfig in a request to - * CreateFeatureGroup to create an OfflineStore.

                          - *

                          To encrypt an OfflineStore using at rest data encryption, specify AWS Key - * Management Service (KMS) key ID, or KMSKeyId, in - * S3StorageConfig.

                          + *

                          The training time in seconds.

                          */ - OfflineStoreConfig?: OfflineStoreConfig; + TrainingTimeInSeconds?: number; /** - *

                          The Amazon Resource Name (ARN) of the IAM execution role used to create the feature - * group.

                          + *

                          The billable time in seconds.

                          + *

                          You can calculate the savings from using managed spot training using the formula + * (1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100. For example, + * if BillableTimeInSeconds is 100 and TrainingTimeInSeconds is + * 500, the savings is 80%.

                          */ - RoleArn?: string; + BillableTimeInSeconds?: number; /** - *

                          A FeatureGroup status.

                          + *

                          Configuration information for the Debugger hook parameters, metric and tensor collections, and + * storage paths. To learn more about + * how to configure the DebugHookConfig parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          */ - FeatureGroupStatus?: FeatureGroupStatus | string; + DebugHookConfig?: DebugHookConfig; /** - *

                          The status of OfflineStore.

                          + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * */ - OfflineStoreStatus?: OfflineStoreStatus; + ExperimentConfig?: ExperimentConfig; /** - *

                          The reason that the FeatureGroup failed to - * be replicated in the OfflineStore. This is - * failure may be due to a failure to create a FeatureGroup in - * or delete a FeatureGroup from the OfflineStore.

                          + *

                          Configuration information for Debugger rules for debugging output tensors.

                          */ - FailureReason?: string; + DebugRuleConfigurations?: DebugRuleConfiguration[]; /** - *

                          A free form description of a FeatureGroup.

                          + *

                          Configuration of storage locations for the Debugger TensorBoard output data.

                          */ - Description?: string; + TensorBoardOutputConfig?: TensorBoardOutputConfig; /** - *

                          Tags used to define a FeatureGroup.

                          + *

                          Evaluation status of Debugger rules for debugging on a training job.

                          */ - Tags?: Tag[]; -} - -export namespace FeatureGroup { - export const filterSensitiveLog = (obj: FeatureGroup): any => ({ - ...obj, - }); -} - -export enum FeatureGroupSortBy { - CREATION_TIME = "CreationTime", - FEATURE_GROUP_STATUS = "FeatureGroupStatus", - NAME = "Name", - OFFLINE_STORE_STATUS = "OfflineStoreStatus", -} - -export enum FeatureGroupSortOrder { - ASCENDING = "Ascending", - DESCENDING = "Descending", -} + DebugRuleEvaluationStatuses?: DebugRuleEvaluationStatus[]; -/** - *

                          The name, Arn, CreationTime, FeatureGroup values, - * LastUpdatedTime and EnableOnlineStorage status of a - * FeatureGroup.

                          - */ -export interface FeatureGroupSummary { /** - *

                          The name of FeatureGroup.

                          + *

                          Configuration information for Debugger system monitoring, framework profiling, and + * storage paths.

                          */ - FeatureGroupName: string | undefined; + ProfilerConfig?: ProfilerConfig; /** - *

                          Unique identifier for the FeatureGroup.

                          + *

                          Configuration information for Debugger rules for profiling system and framework + * metrics.

                          */ - FeatureGroupArn: string | undefined; + ProfilerRuleConfigurations?: ProfilerRuleConfiguration[]; /** - *

                          A timestamp indicating the time of creation time of the FeatureGroup.

                          + *

                          Evaluation status of Debugger rules for profiling on a training job.

                          */ - CreationTime: Date | undefined; + ProfilerRuleEvaluationStatuses?: ProfilerRuleEvaluationStatus[]; /** - *

                          The status of a FeatureGroup. The status can be any of the following: - * Creating, Created, CreateFail, - * Deleting or DetailFail.

                          + *

                          Profiling status of a training job.

                          */ - FeatureGroupStatus?: FeatureGroupStatus | string; + ProfilingStatus?: ProfilingStatus | string; +} + +export namespace DescribeTrainingJobResponse { + export const filterSensitiveLog = (obj: DescribeTrainingJobResponse): any => ({ + ...obj, + }); +} +export interface DescribeTransformJobRequest { /** - *

                          Notifies you if replicating data into the OfflineStore has failed. Returns - * either: Active or Blocked.

                          + *

                          The name of the transform job that you want to view details of.

                          */ - OfflineStoreStatus?: OfflineStoreStatus; + TransformJobName: string | undefined; } -export namespace FeatureGroupSummary { - export const filterSensitiveLog = (obj: FeatureGroupSummary): any => ({ +export namespace DescribeTransformJobRequest { + export const filterSensitiveLog = (obj: DescribeTransformJobRequest): any => ({ ...obj, }); } -export enum Operator { - CONTAINS = "Contains", - EQUALS = "Equals", - EXISTS = "Exists", - GREATER_THAN = "GreaterThan", - GREATER_THAN_OR_EQUAL_TO = "GreaterThanOrEqualTo", - IN = "In", - LESS_THAN = "LessThan", - LESS_THAN_OR_EQUAL_TO = "LessThanOrEqualTo", - NOT_EQUALS = "NotEquals", - NOT_EXISTS = "NotExists", +export enum TransformJobStatus { + COMPLETED = "Completed", + FAILED = "Failed", + IN_PROGRESS = "InProgress", + STOPPED = "Stopped", + STOPPING = "Stopping", } -/** - *

                          A conditional statement for a search expression that includes a resource property, a - * Boolean operator, and a value. Resources that match the statement are returned in the - * results from the Search API.

                          - * - *

                          If you specify a Value, but not an Operator, Amazon SageMaker uses the - * equals operator.

                          - *

                          In search, there are several property types:

                          - *
                          - *
                          Metrics
                          - *
                          - *

                          To define a metric filter, enter a value using the form - * "Metrics.", where is - * a metric name. For example, the following filter searches for training jobs - * with an "accuracy" metric greater than - * "0.9":

                          - *

                          - * { - *

                          - *

                          - * "Name": "Metrics.accuracy", - *

                          - *

                          - * "Operator": "GreaterThan", - *

                          - *

                          - * "Value": "0.9" - *

                          - *

                          - * } - *

                          - *
                          - *
                          HyperParameters
                          - *
                          - *

                          To define a hyperparameter filter, enter a value with the form - * "HyperParameters.". Decimal hyperparameter - * values are treated as a decimal in a comparison if the specified - * Value is also a decimal value. If the specified - * Value is an integer, the decimal hyperparameter values are - * treated as integers. For example, the following filter is satisfied by - * training jobs with a "learning_rate" hyperparameter that is - * less than "0.5":

                          - *

                          - * { - *

                          - *

                          - * "Name": "HyperParameters.learning_rate", - *

                          - *

                          - * "Operator": "LessThan", - *

                          - *

                          - * "Value": "0.5" - *

                          - *

                          - * } - *

                          - *
                          - *
                          Tags
                          - *
                          - *

                          To define a tag filter, enter a value with the form - * Tags..

                          - *
                          - *
                          - */ -export interface Filter { +export interface DescribeTransformJobResponse { /** - *

                          A resource property name. For example, TrainingJobName. For - * valid property names, see SearchRecord. - * You must specify a valid property for the resource.

                          + *

                          The name of the transform job.

                          */ - Name: string | undefined; + TransformJobName: string | undefined; /** - *

                          A Boolean binary operator that is used to evaluate the filter. The operator field - * contains one of the following values:

                          - *
                          - *
                          Equals
                          - *
                          - *

                          The value of Name equals Value.

                          - *
                          - *
                          NotEquals
                          - *
                          - *

                          The value of Name doesn't equal Value.

                          - *
                          - *
                          Exists
                          - *
                          - *

                          The Name property exists.

                          - *
                          - *
                          NotExists
                          - *
                          - *

                          The Name property does not exist.

                          - *
                          - *
                          GreaterThan
                          - *
                          - *

                          The value of Name is greater than Value. - * Not supported for text properties.

                          - *
                          - *
                          GreaterThanOrEqualTo
                          - *
                          - *

                          The value of Name is greater than or equal to Value. - * Not supported for text properties.

                          - *
                          - *
                          LessThan
                          - *
                          - *

                          The value of Name is less than Value. - * Not supported for text properties.

                          - *
                          - *
                          LessThanOrEqualTo
                          - *
                          - *

                          The value of Name is less than or equal to Value. - * Not supported for text properties.

                          - *
                          - *
                          In
                          - *
                          - *

                          The value of Name is one of the comma delimited strings in - * Value. Only supported for text properties.

                          - *
                          - *
                          Contains
                          - *
                          - *

                          The value of Name contains the string Value. - * Only supported for text properties.

                          - *

                          A SearchExpression can include the Contains operator - * multiple times when the value of Name is one of the following:

                          - *
                            - *
                          • - *

                            - * Experiment.DisplayName - *

                            - *
                          • - *
                          • - *

                            - * Experiment.ExperimentName - *

                            - *
                          • - *
                          • - *

                            - * Experiment.Tags - *

                            - *
                          • - *
                          • - *

                            - * Trial.DisplayName - *

                            - *
                          • - *
                          • - *

                            - * Trial.TrialName - *

                            - *
                          • - *
                          • - *

                            - * Trial.Tags - *

                            - *
                          • - *
                          • - *

                            - * TrialComponent.DisplayName - *

                            - *
                          • - *
                          • - *

                            - * TrialComponent.TrialComponentName - *

                            - *
                          • - *
                          • - *

                            - * TrialComponent.Tags - *

                            - *
                          • - *
                          • - *

                            - * TrialComponent.InputArtifacts - *

                            - *
                          • - *
                          • - *

                            - * TrialComponent.OutputArtifacts - *

                            - *
                          • - *
                          - *

                          A SearchExpression can include only one Contains operator - * for all other values of Name. In these cases, if you include multiple - * Contains operators in the SearchExpression, the result is - * the following error message: "'CONTAINS' operator usage limit of 1 - * exceeded."

                          - *
                          - *
                          + *

                          The Amazon Resource Name (ARN) of the transform job.

                          */ - Operator?: Operator | string; + TransformJobArn: string | undefined; /** - *

                          A value used with Name and Operator to determine which - * resources satisfy the filter's condition. For numerical properties, Value - * must be an integer or floating-point decimal. For timestamp properties, - * Value must be an ISO 8601 date-time string of the following format: - * YYYY-mm-dd'T'HH:MM:SS.

                          + *

                          The + * status of the transform job. If the transform job failed, the reason + * is returned in the FailureReason field.

                          */ - Value?: string; -} - -export namespace Filter { - export const filterSensitiveLog = (obj: Filter): any => ({ - ...obj, - }); -} + TransformJobStatus: TransformJobStatus | string | undefined; -/** - *

                          Contains summary information about the flow definition.

                          - */ -export interface FlowDefinitionSummary { /** - *

                          The name of the flow definition.

                          + *

                          If the transform job failed, FailureReason describes + * why + * it failed. A transform job creates a log file, which includes error + * messages, and stores it + * as + * an Amazon S3 object. For more information, see Log Amazon SageMaker Events with + * Amazon CloudWatch.

                          */ - FlowDefinitionName: string | undefined; + FailureReason?: string; /** - *

                          The Amazon Resource Name (ARN) of the flow definition.

                          + *

                          The name of the model used in the transform job.

                          */ - FlowDefinitionArn: string | undefined; + ModelName: string | undefined; /** - *

                          The status of the flow definition. Valid values:

                          + *

                          The + * maximum number + * of + * parallel requests on each instance node + * that can be launched in a transform job. The default value is 1.

                          */ - FlowDefinitionStatus: FlowDefinitionStatus | string | undefined; + MaxConcurrentTransforms?: number; /** - *

                          The timestamp when SageMaker created the flow definition.

                          + *

                          The timeout and maximum number of retries for processing a transform job + * invocation.

                          */ - CreationTime: Date | undefined; + ModelClientConfig?: ModelClientConfig; /** - *

                          The reason why the flow definition creation failed. A failure reason is returned only when the flow definition status is Failed.

                          + *

                          The + * maximum + * payload size, in MB, used in the + * transform job.

                          */ - FailureReason?: string; -} - -export namespace FlowDefinitionSummary { - export const filterSensitiveLog = (obj: FlowDefinitionSummary): any => ({ - ...obj, - }); -} + MaxPayloadInMB?: number; -export interface GetModelPackageGroupPolicyInput { /** - *

                          The name of the model group for which to get the resource policy.

                          + *

                          Specifies the number of records to include in a mini-batch for an HTTP inference + * request. + * A record + * is a single unit of input data that inference + * can be made on. For example, a single line in a CSV file is a record.

                          + *

                          To enable the batch strategy, you must set SplitType + * to + * Line, RecordIO, or + * TFRecord.

                          */ - ModelPackageGroupName: string | undefined; -} - -export namespace GetModelPackageGroupPolicyInput { - export const filterSensitiveLog = (obj: GetModelPackageGroupPolicyInput): any => ({ - ...obj, - }); -} + BatchStrategy?: BatchStrategy | string; -export interface GetModelPackageGroupPolicyOutput { /** - *

                          The resource policy for the model group.

                          + *

                          The + * environment variables to set in the Docker container. We support up to 16 key and values + * entries in the map.

                          */ - ResourcePolicy: string | undefined; -} - -export namespace GetModelPackageGroupPolicyOutput { - export const filterSensitiveLog = (obj: GetModelPackageGroupPolicyOutput): any => ({ - ...obj, - }); -} - -export interface GetSagemakerServicecatalogPortfolioStatusInput {} - -export namespace GetSagemakerServicecatalogPortfolioStatusInput { - export const filterSensitiveLog = (obj: GetSagemakerServicecatalogPortfolioStatusInput): any => ({ - ...obj, - }); -} - -export enum SagemakerServicecatalogStatus { - DISABLED = "Disabled", - ENABLED = "Enabled", -} + Environment?: { [key: string]: string }; -export interface GetSagemakerServicecatalogPortfolioStatusOutput { /** - *

                          Whether Service Catalog is enabled or disabled in SageMaker.

                          + *

                          Describes the dataset to be transformed and the Amazon S3 location where it is + * stored.

                          */ - Status?: SagemakerServicecatalogStatus | string; -} - -export namespace GetSagemakerServicecatalogPortfolioStatusOutput { - export const filterSensitiveLog = (obj: GetSagemakerServicecatalogPortfolioStatusOutput): any => ({ - ...obj, - }); -} - -export enum ResourceType { - ENDPOINT = "Endpoint", - EXPERIMENT = "Experiment", - EXPERIMENT_TRIAL = "ExperimentTrial", - EXPERIMENT_TRIAL_COMPONENT = "ExperimentTrialComponent", - FEATURE_GROUP = "FeatureGroup", - MODEL_PACKAGE = "ModelPackage", - MODEL_PACKAGE_GROUP = "ModelPackageGroup", - PIPELINE = "Pipeline", - PIPELINE_EXECUTION = "PipelineExecution", - TRAINING_JOB = "TrainingJob", -} + TransformInput: TransformInput | undefined; -/** - *

                          Part of the SuggestionQuery type. Specifies a hint for retrieving property - * names that begin with the specified text.

                          - */ -export interface PropertyNameQuery { /** - *

                          Text that begins a property's name.

                          + *

                          Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the + * transform job.

                          */ - PropertyNameHint: string | undefined; -} - -export namespace PropertyNameQuery { - export const filterSensitiveLog = (obj: PropertyNameQuery): any => ({ - ...obj, - }); -} + TransformOutput?: TransformOutput; -/** - *

                          Specified in the GetSearchSuggestions request. - * Limits the property names that are included in the response.

                          - */ -export interface SuggestionQuery { /** - *

                          Defines a property name hint. Only property - * names that begin with the specified hint are included in the response.

                          + *

                          Describes + * the resources, including ML instance types and ML instance count, to + * use for the transform job.

                          */ - PropertyNameQuery?: PropertyNameQuery; -} + TransformResources: TransformResources | undefined; -export namespace SuggestionQuery { - export const filterSensitiveLog = (obj: SuggestionQuery): any => ({ - ...obj, - }); -} + /** + *

                          A timestamp that shows when the transform Job was created.

                          + */ + CreationTime: Date | undefined; -export interface GetSearchSuggestionsRequest { /** - *

                          The name of the Amazon SageMaker resource to search for.

                          + *

                          Indicates when the transform job starts + * on + * ML instances. You are billed for the time interval between this time + * and the value of TransformEndTime.

                          */ - Resource: ResourceType | string | undefined; + TransformStartTime?: Date; /** - *

                          Limits the property names that are included in the response.

                          + *

                          Indicates when the transform job has been + * + * completed, or has stopped or failed. You are billed for the time + * interval between this time and the value of TransformStartTime.

                          */ - SuggestionQuery?: SuggestionQuery; -} + TransformEndTime?: Date; -export namespace GetSearchSuggestionsRequest { - export const filterSensitiveLog = (obj: GetSearchSuggestionsRequest): any => ({ - ...obj, - }); -} + /** + *

                          The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the + * transform or training job.

                          + */ + LabelingJobArn?: string; -/** - *

                          A property name returned from a GetSearchSuggestions call that specifies - * a value in the PropertyNameQuery field.

                          - */ -export interface PropertyNameSuggestion { /** - *

                          A suggested property name based on what you entered in the search textbox in the Amazon SageMaker - * console.

                          + *

                          The Amazon Resource Name (ARN) of the AutoML transform job.

                          */ - PropertyName?: string; -} + AutoMLJobArn?: string; -export namespace PropertyNameSuggestion { - export const filterSensitiveLog = (obj: PropertyNameSuggestion): any => ({ - ...obj, - }); -} + /** + *

                          The data structure used to specify the data to be used for inference in a batch + * transform job and to associate the data that is relevant to the prediction results in + * the output. The input filter provided allows you to exclude input data that is not + * needed for inference in a batch transform job. The output filter provided allows you to + * include input data relevant to interpreting the predictions in the output from the job. + * For more information, see Associate Prediction + * Results with their Corresponding Input Records.

                          + */ + DataProcessing?: DataProcessing; -export interface GetSearchSuggestionsResponse { /** - *

                          A list of property names for a Resource that match a - * SuggestionQuery.

                          + *

                          Associates a SageMaker job as a trial component with an experiment and trial. Specified when + * you call the following APIs:

                          + * */ - PropertyNameSuggestions?: PropertyNameSuggestion[]; + ExperimentConfig?: ExperimentConfig; } -export namespace GetSearchSuggestionsResponse { - export const filterSensitiveLog = (obj: GetSearchSuggestionsResponse): any => ({ +export namespace DescribeTransformJobResponse { + export const filterSensitiveLog = (obj: DescribeTransformJobResponse): any => ({ ...obj, }); } - -/** - *

                          Specifies configuration details for a Git repository when the repository is - * updated.

                          - */ -export interface GitConfigForUpdate { + +export interface DescribeTrialRequest { /** - *

                          The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the - * credentials used to access the git repository. The secret must have a staging label of - * AWSCURRENT and must be in the following format:

                          - *

                          - * {"username": UserName, "password": - * Password} - *

                          + *

                          The name of the trial to describe.

                          */ - SecretArn?: string; + TrialName: string | undefined; } -export namespace GitConfigForUpdate { - export const filterSensitiveLog = (obj: GitConfigForUpdate): any => ({ +export namespace DescribeTrialRequest { + export const filterSensitiveLog = (obj: DescribeTrialRequest): any => ({ ...obj, }); } /** - *

                          Container for human task user interface information.

                          + *

                          The source of the trial.

                          */ -export interface HumanTaskUiSummary { - /** - *

                          The name of the human task user interface.

                          - */ - HumanTaskUiName: string | undefined; - +export interface TrialSource { /** - *

                          The Amazon Resource Name (ARN) of the human task user interface.

                          + *

                          The Amazon Resource Name (ARN) of the source.

                          */ - HumanTaskUiArn: string | undefined; + SourceArn: string | undefined; /** - *

                          A timestamp when SageMaker created the human task user interface.

                          + *

                          The source job type.

                          */ - CreationTime: Date | undefined; + SourceType?: string; } -export namespace HumanTaskUiSummary { - export const filterSensitiveLog = (obj: HumanTaskUiSummary): any => ({ +export namespace TrialSource { + export const filterSensitiveLog = (obj: TrialSource): any => ({ ...obj, }); } -export enum HyperParameterTuningJobSortByOptions { - CreationTime = "CreationTime", - Name = "Name", - Status = "Status", -} +export interface DescribeTrialResponse { + /** + *

                          The name of the trial.

                          + */ + TrialName?: string; -/** - *

                          Provides summary information about a hyperparameter tuning job.

                          - */ -export interface HyperParameterTuningJobSummary { /** - *

                          The name of the tuning job.

                          + *

                          The Amazon Resource Name (ARN) of the trial.

                          */ - HyperParameterTuningJobName: string | undefined; + TrialArn?: string; /** - *

                          The - * Amazon - * Resource Name (ARN) of the tuning job.

                          + *

                          The name of the trial as displayed. If DisplayName isn't specified, + * TrialName is displayed.

                          */ - HyperParameterTuningJobArn: string | undefined; + DisplayName?: string; /** - *

                          The status of the - * tuning - * job.

                          + *

                          The name of the experiment the trial is part of.

                          */ - HyperParameterTuningJobStatus: HyperParameterTuningJobStatus | string | undefined; + ExperimentName?: string; /** - *

                          Specifies the search strategy hyperparameter tuning uses to choose which - * hyperparameters to - * use - * for each iteration. Currently, the only valid value is - * Bayesian.

                          + *

                          The Amazon Resource Name (ARN) of the source and, optionally, the job type.

                          */ - Strategy: HyperParameterTuningJobStrategyType | string | undefined; + Source?: TrialSource; /** - *

                          The date and time that the tuning job was created.

                          + *

                          When the trial was created.

                          */ - CreationTime: Date | undefined; + CreationTime?: Date; /** - *

                          The date and time that the tuning job ended.

                          + *

                          Who created the trial.

                          */ - HyperParameterTuningEndTime?: Date; + CreatedBy?: UserContext; /** - *

                          The date and time that the tuning job was - * modified.

                          + *

                          When the trial was last modified.

                          */ LastModifiedTime?: Date; /** - *

                          The TrainingJobStatusCounters object that specifies the numbers of - * training jobs, categorized by status, that this tuning job launched.

                          + *

                          Who last modified the trial.

                          */ - TrainingJobStatusCounters: TrainingJobStatusCounters | undefined; + LastModifiedBy?: UserContext; /** - *

                          The ObjectiveStatusCounters object that specifies the numbers of - * training jobs, categorized by objective metric status, that this tuning job - * launched.

                          + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          */ - ObjectiveStatusCounters: ObjectiveStatusCounters | undefined; + MetadataProperties?: MetadataProperties; +} +export namespace DescribeTrialResponse { + export const filterSensitiveLog = (obj: DescribeTrialResponse): any => ({ + ...obj, + }); +} + +export interface DescribeTrialComponentRequest { /** - *

                          The ResourceLimits object that specifies the maximum number of - * training jobs and parallel training jobs allowed for this tuning job.

                          + *

                          The name of the trial component to describe.

                          */ - ResourceLimits?: ResourceLimits; + TrialComponentName: string | undefined; } -export namespace HyperParameterTuningJobSummary { - export const filterSensitiveLog = (obj: HyperParameterTuningJobSummary): any => ({ +export namespace DescribeTrialComponentRequest { + export const filterSensitiveLog = (obj: DescribeTrialComponentRequest): any => ({ ...obj, }); } /** - *

                          A SageMaker image. A SageMaker image represents a set of container images that are derived from - * a common base container image. Each of these container images is represented by a SageMaker - * ImageVersion.

                          + *

                          A summary of the metrics of a trial component.

                          */ -export interface Image { +export interface TrialComponentMetricSummary { /** - *

                          When the image was created.

                          + *

                          The name of the metric.

                          */ - CreationTime: Date | undefined; + MetricName?: string; /** - *

                          The description of the image.

                          + *

                          The Amazon Resource Name (ARN) of the source.

                          */ - Description?: string; + SourceArn?: string; /** - *

                          The name of the image as displayed.

                          + *

                          When the metric was last updated.

                          */ - DisplayName?: string; + TimeStamp?: Date; /** - *

                          When a create, update, or delete operation fails, the reason for the failure.

                          + *

                          The maximum value of the metric.

                          */ - FailureReason?: string; + Max?: number; /** - *

                          The Amazon Resource Name (ARN) of the image.

                          + *

                          The minimum value of the metric.

                          + */ + Min?: number; + + /** + *

                          The most recent value of the metric.

                          */ - ImageArn: string | undefined; + Last?: number; /** - *

                          The name of the image.

                          + *

                          The number of samples used to generate the metric.

                          */ - ImageName: string | undefined; + Count?: number; /** - *

                          The status of the image.

                          + *

                          The average value of the metric.

                          */ - ImageStatus: ImageStatus | string | undefined; + Avg?: number; /** - *

                          When the image was last modified.

                          + *

                          The standard deviation of the metric.

                          */ - LastModifiedTime: Date | undefined; + StdDev?: number; } -export namespace Image { - export const filterSensitiveLog = (obj: Image): any => ({ +export namespace TrialComponentMetricSummary { + export const filterSensitiveLog = (obj: TrialComponentMetricSummary): any => ({ ...obj, }); } -export enum ImageSortBy { - CREATION_TIME = "CREATION_TIME", - IMAGE_NAME = "IMAGE_NAME", - LAST_MODIFIED_TIME = "LAST_MODIFIED_TIME", -} - -export enum ImageSortOrder { - ASCENDING = "ASCENDING", - DESCENDING = "DESCENDING", -} - /** - *

                          A version of a SageMaker Image. A version represents an existing container - * image.

                          + *

                          The Amazon Resource Name (ARN) and job type of the source of a trial component.

                          */ -export interface ImageVersion { +export interface TrialComponentSource { /** - *

                          When the version was created.

                          + *

                          The source ARN.

                          */ - CreationTime: Date | undefined; + SourceArn: string | undefined; /** - *

                          When a create or delete operation fails, the reason for the failure.

                          + *

                          The source job type.

                          */ - FailureReason?: string; + SourceType?: string; +} + +export namespace TrialComponentSource { + export const filterSensitiveLog = (obj: TrialComponentSource): any => ({ + ...obj, + }); +} +export interface DescribeTrialComponentResponse { /** - *

                          The Amazon Resource Name (ARN) of the image the version is based on.

                          + *

                          The name of the trial component.

                          */ - ImageArn: string | undefined; + TrialComponentName?: string; /** - *

                          The ARN of the version.

                          + *

                          The Amazon Resource Name (ARN) of the trial component.

                          */ - ImageVersionArn: string | undefined; + TrialComponentArn?: string; /** - *

                          The status of the version.

                          + *

                          The name of the component as displayed. If DisplayName isn't specified, + * TrialComponentName is displayed.

                          */ - ImageVersionStatus: ImageVersionStatus | string | undefined; + DisplayName?: string; /** - *

                          When the version was last modified.

                          + *

                          The Amazon Resource Name (ARN) of the source and, optionally, the job type.

                          */ - LastModifiedTime: Date | undefined; + Source?: TrialComponentSource; /** - *

                          The version number.

                          + *

                          The status of the component. States include:

                          + *
                            + *
                          • + *

                            InProgress

                            + *
                          • + *
                          • + *

                            Completed

                            + *
                          • + *
                          • + *

                            Failed

                            + *
                          • + *
                          */ - Version: number | undefined; -} - -export namespace ImageVersion { - export const filterSensitiveLog = (obj: ImageVersion): any => ({ - ...obj, - }); -} - -export enum ImageVersionSortBy { - CREATION_TIME = "CREATION_TIME", - LAST_MODIFIED_TIME = "LAST_MODIFIED_TIME", - VERSION = "VERSION", -} + Status?: TrialComponentStatus; -export enum ImageVersionSortOrder { - ASCENDING = "ASCENDING", - DESCENDING = "DESCENDING", -} + /** + *

                          When the component started.

                          + */ + StartTime?: Date; -/** - *

                          Provides counts for human-labeled tasks in the labeling job.

                          - */ -export interface LabelCountersForWorkteam { /** - *

                          The total number of data objects labeled by a human worker.

                          + *

                          When the component ended.

                          */ - HumanLabeled?: number; + EndTime?: Date; /** - *

                          The total number of data objects that need to be labeled by a human worker.

                          + *

                          When the component was created.

                          */ - PendingHuman?: number; + CreationTime?: Date; /** - *

                          The total number of tasks in the labeling job.

                          + *

                          Who created the component.

                          */ - Total?: number; -} + CreatedBy?: UserContext; -export namespace LabelCountersForWorkteam { - export const filterSensitiveLog = (obj: LabelCountersForWorkteam): any => ({ - ...obj, - }); -} + /** + *

                          When the component was last modified.

                          + */ + LastModifiedTime?: Date; -/** - *

                          Provides summary information for a work team.

                          - */ -export interface LabelingJobForWorkteamSummary { /** - *

                          The name of the labeling job that the work team is assigned to.

                          + *

                          Who last modified the component.

                          */ - LabelingJobName?: string; + LastModifiedBy?: UserContext; /** - *

                          A unique identifier for a labeling job. You can use this to refer to a specific - * labeling job.

                          + *

                          The hyperparameters of the component.

                          */ - JobReferenceCode: string | undefined; + Parameters?: { [key: string]: TrialComponentParameterValue }; /** - *

                          + *

                          The input artifacts of the component.

                          */ - WorkRequesterAccountId: string | undefined; + InputArtifacts?: { [key: string]: TrialComponentArtifact }; /** - *

                          The date and time that the labeling job was created.

                          + *

                          The output artifacts of the component.

                          */ - CreationTime: Date | undefined; + OutputArtifacts?: { [key: string]: TrialComponentArtifact }; /** - *

                          Provides information about the progress of a labeling job.

                          + *

                          Metadata properties of the tracking entity, trial, or trial component.

                          */ - LabelCounters?: LabelCountersForWorkteam; + MetadataProperties?: MetadataProperties; /** - *

                          The configured number of workers per data object.

                          + *

                          The metrics for the component.

                          */ - NumberOfHumanWorkersPerDataObject?: number; + Metrics?: TrialComponentMetricSummary[]; } -export namespace LabelingJobForWorkteamSummary { - export const filterSensitiveLog = (obj: LabelingJobForWorkteamSummary): any => ({ +export namespace DescribeTrialComponentResponse { + export const filterSensitiveLog = (obj: DescribeTrialComponentResponse): any => ({ ...obj, + ...(obj.Parameters && { + Parameters: Object.entries(obj.Parameters).reduce( + (acc: any, [key, value]: [string, TrialComponentParameterValue]) => ({ + ...acc, + [key]: TrialComponentParameterValue.filterSensitiveLog(value), + }), + {} + ), + }), }); } -/** - *

                          Provides summary information about a labeling job.

                          - */ -export interface LabelingJobSummary { +export interface DescribeUserProfileRequest { /** - *

                          The name of the labeling job.

                          + *

                          The domain ID.

                          */ - LabelingJobName: string | undefined; + DomainId: string | undefined; /** - *

                          The Amazon Resource Name (ARN) assigned to the labeling job when it was - * created.

                          + *

                          The user profile name.

                          */ - LabelingJobArn: string | undefined; + UserProfileName: string | undefined; +} + +export namespace DescribeUserProfileRequest { + export const filterSensitiveLog = (obj: DescribeUserProfileRequest): any => ({ + ...obj, + }); +} + +export enum UserProfileStatus { + Delete_Failed = "Delete_Failed", + Deleting = "Deleting", + Failed = "Failed", + InService = "InService", + Pending = "Pending", + Update_Failed = "Update_Failed", + Updating = "Updating", +} + +export interface DescribeUserProfileResponse { + /** + *

                          The ID of the domain that contains the profile.

                          + */ + DomainId?: string; /** - *

                          The date and time that the job was created (timestamp).

                          + *

                          The user profile Amazon Resource Name (ARN).

                          */ - CreationTime: Date | undefined; + UserProfileArn?: string; /** - *

                          The date and time that the job was last modified (timestamp).

                          + *

                          The user profile name.

                          */ - LastModifiedTime: Date | undefined; + UserProfileName?: string; /** - *

                          The current status of the labeling job.

                          + *

                          The ID of the user's profile in the Amazon Elastic File System (EFS) volume.

                          */ - LabelingJobStatus: LabelingJobStatus | string | undefined; + HomeEfsFileSystemUid?: string; /** - *

                          Counts showing the progress of the labeling job.

                          + *

                          The status.

                          */ - LabelCounters: LabelCounters | undefined; + Status?: UserProfileStatus | string; /** - *

                          The Amazon Resource Name (ARN) of the work team assigned to the job.

                          + *

                          The last modified time.

                          */ - WorkteamArn: string | undefined; + LastModifiedTime?: Date; /** - *

                          The Amazon Resource Name (ARN) of a Lambda function. The function is run before each - * data object is sent to a worker.

                          + *

                          The creation time.

                          */ - PreHumanTaskLambdaArn: string | undefined; + CreationTime?: Date; /** - *

                          The Amazon Resource Name (ARN) of the Lambda function used to consolidate the - * annotations from individual workers into a label for a data object. For more - * information, see Annotation - * Consolidation.

                          + *

                          The failure reason.

                          */ - AnnotationConsolidationLambdaArn?: string; + FailureReason?: string; /** - *

                          If the LabelingJobStatus field is Failed, this field - * contains a description of the error.

                          + *

                          The SSO user identifier.

                          */ - FailureReason?: string; + SingleSignOnUserIdentifier?: string; /** - *

                          The location of the output produced by the labeling job.

                          + *

                          The SSO user value.

                          */ - LabelingJobOutput?: LabelingJobOutput; + SingleSignOnUserValue?: string; /** - *

                          Input configuration for the labeling job.

                          + *

                          A collection of settings.

                          */ - InputConfig?: LabelingJobInputConfig; + UserSettings?: UserSettings; } -export namespace LabelingJobSummary { - export const filterSensitiveLog = (obj: LabelingJobSummary): any => ({ +export namespace DescribeUserProfileResponse { + export const filterSensitiveLog = (obj: DescribeUserProfileResponse): any => ({ ...obj, }); } -export enum SortActionsBy { - CREATION_TIME = "CreationTime", - NAME = "Name", +export interface DescribeWorkforceRequest { + /** + *

                          The name of the private workforce whose access you want to restrict. + * WorkforceName is automatically set to default when a + * workforce is created and cannot be modified.

                          + */ + WorkforceName: string | undefined; } -export enum SortOrder { - ASCENDING = "Ascending", - DESCENDING = "Descending", +export namespace DescribeWorkforceRequest { + export const filterSensitiveLog = (obj: DescribeWorkforceRequest): any => ({ + ...obj, + }); } -export interface ListActionsRequest { - /** - *

                          A filter that returns only actions with the specified source URI.

                          - */ - SourceUri?: string; - +/** + *

                          Your OIDC IdP workforce configuration.

                          + */ +export interface OidcConfigForResponse { /** - *

                          A filter that returns only actions of the specified type.

                          + *

                          The OIDC IdP client ID used to configure your private workforce.

                          */ - ActionType?: string; + ClientId?: string; /** - *

                          A filter that returns only actions created on or after the specified time.

                          + *

                          The OIDC IdP issuer used to configure your private workforce.

                          */ - CreatedAfter?: Date; + Issuer?: string; /** - *

                          A filter that returns only actions created on or before the specified time.

                          + *

                          The OIDC IdP authorization endpoint used to configure your private workforce.

                          */ - CreatedBefore?: Date; + AuthorizationEndpoint?: string; /** - *

                          The property used to sort results. The default value is CreationTime.

                          + *

                          The OIDC IdP token endpoint used to configure your private workforce.

                          */ - SortBy?: SortActionsBy | string; + TokenEndpoint?: string; /** - *

                          The sort order. The default value is Descending.

                          + *

                          The OIDC IdP user information endpoint used to configure your private workforce.

                          */ - SortOrder?: SortOrder | string; + UserInfoEndpoint?: string; /** - *

                          If the previous call to ListActions didn't return the full set of actions, - * the call returns a token for getting the next set of actions.

                          + *

                          The OIDC IdP logout endpoint used to configure your private workforce.

                          */ - NextToken?: string; + LogoutEndpoint?: string; /** - *

                          The maximum number of actions to return in the response. The default value is 10.

                          + *

                          The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.

                          */ - MaxResults?: number; + JwksUri?: string; } -export namespace ListActionsRequest { - export const filterSensitiveLog = (obj: ListActionsRequest): any => ({ +export namespace OidcConfigForResponse { + export const filterSensitiveLog = (obj: OidcConfigForResponse): any => ({ ...obj, }); } -export interface ListActionsResponse { - /** - *

                          A list of actions and their properties.

                          - */ - ActionSummaries?: ActionSummary[]; - +/** + *

                          A single private workforce, which is automatically created when you create your first + * private work team. You can create one private work force in each AWS Region. By default, + * any workforce-related API operation used in a specific region will apply to the + * workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

                          + */ +export interface Workforce { /** - *

                          A token for getting the next set of actions, if there are any.

                          + *

                          The name of the private workforce.

                          */ - NextToken?: string; -} - -export namespace ListActionsResponse { - export const filterSensitiveLog = (obj: ListActionsResponse): any => ({ - ...obj, - }); -} + WorkforceName: string | undefined; -export interface ListAlgorithmsInput { /** - *

                          A filter that returns only algorithms created after the specified time - * (timestamp).

                          + *

                          The Amazon Resource Name (ARN) of the private workforce.

                          */ - CreationTimeAfter?: Date; + WorkforceArn: string | undefined; /** - *

                          A filter that returns only algorithms created before the specified time - * (timestamp).

                          + *

                          The most recent date that was used to + * successfully add one or more IP address ranges (CIDRs) to a private workforce's + * allow list.

                          */ - CreationTimeBefore?: Date; + LastUpdatedDate?: Date; /** - *

                          The maximum number of algorithms to return in the response.

                          + *

                          A list of one to ten IP address ranges (CIDRs) to be added to the + * workforce allow list. By default, a workforce isn't restricted to specific IP addresses.

                          */ - MaxResults?: number; + SourceIpConfig?: SourceIpConfig; /** - *

                          A string in the algorithm name. This filter returns only algorithms whose name - * contains the specified string.

                          + *

                          The subdomain for your OIDC Identity Provider.

                          */ - NameContains?: string; + SubDomain?: string; /** - *

                          If the response to a previous ListAlgorithms request was truncated, the - * response includes a NextToken. To retrieve the next set of algorithms, use - * the token in the next request.

                          + *

                          The configuration of an Amazon Cognito workforce. + * A single Cognito workforce is created using and corresponds to a single + * + * Amazon Cognito user pool.

                          */ - NextToken?: string; + CognitoConfig?: CognitoConfig; /** - *

                          The parameter by which to sort the results. The default is - * CreationTime.

                          + *

                          The configuration of an OIDC Identity Provider (IdP) private workforce.

                          */ - SortBy?: AlgorithmSortBy | string; + OidcConfig?: OidcConfigForResponse; /** - *

                          The sort order for the results. The default is Ascending.

                          + *

                          The date that the workforce is created.

                          */ - SortOrder?: SortOrder | string; + CreateDate?: Date; } -export namespace ListAlgorithmsInput { - export const filterSensitiveLog = (obj: ListAlgorithmsInput): any => ({ +export namespace Workforce { + export const filterSensitiveLog = (obj: Workforce): any => ({ ...obj, }); } -export interface ListAlgorithmsOutput { +export interface DescribeWorkforceResponse { /** - *

                          >An array of AlgorithmSummary objects, each of which lists an - * algorithm.

                          + *

                          A single private workforce, which is automatically created when you create your first + * private work team. You can create one private work force in each AWS Region. By default, + * any workforce-related API operation used in a specific region will apply to the + * workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

                          */ - AlgorithmSummaryList: AlgorithmSummary[] | undefined; + Workforce: Workforce | undefined; +} + +export namespace DescribeWorkforceResponse { + export const filterSensitiveLog = (obj: DescribeWorkforceResponse): any => ({ + ...obj, + }); +} +export interface DescribeWorkteamRequest { /** - *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of - * algorithms, use it in the subsequent request.

                          + *

                          The name of the work team to return a description of.

                          */ - NextToken?: string; + WorkteamName: string | undefined; } -export namespace ListAlgorithmsOutput { - export const filterSensitiveLog = (obj: ListAlgorithmsOutput): any => ({ +export namespace DescribeWorkteamRequest { + export const filterSensitiveLog = (obj: DescribeWorkteamRequest): any => ({ ...obj, }); } -export interface ListAppImageConfigsRequest { +/** + *

                          Provides details about a labeling work team.

                          + */ +export interface Workteam { + /** + *

                          The name of the work team.

                          + */ + WorkteamName: string | undefined; + /** - *

                          The maximum number of AppImageConfigs to return in the response. The default value is - * 10.

                          + *

                          A list of MemberDefinition objects that contains objects that identify + * the workers that make up the work team.

                          + *

                          Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). + * For private workforces created using Amazon Cognito use + * CognitoMemberDefinition. For workforces created using your own OIDC identity + * provider (IdP) use OidcMemberDefinition.

                          */ - MaxResults?: number; + MemberDefinitions: MemberDefinition[] | undefined; /** - *

                          If the previous call to ListImages didn't return the full set of - * AppImageConfigs, the call returns a token for getting the next set of AppImageConfigs.

                          + *

                          The Amazon Resource Name (ARN) that identifies the work team.

                          */ - NextToken?: string; + WorkteamArn: string | undefined; /** - *

                          A filter that returns only AppImageConfigs whose name contains the specified string.

                          + *

                          The Amazon Resource Name (ARN) of the workforce.

                          */ - NameContains?: string; + WorkforceArn?: string; /** - *

                          A filter that returns only AppImageConfigs created on or before the specified time.

                          + *

                          The Amazon Marketplace identifier for a vendor's work team.

                          */ - CreationTimeBefore?: Date; + ProductListingIds?: string[]; /** - *

                          A filter that returns only AppImageConfigs created on or after the specified time.

                          + *

                          A description of the work team.

                          */ - CreationTimeAfter?: Date; + Description: string | undefined; /** - *

                          A filter that returns only AppImageConfigs modified on or before the specified time.

                          + *

                          The URI of the labeling job's user interface. Workers open this URI to start labeling + * your data objects.

                          */ - ModifiedTimeBefore?: Date; + SubDomain?: string; /** - *

                          A filter that returns only AppImageConfigs modified on or after the specified time.

                          + *

                          The date and time that the work team was created (timestamp).

                          */ - ModifiedTimeAfter?: Date; + CreateDate?: Date; /** - *

                          The property used to sort results. The default value is CreationTime.

                          + *

                          The date and time that the work team was last updated (timestamp).

                          */ - SortBy?: AppImageConfigSortKey | string; + LastUpdatedDate?: Date; /** - *

                          The sort order. The default value is Descending.

                          + *

                          Configures SNS notifications of available or expiring work items for work + * teams.

                          */ - SortOrder?: SortOrder | string; + NotificationConfiguration?: NotificationConfiguration; } -export namespace ListAppImageConfigsRequest { - export const filterSensitiveLog = (obj: ListAppImageConfigsRequest): any => ({ +export namespace Workteam { + export const filterSensitiveLog = (obj: Workteam): any => ({ ...obj, }); } -export interface ListAppImageConfigsResponse { - /** - *

                          A token for getting the next set of AppImageConfigs, if there are any.

                          - */ - NextToken?: string; - +export interface DescribeWorkteamResponse { /** - *

                          A list of AppImageConfigs and their properties.

                          + *

                          A Workteam instance that contains information about the work team. + *

                          */ - AppImageConfigs?: AppImageConfigDetails[]; + Workteam: Workteam | undefined; } -export namespace ListAppImageConfigsResponse { - export const filterSensitiveLog = (obj: ListAppImageConfigsResponse): any => ({ +export namespace DescribeWorkteamResponse { + export const filterSensitiveLog = (obj: DescribeWorkteamResponse): any => ({ ...obj, }); } -export interface ListAppsRequest { - /** - *

                          If the previous response was truncated, you will receive this token. - * Use it in your next request to receive the next set of results.

                          - */ - NextToken?: string; - - /** - *

                          Returns a list up to a specified limit.

                          - */ - MaxResults?: number; - - /** - *

                          The sort order for the results. The default is Ascending.

                          - */ - SortOrder?: SortOrder | string; - +/** + *

                          Specifies weight and capacity values for a production variant.

                          + */ +export interface DesiredWeightAndCapacity { /** - *

                          The parameter by which to sort the results. The default is CreationTime.

                          + *

                          The name of the + * variant + * to update.

                          */ - SortBy?: AppSortKey | string; + VariantName: string | undefined; /** - *

                          A parameter to search for the domain ID.

                          + *

                          The variant's weight.

                          */ - DomainIdEquals?: string; + DesiredWeight?: number; /** - *

                          A parameter to search by user profile name.

                          + *

                          The variant's capacity.

                          */ - UserProfileNameEquals?: string; + DesiredInstanceCount?: number; } -export namespace ListAppsRequest { - export const filterSensitiveLog = (obj: ListAppsRequest): any => ({ +export namespace DesiredWeightAndCapacity { + export const filterSensitiveLog = (obj: DesiredWeightAndCapacity): any => ({ ...obj, }); } -export interface ListAppsResponse { +/** + *

                          Information of a particular device.

                          + */ +export interface Device { /** - *

                          The list of apps.

                          + *

                          The name of the device.

                          */ - Apps?: AppDetails[]; + DeviceName: string | undefined; /** - *

                          If the previous response was truncated, you will receive this token. - * Use it in your next request to receive the next set of results.

                          + *

                          Description of the device.

                          */ - NextToken?: string; + Description?: string; + + /** + *

                          AWS Internet of Things (IoT) object name.

                          + */ + IotThingName?: string; } -export namespace ListAppsResponse { - export const filterSensitiveLog = (obj: ListAppsResponse): any => ({ +export namespace Device { + export const filterSensitiveLog = (obj: Device): any => ({ ...obj, }); } -export enum SortArtifactsBy { - CREATION_TIME = "CreationTime", -} - -export interface ListArtifactsRequest { - /** - *

                          A filter that returns only artifacts with the specified source URI.

                          - */ - SourceUri?: string; - +/** + *

                          Summary of the device fleet.

                          + */ +export interface DeviceFleetSummary { /** - *

                          A filter that returns only artifacts of the specified type.

                          + *

                          Amazon Resource Name (ARN) of the device fleet.

                          */ - ArtifactType?: string; + DeviceFleetArn: string | undefined; /** - *

                          A filter that returns only artifacts created on or after the specified time.

                          + *

                          Name of the device fleet.

                          */ - CreatedAfter?: Date; + DeviceFleetName: string | undefined; /** - *

                          A filter that returns only artifacts created on or before the specified time.

                          + *

                          Timestamp of when the device fleet was created.

                          */ - CreatedBefore?: Date; + CreationTime?: Date; /** - *

                          The property used to sort results. The default value is CreationTime.

                          + *

                          Timestamp of when the device fleet was last updated.

                          */ - SortBy?: SortArtifactsBy | string; + LastModifiedTime?: Date; +} - /** - *

                          The sort order. The default value is Descending.

                          - */ - SortOrder?: SortOrder | string; +export namespace DeviceFleetSummary { + export const filterSensitiveLog = (obj: DeviceFleetSummary): any => ({ + ...obj, + }); +} +/** + *

                          Status of devices.

                          + */ +export interface DeviceStats { /** - *

                          If the previous call to ListArtifacts didn't return the full set of artifacts, - * the call returns a token for getting the next set of artifacts.

                          + *

                          The number of devices connected with a heartbeat.

                          */ - NextToken?: string; + ConnectedDeviceCount: number | undefined; /** - *

                          The maximum number of artifacts to return in the response. The default value is 10.

                          + *

                          The number of registered devices.

                          */ - MaxResults?: number; + RegisteredDeviceCount: number | undefined; } -export namespace ListArtifactsRequest { - export const filterSensitiveLog = (obj: ListArtifactsRequest): any => ({ +export namespace DeviceStats { + export const filterSensitiveLog = (obj: DeviceStats): any => ({ ...obj, }); } -export interface ListArtifactsResponse { +/** + *

                          Summary of model on edge device.

                          + */ +export interface EdgeModelSummary { /** - *

                          A list of artifacts and their properties.

                          + *

                          The name of the model.

                          */ - ArtifactSummaries?: ArtifactSummary[]; + ModelName: string | undefined; /** - *

                          A token for getting the next set of artifacts, if there are any.

                          + *

                          The version model.

                          */ - NextToken?: string; + ModelVersion: string | undefined; } -export namespace ListArtifactsResponse { - export const filterSensitiveLog = (obj: ListArtifactsResponse): any => ({ +export namespace EdgeModelSummary { + export const filterSensitiveLog = (obj: EdgeModelSummary): any => ({ ...obj, }); } -export enum SortAssociationsBy { - CREATION_TIME = "CreationTime", - DESTINATION_ARN = "DestinationArn", - DESTINATION_TYPE = "DestinationType", - SOURCE_ARN = "SourceArn", - SOURCE_TYPE = "SourceType", -} - -export interface ListAssociationsRequest { +/** + *

                          Summary of the device.

                          + */ +export interface DeviceSummary { /** - *

                          A filter that returns only associations with the specified source ARN.

                          + *

                          The unique identifier of the device.

                          */ - SourceArn?: string; + DeviceName: string | undefined; /** - *

                          A filter that returns only associations with the specified destination Amazon Resource Name (ARN).

                          + *

                          Amazon Resource Name (ARN) of the device.

                          */ - DestinationArn?: string; + DeviceArn: string | undefined; /** - *

                          A filter that returns only associations with the specified source type.

                          + *

                          A description of the device.

                          */ - SourceType?: string; + Description?: string; /** - *

                          A filter that returns only associations with the specified destination type.

                          + *

                          The name of the fleet the device belongs to.

                          */ - DestinationType?: string; + DeviceFleetName?: string; /** - *

                          A filter that returns only associations of the specified type.

                          + *

                          The AWS Internet of Things (IoT) object thing name associated with the device..

                          */ - AssociationType?: AssociationEdgeType | string; + IotThingName?: string; /** - *

                          A filter that returns only associations created on or after the specified time.

                          + *

                          The timestamp of the last registration or de-reregistration.

                          */ - CreatedAfter?: Date; + RegistrationTime?: Date; /** - *

                          A filter that returns only associations created on or before the specified time.

                          + *

                          The last heartbeat received from the device.

                          */ - CreatedBefore?: Date; + LatestHeartbeat?: Date; /** - *

                          The property used to sort results. The default value is CreationTime.

                          + *

                          Models on the device.

                          */ - SortBy?: SortAssociationsBy | string; + Models?: EdgeModelSummary[]; +} - /** - *

                          The sort order. The default value is Descending.

                          - */ - SortOrder?: SortOrder | string; +export namespace DeviceSummary { + export const filterSensitiveLog = (obj: DeviceSummary): any => ({ + ...obj, + }); +} - /** - *

                          If the previous call to ListAssociations didn't return the full set of associations, - * the call returns a token for getting the next set of associations.

                          - */ - NextToken?: string; +export interface DisableSagemakerServicecatalogPortfolioInput {} - /** - *

                          The maximum number of associations to return in the response. The default value is 10.

                          - */ - MaxResults?: number; +export namespace DisableSagemakerServicecatalogPortfolioInput { + export const filterSensitiveLog = (obj: DisableSagemakerServicecatalogPortfolioInput): any => ({ + ...obj, + }); } -export namespace ListAssociationsRequest { - export const filterSensitiveLog = (obj: ListAssociationsRequest): any => ({ +export interface DisableSagemakerServicecatalogPortfolioOutput {} + +export namespace DisableSagemakerServicecatalogPortfolioOutput { + export const filterSensitiveLog = (obj: DisableSagemakerServicecatalogPortfolioOutput): any => ({ ...obj, }); } diff --git a/clients/client-sagemaker/models/models_2.ts b/clients/client-sagemaker/models/models_2.ts index 65ae77ae76fbf..7d48ef0c1b0b4 100644 --- a/clients/client-sagemaker/models/models_2.ts +++ b/clients/client-sagemaker/models/models_2.ts @@ -1,7 +1,17 @@ import { ActionStatus, + ActionSummary, + AgentVersion, + AlgorithmSortBy, AlgorithmSpecification, + AlgorithmSummary, + AppDetails, + AppImageConfigDetails, + AppImageConfigSortKey, + AppSortKey, AppSpecification, + ArtifactSummary, + AssociationEdgeType, AssociationSummary, AutoMLCandidate, AutoMLJobStatus, @@ -9,7 +19,6 @@ import { AutoMLSortBy, AutoMLSortOrder, BatchStrategy, - BooleanOperator, CacheHitResult, CandidateSortBy, CandidateStatus, @@ -22,19 +31,21 @@ import { CompilationJobSummary, ConditionStepMetadata, ContextSummary, + EdgeOutputConfig, + FeatureDefinition, + HyperParameterTuningJobStrategyType, InferenceSpecification, KernelGatewayImageConfig, + LabelingJobInputConfig, MetadataProperties, ModelApprovalStatus, ModelMetrics, ModelPackageValidationSpecification, - MonitoringScheduleConfig, - NetworkConfig, - NotebookInstanceAcceleratorType, - NotebookInstanceLifecycleHook, + OfflineStoreConfig, + OnlineStoreConfig, OutputDataConfig, ResourceConfig, - RootAccess, + ResourceLimits, SourceAlgorithmSpecification, StoppingCondition, Tag, @@ -45,48 +56,34 @@ import { UserContext, UserSettings, VpcConfig, - _InstanceType, } from "./models_0"; import { + DataCaptureConfigSummary, DataProcessing, DebugHookConfig, DebugRuleConfiguration, DebugRuleEvaluationStatus, DeploymentConfig, DesiredWeightAndCapacity, - DomainDetails, - Endpoint, - EndpointConfigSortKey, - EndpointConfigSummary, - EndpointSortKey, + Device, + DeviceFleetSummary, + DeviceStats, + DeviceSummary, + DomainStatus, + EdgePackagingJobStatus, EndpointStatus, - EndpointSummary, ExecutionStatus, - Experiment, ExperimentConfig, - ExperimentSummary, - FeatureGroup, - FeatureGroupSortBy, - FeatureGroupSortOrder, + ExperimentSource, FeatureGroupStatus, - FeatureGroupSummary, - Filter, - FlowDefinitionSummary, - GitConfigForUpdate, - HumanTaskUiSummary, + FlowDefinitionStatus, HyperParameterTrainingJobSummary, - HyperParameterTuningJobSortByOptions, HyperParameterTuningJobStatus, - HyperParameterTuningJobSummary, - Image, - ImageSortBy, - ImageSortOrder, - ImageVersion, - ImageVersionSortBy, - ImageVersionSortOrder, - LabelingJobForWorkteamSummary, + ImageStatus, + ImageVersionStatus, + LabelCounters, + LabelingJobOutput, LabelingJobStatus, - LabelingJobSummary, MemberDefinition, MetricData, ModelArtifacts, @@ -95,8 +92,15 @@ import { ModelPackageStatus, ModelPackageStatusDetails, MonitoringExecutionSummary, + MonitoringScheduleConfig, + MonitoringType, + NetworkConfig, + NotebookInstanceAcceleratorType, + NotebookInstanceLifecycleHook, NotebookInstanceStatus, NotificationConfiguration, + ObjectiveStatusCounters, + OfflineStoreStatus, OfflineStoreStatusValue, OidcConfig, PipelineExecutionStatus, @@ -106,16 +110,18 @@ import { ProcessingOutputConfig, ProcessingResources, ProcessingStoppingCondition, + ProductionVariantSummary, + ProfilerRuleConfiguration, ProjectStatus, - ResourceType, + RootAccess, ScheduleStatus, SecondaryStatus, SecondaryStatusTransition, - SortOrder, SourceIpConfig, SubscribedWorkteam, TensorBoardOutputConfig, TrainingJobStatus, + TrainingJobStatusCounters, TransformJobStatus, TrialComponentArtifact, TrialComponentMetricSummary, @@ -126,9 +132,2033 @@ import { UserProfileStatus, Workforce, Workteam, + _InstanceType, } from "./models_1"; import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +export interface DisassociateTrialComponentRequest { + /** + *

                          The name of the component to disassociate from the trial.

                          + */ + TrialComponentName: string | undefined; + + /** + *

                          The name of the trial to disassociate from.

                          + */ + TrialName: string | undefined; +} + +export namespace DisassociateTrialComponentRequest { + export const filterSensitiveLog = (obj: DisassociateTrialComponentRequest): any => ({ + ...obj, + }); +} + +export interface DisassociateTrialComponentResponse { + /** + *

                          The ARN of the trial component.

                          + */ + TrialComponentArn?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the trial.

                          + */ + TrialArn?: string; +} + +export namespace DisassociateTrialComponentResponse { + export const filterSensitiveLog = (obj: DisassociateTrialComponentResponse): any => ({ + ...obj, + }); +} + +/** + *

                          The domain's details.

                          + */ +export interface DomainDetails { + /** + *

                          The domain's Amazon Resource Name (ARN).

                          + */ + DomainArn?: string; + + /** + *

                          The domain ID.

                          + */ + DomainId?: string; + + /** + *

                          The domain name.

                          + */ + DomainName?: string; + + /** + *

                          The status.

                          + */ + Status?: DomainStatus | string; + + /** + *

                          The creation time.

                          + */ + CreationTime?: Date; + + /** + *

                          The last modified time.

                          + */ + LastModifiedTime?: Date; + + /** + *

                          The domain's URL.

                          + */ + Url?: string; +} + +export namespace DomainDetails { + export const filterSensitiveLog = (obj: DomainDetails): any => ({ + ...obj, + }); +} + +/** + *

                          Status of edge devices with this model.

                          + */ +export interface EdgeModelStat { + /** + *

                          The name of the model.

                          + */ + ModelName: string | undefined; + + /** + *

                          The model version.

                          + */ + ModelVersion: string | undefined; + + /** + *

                          The number of devices that have this model version and do not have a heart beat.

                          + */ + OfflineDeviceCount: number | undefined; + + /** + *

                          The number of devices that have this model version and have a heart beat.

                          + */ + ConnectedDeviceCount: number | undefined; + + /** + *

                          The number of devices that have this model version, a heart beat, and are currently running.

                          + */ + ActiveDeviceCount: number | undefined; + + /** + *

                          The number of devices with this model version and are producing sample data.

                          + */ + SamplingDeviceCount: number | undefined; +} + +export namespace EdgeModelStat { + export const filterSensitiveLog = (obj: EdgeModelStat): any => ({ + ...obj, + }); +} + +/** + *

                          Summary of edge packaging job.

                          + */ +export interface EdgePackagingJobSummary { + /** + *

                          The Amazon Resource Name (ARN) of the edge packaging job.

                          + */ + EdgePackagingJobArn: string | undefined; + + /** + *

                          The name of the edge packaging job.

                          + */ + EdgePackagingJobName: string | undefined; + + /** + *

                          The status of the edge packaging job.

                          + */ + EdgePackagingJobStatus: EdgePackagingJobStatus | string | undefined; + + /** + *

                          The name of the SageMaker Neo compilation job.

                          + */ + CompilationJobName?: string; + + /** + *

                          The name of the model.

                          + */ + ModelName?: string; + + /** + *

                          The version of the model.

                          + */ + ModelVersion?: string; + + /** + *

                          The timestamp of when the job was created.

                          + */ + CreationTime?: Date; + + /** + *

                          The timestamp of when the edge packaging job was last updated.

                          + */ + LastModifiedTime?: Date; +} + +export namespace EdgePackagingJobSummary { + export const filterSensitiveLog = (obj: EdgePackagingJobSummary): any => ({ + ...obj, + }); +} + +export interface EnableSagemakerServicecatalogPortfolioInput {} + +export namespace EnableSagemakerServicecatalogPortfolioInput { + export const filterSensitiveLog = (obj: EnableSagemakerServicecatalogPortfolioInput): any => ({ + ...obj, + }); +} + +export interface EnableSagemakerServicecatalogPortfolioOutput {} + +export namespace EnableSagemakerServicecatalogPortfolioOutput { + export const filterSensitiveLog = (obj: EnableSagemakerServicecatalogPortfolioOutput): any => ({ + ...obj, + }); +} + +/** + *

                          A schedule for a model monitoring job. For information about model monitor, see + * Amazon SageMaker Model + * Monitor.

                          + */ +export interface MonitoringSchedule { + /** + *

                          The Amazon Resource Name (ARN) of the monitoring schedule.

                          + */ + MonitoringScheduleArn?: string; + + /** + *

                          The name of the monitoring schedule.

                          + */ + MonitoringScheduleName?: string; + + /** + *

                          The status of the monitoring schedule. This can be one of the following values.

                          + *
                            + *
                          • + *

                            + * PENDING - The schedule is pending being created.

                            + *
                          • + *
                          • + *

                            + * FAILED - The schedule failed.

                            + *
                          • + *
                          • + *

                            + * SCHEDULED - The schedule was successfully created.

                            + *
                          • + *
                          • + *

                            + * STOPPED - The schedule was stopped.

                            + *
                          • + *
                          + */ + MonitoringScheduleStatus?: ScheduleStatus | string; + + /** + *

                          The type of the monitoring job definition to schedule.

                          + */ + MonitoringType?: MonitoringType | string; + + /** + *

                          If the monitoring schedule failed, the reason it failed.

                          + */ + FailureReason?: string; + + /** + *

                          The time that the monitoring schedule was created.

                          + */ + CreationTime?: Date; + + /** + *

                          The last time the monitoring schedule was changed.

                          + */ + LastModifiedTime?: Date; + + /** + *

                          Configures the monitoring schedule and defines the monitoring job.

                          + */ + MonitoringScheduleConfig?: MonitoringScheduleConfig; + + /** + *

                          The endpoint that hosts the model being monitored.

                          + */ + EndpointName?: string; + + /** + *

                          Summary of information about the last monitoring job to run.

                          + */ + LastMonitoringExecutionSummary?: MonitoringExecutionSummary; + + /** + *

                          A list of the tags associated with the monitoring schedlue. For more information, see Tagging AWS + * resources in the AWS General Reference Guide.

                          + */ + Tags?: Tag[]; +} + +export namespace MonitoringSchedule { + export const filterSensitiveLog = (obj: MonitoringSchedule): any => ({ + ...obj, + }); +} + +/** + *

                          A hosted endpoint for real-time inference.

                          + */ +export interface Endpoint { + /** + *

                          The name of the endpoint.

                          + */ + EndpointName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the endpoint.

                          + */ + EndpointArn: string | undefined; + + /** + *

                          The endpoint configuration associated with the endpoint.

                          + */ + EndpointConfigName: string | undefined; + + /** + *

                          A list of the production variants hosted on the endpoint. Each production variant is a + * model.

                          + */ + ProductionVariants?: ProductionVariantSummary[]; + + /** + *

                          + */ + DataCaptureConfig?: DataCaptureConfigSummary; + + /** + *

                          The status of the endpoint.

                          + */ + EndpointStatus: EndpointStatus | string | undefined; + + /** + *

                          If the endpoint failed, the reason it failed.

                          + */ + FailureReason?: string; + + /** + *

                          The time that the endpoint was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The last time the endpoint was modified.

                          + */ + LastModifiedTime: Date | undefined; + + /** + *

                          A list of monitoring schedules for the endpoint. For information about model + * monitoring, see Amazon SageMaker Model Monitor.

                          + */ + MonitoringSchedules?: MonitoringSchedule[]; + + /** + *

                          A list of the tags associated with the endpoint. For more information, see Tagging AWS + * resources in the AWS General Reference Guide.

                          + */ + Tags?: Tag[]; +} + +export namespace Endpoint { + export const filterSensitiveLog = (obj: Endpoint): any => ({ + ...obj, + }); +} + +export enum EndpointConfigSortKey { + CreationTime = "CreationTime", + Name = "Name", +} + +/** + *

                          Provides summary information for an endpoint configuration.

                          + */ +export interface EndpointConfigSummary { + /** + *

                          The name of the endpoint configuration.

                          + */ + EndpointConfigName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the endpoint configuration.

                          + */ + EndpointConfigArn: string | undefined; + + /** + *

                          A timestamp that shows when the endpoint configuration was created.

                          + */ + CreationTime: Date | undefined; +} + +export namespace EndpointConfigSummary { + export const filterSensitiveLog = (obj: EndpointConfigSummary): any => ({ + ...obj, + }); +} + +export enum EndpointSortKey { + CreationTime = "CreationTime", + Name = "Name", + Status = "Status", +} + +/** + *

                          Provides summary information for an endpoint.

                          + */ +export interface EndpointSummary { + /** + *

                          The name of the endpoint.

                          + */ + EndpointName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the endpoint.

                          + */ + EndpointArn: string | undefined; + + /** + *

                          A timestamp that shows when the endpoint was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          A timestamp that shows when the endpoint was last modified.

                          + */ + LastModifiedTime: Date | undefined; + + /** + *

                          The status of the endpoint.

                          + *
                            + *
                          • + *

                            + * OutOfService: Endpoint is not available to take incoming + * requests.

                            + *
                          • + *
                          • + *

                            + * Creating: CreateEndpoint is executing.

                            + *
                          • + *
                          • + *

                            + * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities is executing.

                            + *
                          • + *
                          • + *

                            + * SystemUpdating: Endpoint is undergoing maintenance and cannot be + * updated or deleted or re-scaled until it has completed. This maintenance + * operation does not change any customer-specified values such as VPC config, KMS + * encryption, model, instance type, or instance count.

                            + *
                          • + *
                          • + *

                            + * RollingBack: Endpoint fails to scale up or down or change its + * variant weight and is in the process of rolling back to its previous + * configuration. Once the rollback completes, endpoint returns to an + * InService status. This transitional status only applies to an + * endpoint that has autoscaling enabled and is undergoing variant weight or + * capacity changes as part of an UpdateEndpointWeightsAndCapacities call or when the UpdateEndpointWeightsAndCapacities operation is called + * explicitly.

                            + *
                          • + *
                          • + *

                            + * InService: Endpoint is available to process incoming + * requests.

                            + *
                          • + *
                          • + *

                            + * Deleting: DeleteEndpoint is executing.

                            + *
                          • + *
                          • + *

                            + * Failed: Endpoint could not be created, updated, or re-scaled. Use + * DescribeEndpointOutput$FailureReason for information about + * the failure. DeleteEndpoint is the only operation that can be + * performed on a failed endpoint.

                            + *
                          • + *
                          + *

                          To get a list of endpoints with a specified status, use the ListEndpointsInput$StatusEquals filter.

                          + */ + EndpointStatus: EndpointStatus | string | undefined; +} + +export namespace EndpointSummary { + export const filterSensitiveLog = (obj: EndpointSummary): any => ({ + ...obj, + }); +} + +/** + *

                          The properties of an experiment as returned by the Search API.

                          + */ +export interface Experiment { + /** + *

                          The name of the experiment.

                          + */ + ExperimentName?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the experiment.

                          + */ + ExperimentArn?: string; + + /** + *

                          The name of the experiment as displayed. If DisplayName isn't specified, + * ExperimentName is displayed.

                          + */ + DisplayName?: string; + + /** + *

                          The source of the experiment.

                          + */ + Source?: ExperimentSource; + + /** + *

                          The description of the experiment.

                          + */ + Description?: string; + + /** + *

                          When the experiment was created.

                          + */ + CreationTime?: Date; + + /** + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          + */ + CreatedBy?: UserContext; + + /** + *

                          When the experiment was last modified.

                          + */ + LastModifiedTime?: Date; + + /** + *

                          Information about the user who created or modified an experiment, trial, or trial + * component.

                          + */ + LastModifiedBy?: UserContext; + + /** + *

                          The list of tags that are associated with the experiment. You can use Search API to search on the tags.

                          + */ + Tags?: Tag[]; +} + +export namespace Experiment { + export const filterSensitiveLog = (obj: Experiment): any => ({ + ...obj, + }); +} + +/** + *

                          A summary of the properties of an experiment. To get the complete set of properties, call + * the DescribeExperiment API and provide the + * ExperimentName.

                          + */ +export interface ExperimentSummary { + /** + *

                          The Amazon Resource Name (ARN) of the experiment.

                          + */ + ExperimentArn?: string; + + /** + *

                          The name of the experiment.

                          + */ + ExperimentName?: string; + + /** + *

                          The name of the experiment as displayed. If DisplayName isn't specified, + * ExperimentName is displayed.

                          + */ + DisplayName?: string; + + /** + *

                          The source of the experiment.

                          + */ + ExperimentSource?: ExperimentSource; + + /** + *

                          When the experiment was created.

                          + */ + CreationTime?: Date; + + /** + *

                          When the experiment was last modified.

                          + */ + LastModifiedTime?: Date; +} + +export namespace ExperimentSummary { + export const filterSensitiveLog = (obj: ExperimentSummary): any => ({ + ...obj, + }); +} + +/** + *

                          Amazon SageMaker Feature Store stores features in a collection called Feature Group. + * A Feature Group can be visualized as a table which has rows, + * with a unique identifier for each row where each column in the table is a feature. + * In principle, a Feature Group is composed of features and values per features.

                          + */ +export interface FeatureGroup { + /** + *

                          The Amazon Resource Name (ARN) of a FeatureGroup.

                          + */ + FeatureGroupArn?: string; + + /** + *

                          The name of the FeatureGroup.

                          + */ + FeatureGroupName?: string; + + /** + *

                          The name of the Feature whose value uniquely identifies a + * Record defined in the FeatureGroup + * FeatureDefinitions.

                          + */ + RecordIdentifierFeatureName?: string; + + /** + *

                          The name of the feature that stores the EventTime of a Record in a + * FeatureGroup.

                          + *

                          A EventTime is point in time when a new event + * occurs that corresponds to the creation or update of a Record in + * FeatureGroup. All Records in the FeatureGroup + * must have a corresponding EventTime.

                          + */ + EventTimeFeatureName?: string; + + /** + *

                          A list of Features. Each Feature must include a + * FeatureName and a FeatureType.

                          + *

                          Valid FeatureTypes are Integral, Fractional and + * String.

                          + *

                          + * FeatureNames cannot be any of the following: is_deleted, + * write_time, api_invocation_time.

                          + *

                          You can create up to 2,500 FeatureDefinitions per + * FeatureGroup.

                          + */ + FeatureDefinitions?: FeatureDefinition[]; + + /** + *

                          The time a FeatureGroup was created.

                          + */ + CreationTime?: Date; + + /** + *

                          Use this to specify the AWS Key Management Service (KMS) Key ID, or + * KMSKeyId, for at rest data encryption. You can turn + * OnlineStore on or off by specifying the EnableOnlineStore flag + * at General Assembly; the default value is False.

                          + */ + OnlineStoreConfig?: OnlineStoreConfig; + + /** + *

                          The configuration of an OfflineStore.

                          + *

                          Provide an OfflineStoreConfig in a request to + * CreateFeatureGroup to create an OfflineStore.

                          + *

                          To encrypt an OfflineStore using at rest data encryption, specify AWS Key + * Management Service (KMS) key ID, or KMSKeyId, in + * S3StorageConfig.

                          + */ + OfflineStoreConfig?: OfflineStoreConfig; + + /** + *

                          The Amazon Resource Name (ARN) of the IAM execution role used to create the feature + * group.

                          + */ + RoleArn?: string; + + /** + *

                          A FeatureGroup status.

                          + */ + FeatureGroupStatus?: FeatureGroupStatus | string; + + /** + *

                          The status of OfflineStore.

                          + */ + OfflineStoreStatus?: OfflineStoreStatus; + + /** + *

                          The reason that the FeatureGroup failed to + * be replicated in the OfflineStore. This is + * failure may be due to a failure to create a FeatureGroup in + * or delete a FeatureGroup from the OfflineStore.

                          + */ + FailureReason?: string; + + /** + *

                          A free form description of a FeatureGroup.

                          + */ + Description?: string; + + /** + *

                          Tags used to define a FeatureGroup.

                          + */ + Tags?: Tag[]; +} + +export namespace FeatureGroup { + export const filterSensitiveLog = (obj: FeatureGroup): any => ({ + ...obj, + }); +} + +export enum FeatureGroupSortBy { + CREATION_TIME = "CreationTime", + FEATURE_GROUP_STATUS = "FeatureGroupStatus", + NAME = "Name", + OFFLINE_STORE_STATUS = "OfflineStoreStatus", +} + +export enum FeatureGroupSortOrder { + ASCENDING = "Ascending", + DESCENDING = "Descending", +} + +/** + *

                          The name, Arn, CreationTime, FeatureGroup values, + * LastUpdatedTime and EnableOnlineStorage status of a + * FeatureGroup.

                          + */ +export interface FeatureGroupSummary { + /** + *

                          The name of FeatureGroup.

                          + */ + FeatureGroupName: string | undefined; + + /** + *

                          Unique identifier for the FeatureGroup.

                          + */ + FeatureGroupArn: string | undefined; + + /** + *

                          A timestamp indicating the time of creation time of the FeatureGroup.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The status of a FeatureGroup. The status can be any of the following: + * Creating, Created, CreateFail, + * Deleting or DetailFail.

                          + */ + FeatureGroupStatus?: FeatureGroupStatus | string; + + /** + *

                          Notifies you if replicating data into the OfflineStore has failed. Returns + * either: Active or Blocked.

                          + */ + OfflineStoreStatus?: OfflineStoreStatus; +} + +export namespace FeatureGroupSummary { + export const filterSensitiveLog = (obj: FeatureGroupSummary): any => ({ + ...obj, + }); +} + +export enum Operator { + CONTAINS = "Contains", + EQUALS = "Equals", + EXISTS = "Exists", + GREATER_THAN = "GreaterThan", + GREATER_THAN_OR_EQUAL_TO = "GreaterThanOrEqualTo", + IN = "In", + LESS_THAN = "LessThan", + LESS_THAN_OR_EQUAL_TO = "LessThanOrEqualTo", + NOT_EQUALS = "NotEquals", + NOT_EXISTS = "NotExists", +} + +/** + *

                          A conditional statement for a search expression that includes a resource property, a + * Boolean operator, and a value. Resources that match the statement are returned in the + * results from the Search API.

                          + * + *

                          If you specify a Value, but not an Operator, Amazon SageMaker uses the + * equals operator.

                          + *

                          In search, there are several property types:

                          + *
                          + *
                          Metrics
                          + *
                          + *

                          To define a metric filter, enter a value using the form + * "Metrics.", where is + * a metric name. For example, the following filter searches for training jobs + * with an "accuracy" metric greater than + * "0.9":

                          + *

                          + * { + *

                          + *

                          + * "Name": "Metrics.accuracy", + *

                          + *

                          + * "Operator": "GreaterThan", + *

                          + *

                          + * "Value": "0.9" + *

                          + *

                          + * } + *

                          + *
                          + *
                          HyperParameters
                          + *
                          + *

                          To define a hyperparameter filter, enter a value with the form + * "HyperParameters.". Decimal hyperparameter + * values are treated as a decimal in a comparison if the specified + * Value is also a decimal value. If the specified + * Value is an integer, the decimal hyperparameter values are + * treated as integers. For example, the following filter is satisfied by + * training jobs with a "learning_rate" hyperparameter that is + * less than "0.5":

                          + *

                          + * { + *

                          + *

                          + * "Name": "HyperParameters.learning_rate", + *

                          + *

                          + * "Operator": "LessThan", + *

                          + *

                          + * "Value": "0.5" + *

                          + *

                          + * } + *

                          + *
                          + *
                          Tags
                          + *
                          + *

                          To define a tag filter, enter a value with the form + * Tags..

                          + *
                          + *
                          + */ +export interface Filter { + /** + *

                          A resource property name. For example, TrainingJobName. For + * valid property names, see SearchRecord. + * You must specify a valid property for the resource.

                          + */ + Name: string | undefined; + + /** + *

                          A Boolean binary operator that is used to evaluate the filter. The operator field + * contains one of the following values:

                          + *
                          + *
                          Equals
                          + *
                          + *

                          The value of Name equals Value.

                          + *
                          + *
                          NotEquals
                          + *
                          + *

                          The value of Name doesn't equal Value.

                          + *
                          + *
                          Exists
                          + *
                          + *

                          The Name property exists.

                          + *
                          + *
                          NotExists
                          + *
                          + *

                          The Name property does not exist.

                          + *
                          + *
                          GreaterThan
                          + *
                          + *

                          The value of Name is greater than Value. + * Not supported for text properties.

                          + *
                          + *
                          GreaterThanOrEqualTo
                          + *
                          + *

                          The value of Name is greater than or equal to Value. + * Not supported for text properties.

                          + *
                          + *
                          LessThan
                          + *
                          + *

                          The value of Name is less than Value. + * Not supported for text properties.

                          + *
                          + *
                          LessThanOrEqualTo
                          + *
                          + *

                          The value of Name is less than or equal to Value. + * Not supported for text properties.

                          + *
                          + *
                          In
                          + *
                          + *

                          The value of Name is one of the comma delimited strings in + * Value. Only supported for text properties.

                          + *
                          + *
                          Contains
                          + *
                          + *

                          The value of Name contains the string Value. + * Only supported for text properties.

                          + *

                          A SearchExpression can include the Contains operator + * multiple times when the value of Name is one of the following:

                          + *
                            + *
                          • + *

                            + * Experiment.DisplayName + *

                            + *
                          • + *
                          • + *

                            + * Experiment.ExperimentName + *

                            + *
                          • + *
                          • + *

                            + * Experiment.Tags + *

                            + *
                          • + *
                          • + *

                            + * Trial.DisplayName + *

                            + *
                          • + *
                          • + *

                            + * Trial.TrialName + *

                            + *
                          • + *
                          • + *

                            + * Trial.Tags + *

                            + *
                          • + *
                          • + *

                            + * TrialComponent.DisplayName + *

                            + *
                          • + *
                          • + *

                            + * TrialComponent.TrialComponentName + *

                            + *
                          • + *
                          • + *

                            + * TrialComponent.Tags + *

                            + *
                          • + *
                          • + *

                            + * TrialComponent.InputArtifacts + *

                            + *
                          • + *
                          • + *

                            + * TrialComponent.OutputArtifacts + *

                            + *
                          • + *
                          + *

                          A SearchExpression can include only one Contains operator + * for all other values of Name. In these cases, if you include multiple + * Contains operators in the SearchExpression, the result is + * the following error message: "'CONTAINS' operator usage limit of 1 + * exceeded."

                          + *
                          + *
                          + */ + Operator?: Operator | string; + + /** + *

                          A value used with Name and Operator to determine which + * resources satisfy the filter's condition. For numerical properties, Value + * must be an integer or floating-point decimal. For timestamp properties, + * Value must be an ISO 8601 date-time string of the following format: + * YYYY-mm-dd'T'HH:MM:SS.

                          + */ + Value?: string; +} + +export namespace Filter { + export const filterSensitiveLog = (obj: Filter): any => ({ + ...obj, + }); +} + +/** + *

                          Contains summary information about the flow definition.

                          + */ +export interface FlowDefinitionSummary { + /** + *

                          The name of the flow definition.

                          + */ + FlowDefinitionName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the flow definition.

                          + */ + FlowDefinitionArn: string | undefined; + + /** + *

                          The status of the flow definition. Valid values:

                          + */ + FlowDefinitionStatus: FlowDefinitionStatus | string | undefined; + + /** + *

                          The timestamp when SageMaker created the flow definition.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The reason why the flow definition creation failed. A failure reason is returned only when the flow definition status is Failed.

                          + */ + FailureReason?: string; +} + +export namespace FlowDefinitionSummary { + export const filterSensitiveLog = (obj: FlowDefinitionSummary): any => ({ + ...obj, + }); +} + +export interface GetDeviceFleetReportRequest { + /** + *

                          The name of the fleet.

                          + */ + DeviceFleetName: string | undefined; +} + +export namespace GetDeviceFleetReportRequest { + export const filterSensitiveLog = (obj: GetDeviceFleetReportRequest): any => ({ + ...obj, + }); +} + +export interface GetDeviceFleetReportResponse { + /** + *

                          The Amazon Resource Name (ARN) of the device.

                          + */ + DeviceFleetArn: string | undefined; + + /** + *

                          The name of the fleet.

                          + */ + DeviceFleetName: string | undefined; + + /** + *

                          The output configuration for storing sample data collected by the fleet.

                          + */ + OutputConfig?: EdgeOutputConfig; + + /** + *

                          Description of the fleet.

                          + */ + Description?: string; + + /** + *

                          Timestamp of when the report was generated.

                          + */ + ReportGenerated?: Date; + + /** + *

                          Status of devices.

                          + */ + DeviceStats?: DeviceStats; + + /** + *

                          The versions of Edge Manager agent deployed on the fleet.

                          + */ + AgentVersions?: AgentVersion[]; + + /** + *

                          Status of model on device.

                          + */ + ModelStats?: EdgeModelStat[]; +} + +export namespace GetDeviceFleetReportResponse { + export const filterSensitiveLog = (obj: GetDeviceFleetReportResponse): any => ({ + ...obj, + }); +} + +export interface GetModelPackageGroupPolicyInput { + /** + *

                          The name of the model group for which to get the resource policy.

                          + */ + ModelPackageGroupName: string | undefined; +} + +export namespace GetModelPackageGroupPolicyInput { + export const filterSensitiveLog = (obj: GetModelPackageGroupPolicyInput): any => ({ + ...obj, + }); +} + +export interface GetModelPackageGroupPolicyOutput { + /** + *

                          The resource policy for the model group.

                          + */ + ResourcePolicy: string | undefined; +} + +export namespace GetModelPackageGroupPolicyOutput { + export const filterSensitiveLog = (obj: GetModelPackageGroupPolicyOutput): any => ({ + ...obj, + }); +} + +export interface GetSagemakerServicecatalogPortfolioStatusInput {} + +export namespace GetSagemakerServicecatalogPortfolioStatusInput { + export const filterSensitiveLog = (obj: GetSagemakerServicecatalogPortfolioStatusInput): any => ({ + ...obj, + }); +} + +export enum SagemakerServicecatalogStatus { + DISABLED = "Disabled", + ENABLED = "Enabled", +} + +export interface GetSagemakerServicecatalogPortfolioStatusOutput { + /** + *

                          Whether Service Catalog is enabled or disabled in SageMaker.

                          + */ + Status?: SagemakerServicecatalogStatus | string; +} + +export namespace GetSagemakerServicecatalogPortfolioStatusOutput { + export const filterSensitiveLog = (obj: GetSagemakerServicecatalogPortfolioStatusOutput): any => ({ + ...obj, + }); +} + +export enum ResourceType { + ENDPOINT = "Endpoint", + EXPERIMENT = "Experiment", + EXPERIMENT_TRIAL = "ExperimentTrial", + EXPERIMENT_TRIAL_COMPONENT = "ExperimentTrialComponent", + FEATURE_GROUP = "FeatureGroup", + MODEL_PACKAGE = "ModelPackage", + MODEL_PACKAGE_GROUP = "ModelPackageGroup", + PIPELINE = "Pipeline", + PIPELINE_EXECUTION = "PipelineExecution", + TRAINING_JOB = "TrainingJob", +} + +/** + *

                          Part of the SuggestionQuery type. Specifies a hint for retrieving property + * names that begin with the specified text.

                          + */ +export interface PropertyNameQuery { + /** + *

                          Text that begins a property's name.

                          + */ + PropertyNameHint: string | undefined; +} + +export namespace PropertyNameQuery { + export const filterSensitiveLog = (obj: PropertyNameQuery): any => ({ + ...obj, + }); +} + +/** + *

                          Specified in the GetSearchSuggestions request. + * Limits the property names that are included in the response.

                          + */ +export interface SuggestionQuery { + /** + *

                          Defines a property name hint. Only property + * names that begin with the specified hint are included in the response.

                          + */ + PropertyNameQuery?: PropertyNameQuery; +} + +export namespace SuggestionQuery { + export const filterSensitiveLog = (obj: SuggestionQuery): any => ({ + ...obj, + }); +} + +export interface GetSearchSuggestionsRequest { + /** + *

                          The name of the Amazon SageMaker resource to search for.

                          + */ + Resource: ResourceType | string | undefined; + + /** + *

                          Limits the property names that are included in the response.

                          + */ + SuggestionQuery?: SuggestionQuery; +} + +export namespace GetSearchSuggestionsRequest { + export const filterSensitiveLog = (obj: GetSearchSuggestionsRequest): any => ({ + ...obj, + }); +} + +/** + *

                          A property name returned from a GetSearchSuggestions call that specifies + * a value in the PropertyNameQuery field.

                          + */ +export interface PropertyNameSuggestion { + /** + *

                          A suggested property name based on what you entered in the search textbox in the Amazon SageMaker + * console.

                          + */ + PropertyName?: string; +} + +export namespace PropertyNameSuggestion { + export const filterSensitiveLog = (obj: PropertyNameSuggestion): any => ({ + ...obj, + }); +} + +export interface GetSearchSuggestionsResponse { + /** + *

                          A list of property names for a Resource that match a + * SuggestionQuery.

                          + */ + PropertyNameSuggestions?: PropertyNameSuggestion[]; +} + +export namespace GetSearchSuggestionsResponse { + export const filterSensitiveLog = (obj: GetSearchSuggestionsResponse): any => ({ + ...obj, + }); +} + +/** + *

                          Specifies configuration details for a Git repository when the repository is + * updated.

                          + */ +export interface GitConfigForUpdate { + /** + *

                          The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the + * credentials used to access the git repository. The secret must have a staging label of + * AWSCURRENT and must be in the following format:

                          + *

                          + * {"username": UserName, "password": + * Password} + *

                          + */ + SecretArn?: string; +} + +export namespace GitConfigForUpdate { + export const filterSensitiveLog = (obj: GitConfigForUpdate): any => ({ + ...obj, + }); +} + +/** + *

                          Container for human task user interface information.

                          + */ +export interface HumanTaskUiSummary { + /** + *

                          The name of the human task user interface.

                          + */ + HumanTaskUiName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the human task user interface.

                          + */ + HumanTaskUiArn: string | undefined; + + /** + *

                          A timestamp when SageMaker created the human task user interface.

                          + */ + CreationTime: Date | undefined; +} + +export namespace HumanTaskUiSummary { + export const filterSensitiveLog = (obj: HumanTaskUiSummary): any => ({ + ...obj, + }); +} + +export enum HyperParameterTuningJobSortByOptions { + CreationTime = "CreationTime", + Name = "Name", + Status = "Status", +} + +/** + *

                          Provides summary information about a hyperparameter tuning job.

                          + */ +export interface HyperParameterTuningJobSummary { + /** + *

                          The name of the tuning job.

                          + */ + HyperParameterTuningJobName: string | undefined; + + /** + *

                          The + * Amazon + * Resource Name (ARN) of the tuning job.

                          + */ + HyperParameterTuningJobArn: string | undefined; + + /** + *

                          The status of the + * tuning + * job.

                          + */ + HyperParameterTuningJobStatus: HyperParameterTuningJobStatus | string | undefined; + + /** + *

                          Specifies the search strategy hyperparameter tuning uses to choose which + * hyperparameters to + * use + * for each iteration. Currently, the only valid value is + * Bayesian.

                          + */ + Strategy: HyperParameterTuningJobStrategyType | string | undefined; + + /** + *

                          The date and time that the tuning job was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The date and time that the tuning job ended.

                          + */ + HyperParameterTuningEndTime?: Date; + + /** + *

                          The date and time that the tuning job was + * modified.

                          + */ + LastModifiedTime?: Date; + + /** + *

                          The TrainingJobStatusCounters object that specifies the numbers of + * training jobs, categorized by status, that this tuning job launched.

                          + */ + TrainingJobStatusCounters: TrainingJobStatusCounters | undefined; + + /** + *

                          The ObjectiveStatusCounters object that specifies the numbers of + * training jobs, categorized by objective metric status, that this tuning job + * launched.

                          + */ + ObjectiveStatusCounters: ObjectiveStatusCounters | undefined; + + /** + *

                          The ResourceLimits object that specifies the maximum number of + * training jobs and parallel training jobs allowed for this tuning job.

                          + */ + ResourceLimits?: ResourceLimits; +} + +export namespace HyperParameterTuningJobSummary { + export const filterSensitiveLog = (obj: HyperParameterTuningJobSummary): any => ({ + ...obj, + }); +} + +/** + *

                          A SageMaker image. A SageMaker image represents a set of container images that are derived from + * a common base container image. Each of these container images is represented by a SageMaker + * ImageVersion.

                          + */ +export interface Image { + /** + *

                          When the image was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The description of the image.

                          + */ + Description?: string; + + /** + *

                          The name of the image as displayed.

                          + */ + DisplayName?: string; + + /** + *

                          When a create, update, or delete operation fails, the reason for the failure.

                          + */ + FailureReason?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the image.

                          + */ + ImageArn: string | undefined; + + /** + *

                          The name of the image.

                          + */ + ImageName: string | undefined; + + /** + *

                          The status of the image.

                          + */ + ImageStatus: ImageStatus | string | undefined; + + /** + *

                          When the image was last modified.

                          + */ + LastModifiedTime: Date | undefined; +} + +export namespace Image { + export const filterSensitiveLog = (obj: Image): any => ({ + ...obj, + }); +} + +export enum ImageSortBy { + CREATION_TIME = "CREATION_TIME", + IMAGE_NAME = "IMAGE_NAME", + LAST_MODIFIED_TIME = "LAST_MODIFIED_TIME", +} + +export enum ImageSortOrder { + ASCENDING = "ASCENDING", + DESCENDING = "DESCENDING", +} + +/** + *

                          A version of a SageMaker Image. A version represents an existing container + * image.

                          + */ +export interface ImageVersion { + /** + *

                          When the version was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          When a create or delete operation fails, the reason for the failure.

                          + */ + FailureReason?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the image the version is based on.

                          + */ + ImageArn: string | undefined; + + /** + *

                          The ARN of the version.

                          + */ + ImageVersionArn: string | undefined; + + /** + *

                          The status of the version.

                          + */ + ImageVersionStatus: ImageVersionStatus | string | undefined; + + /** + *

                          When the version was last modified.

                          + */ + LastModifiedTime: Date | undefined; + + /** + *

                          The version number.

                          + */ + Version: number | undefined; +} + +export namespace ImageVersion { + export const filterSensitiveLog = (obj: ImageVersion): any => ({ + ...obj, + }); +} + +export enum ImageVersionSortBy { + CREATION_TIME = "CREATION_TIME", + LAST_MODIFIED_TIME = "LAST_MODIFIED_TIME", + VERSION = "VERSION", +} + +export enum ImageVersionSortOrder { + ASCENDING = "ASCENDING", + DESCENDING = "DESCENDING", +} + +/** + *

                          Provides counts for human-labeled tasks in the labeling job.

                          + */ +export interface LabelCountersForWorkteam { + /** + *

                          The total number of data objects labeled by a human worker.

                          + */ + HumanLabeled?: number; + + /** + *

                          The total number of data objects that need to be labeled by a human worker.

                          + */ + PendingHuman?: number; + + /** + *

                          The total number of tasks in the labeling job.

                          + */ + Total?: number; +} + +export namespace LabelCountersForWorkteam { + export const filterSensitiveLog = (obj: LabelCountersForWorkteam): any => ({ + ...obj, + }); +} + +/** + *

                          Provides summary information for a work team.

                          + */ +export interface LabelingJobForWorkteamSummary { + /** + *

                          The name of the labeling job that the work team is assigned to.

                          + */ + LabelingJobName?: string; + + /** + *

                          A unique identifier for a labeling job. You can use this to refer to a specific + * labeling job.

                          + */ + JobReferenceCode: string | undefined; + + /** + *

                          + */ + WorkRequesterAccountId: string | undefined; + + /** + *

                          The date and time that the labeling job was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          Provides information about the progress of a labeling job.

                          + */ + LabelCounters?: LabelCountersForWorkteam; + + /** + *

                          The configured number of workers per data object.

                          + */ + NumberOfHumanWorkersPerDataObject?: number; +} + +export namespace LabelingJobForWorkteamSummary { + export const filterSensitiveLog = (obj: LabelingJobForWorkteamSummary): any => ({ + ...obj, + }); +} + +/** + *

                          Provides summary information about a labeling job.

                          + */ +export interface LabelingJobSummary { + /** + *

                          The name of the labeling job.

                          + */ + LabelingJobName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) assigned to the labeling job when it was + * created.

                          + */ + LabelingJobArn: string | undefined; + + /** + *

                          The date and time that the job was created (timestamp).

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The date and time that the job was last modified (timestamp).

                          + */ + LastModifiedTime: Date | undefined; + + /** + *

                          The current status of the labeling job.

                          + */ + LabelingJobStatus: LabelingJobStatus | string | undefined; + + /** + *

                          Counts showing the progress of the labeling job.

                          + */ + LabelCounters: LabelCounters | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the work team assigned to the job.

                          + */ + WorkteamArn: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of a Lambda function. The function is run before each + * data object is sent to a worker.

                          + */ + PreHumanTaskLambdaArn: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the Lambda function used to consolidate the + * annotations from individual workers into a label for a data object. For more + * information, see Annotation + * Consolidation.

                          + */ + AnnotationConsolidationLambdaArn?: string; + + /** + *

                          If the LabelingJobStatus field is Failed, this field + * contains a description of the error.

                          + */ + FailureReason?: string; + + /** + *

                          The location of the output produced by the labeling job.

                          + */ + LabelingJobOutput?: LabelingJobOutput; + + /** + *

                          Input configuration for the labeling job.

                          + */ + InputConfig?: LabelingJobInputConfig; +} + +export namespace LabelingJobSummary { + export const filterSensitiveLog = (obj: LabelingJobSummary): any => ({ + ...obj, + }); +} + +export enum SortActionsBy { + CREATION_TIME = "CreationTime", + NAME = "Name", +} + +export enum SortOrder { + ASCENDING = "Ascending", + DESCENDING = "Descending", +} + +export interface ListActionsRequest { + /** + *

                          A filter that returns only actions with the specified source URI.

                          + */ + SourceUri?: string; + + /** + *

                          A filter that returns only actions of the specified type.

                          + */ + ActionType?: string; + + /** + *

                          A filter that returns only actions created on or after the specified time.

                          + */ + CreatedAfter?: Date; + + /** + *

                          A filter that returns only actions created on or before the specified time.

                          + */ + CreatedBefore?: Date; + + /** + *

                          The property used to sort results. The default value is CreationTime.

                          + */ + SortBy?: SortActionsBy | string; + + /** + *

                          The sort order. The default value is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the previous call to ListActions didn't return the full set of actions, + * the call returns a token for getting the next set of actions.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of actions to return in the response. The default value is 10.

                          + */ + MaxResults?: number; +} + +export namespace ListActionsRequest { + export const filterSensitiveLog = (obj: ListActionsRequest): any => ({ + ...obj, + }); +} + +export interface ListActionsResponse { + /** + *

                          A list of actions and their properties.

                          + */ + ActionSummaries?: ActionSummary[]; + + /** + *

                          A token for getting the next set of actions, if there are any.

                          + */ + NextToken?: string; +} + +export namespace ListActionsResponse { + export const filterSensitiveLog = (obj: ListActionsResponse): any => ({ + ...obj, + }); +} + +export interface ListAlgorithmsInput { + /** + *

                          A filter that returns only algorithms created after the specified time + * (timestamp).

                          + */ + CreationTimeAfter?: Date; + + /** + *

                          A filter that returns only algorithms created before the specified time + * (timestamp).

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          The maximum number of algorithms to return in the response.

                          + */ + MaxResults?: number; + + /** + *

                          A string in the algorithm name. This filter returns only algorithms whose name + * contains the specified string.

                          + */ + NameContains?: string; + + /** + *

                          If the response to a previous ListAlgorithms request was truncated, the + * response includes a NextToken. To retrieve the next set of algorithms, use + * the token in the next request.

                          + */ + NextToken?: string; + + /** + *

                          The parameter by which to sort the results. The default is + * CreationTime.

                          + */ + SortBy?: AlgorithmSortBy | string; + + /** + *

                          The sort order for the results. The default is Ascending.

                          + */ + SortOrder?: SortOrder | string; +} + +export namespace ListAlgorithmsInput { + export const filterSensitiveLog = (obj: ListAlgorithmsInput): any => ({ + ...obj, + }); +} + +export interface ListAlgorithmsOutput { + /** + *

                          >An array of AlgorithmSummary objects, each of which lists an + * algorithm.

                          + */ + AlgorithmSummaryList: AlgorithmSummary[] | undefined; + + /** + *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of + * algorithms, use it in the subsequent request.

                          + */ + NextToken?: string; +} + +export namespace ListAlgorithmsOutput { + export const filterSensitiveLog = (obj: ListAlgorithmsOutput): any => ({ + ...obj, + }); +} + +export interface ListAppImageConfigsRequest { + /** + *

                          The maximum number of AppImageConfigs to return in the response. The default value is + * 10.

                          + */ + MaxResults?: number; + + /** + *

                          If the previous call to ListImages didn't return the full set of + * AppImageConfigs, the call returns a token for getting the next set of AppImageConfigs.

                          + */ + NextToken?: string; + + /** + *

                          A filter that returns only AppImageConfigs whose name contains the specified string.

                          + */ + NameContains?: string; + + /** + *

                          A filter that returns only AppImageConfigs created on or before the specified time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter that returns only AppImageConfigs created on or after the specified time.

                          + */ + CreationTimeAfter?: Date; + + /** + *

                          A filter that returns only AppImageConfigs modified on or before the specified time.

                          + */ + ModifiedTimeBefore?: Date; + + /** + *

                          A filter that returns only AppImageConfigs modified on or after the specified time.

                          + */ + ModifiedTimeAfter?: Date; + + /** + *

                          The property used to sort results. The default value is CreationTime.

                          + */ + SortBy?: AppImageConfigSortKey | string; + + /** + *

                          The sort order. The default value is Descending.

                          + */ + SortOrder?: SortOrder | string; +} + +export namespace ListAppImageConfigsRequest { + export const filterSensitiveLog = (obj: ListAppImageConfigsRequest): any => ({ + ...obj, + }); +} + +export interface ListAppImageConfigsResponse { + /** + *

                          A token for getting the next set of AppImageConfigs, if there are any.

                          + */ + NextToken?: string; + + /** + *

                          A list of AppImageConfigs and their properties.

                          + */ + AppImageConfigs?: AppImageConfigDetails[]; +} + +export namespace ListAppImageConfigsResponse { + export const filterSensitiveLog = (obj: ListAppImageConfigsResponse): any => ({ + ...obj, + }); +} + +export interface ListAppsRequest { + /** + *

                          If the previous response was truncated, you will receive this token. + * Use it in your next request to receive the next set of results.

                          + */ + NextToken?: string; + + /** + *

                          Returns a list up to a specified limit.

                          + */ + MaxResults?: number; + + /** + *

                          The sort order for the results. The default is Ascending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          The parameter by which to sort the results. The default is CreationTime.

                          + */ + SortBy?: AppSortKey | string; + + /** + *

                          A parameter to search for the domain ID.

                          + */ + DomainIdEquals?: string; + + /** + *

                          A parameter to search by user profile name.

                          + */ + UserProfileNameEquals?: string; +} + +export namespace ListAppsRequest { + export const filterSensitiveLog = (obj: ListAppsRequest): any => ({ + ...obj, + }); +} + +export interface ListAppsResponse { + /** + *

                          The list of apps.

                          + */ + Apps?: AppDetails[]; + + /** + *

                          If the previous response was truncated, you will receive this token. + * Use it in your next request to receive the next set of results.

                          + */ + NextToken?: string; +} + +export namespace ListAppsResponse { + export const filterSensitiveLog = (obj: ListAppsResponse): any => ({ + ...obj, + }); +} + +export enum SortArtifactsBy { + CREATION_TIME = "CreationTime", +} + +export interface ListArtifactsRequest { + /** + *

                          A filter that returns only artifacts with the specified source URI.

                          + */ + SourceUri?: string; + + /** + *

                          A filter that returns only artifacts of the specified type.

                          + */ + ArtifactType?: string; + + /** + *

                          A filter that returns only artifacts created on or after the specified time.

                          + */ + CreatedAfter?: Date; + + /** + *

                          A filter that returns only artifacts created on or before the specified time.

                          + */ + CreatedBefore?: Date; + + /** + *

                          The property used to sort results. The default value is CreationTime.

                          + */ + SortBy?: SortArtifactsBy | string; + + /** + *

                          The sort order. The default value is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the previous call to ListArtifacts didn't return the full set of artifacts, + * the call returns a token for getting the next set of artifacts.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of artifacts to return in the response. The default value is 10.

                          + */ + MaxResults?: number; +} + +export namespace ListArtifactsRequest { + export const filterSensitiveLog = (obj: ListArtifactsRequest): any => ({ + ...obj, + }); +} + +export interface ListArtifactsResponse { + /** + *

                          A list of artifacts and their properties.

                          + */ + ArtifactSummaries?: ArtifactSummary[]; + + /** + *

                          A token for getting the next set of artifacts, if there are any.

                          + */ + NextToken?: string; +} + +export namespace ListArtifactsResponse { + export const filterSensitiveLog = (obj: ListArtifactsResponse): any => ({ + ...obj, + }); +} + +export enum SortAssociationsBy { + CREATION_TIME = "CreationTime", + DESTINATION_ARN = "DestinationArn", + DESTINATION_TYPE = "DestinationType", + SOURCE_ARN = "SourceArn", + SOURCE_TYPE = "SourceType", +} + +export interface ListAssociationsRequest { + /** + *

                          A filter that returns only associations with the specified source ARN.

                          + */ + SourceArn?: string; + + /** + *

                          A filter that returns only associations with the specified destination Amazon Resource Name (ARN).

                          + */ + DestinationArn?: string; + + /** + *

                          A filter that returns only associations with the specified source type.

                          + */ + SourceType?: string; + + /** + *

                          A filter that returns only associations with the specified destination type.

                          + */ + DestinationType?: string; + + /** + *

                          A filter that returns only associations of the specified type.

                          + */ + AssociationType?: AssociationEdgeType | string; + + /** + *

                          A filter that returns only associations created on or after the specified time.

                          + */ + CreatedAfter?: Date; + + /** + *

                          A filter that returns only associations created on or before the specified time.

                          + */ + CreatedBefore?: Date; + + /** + *

                          The property used to sort results. The default value is CreationTime.

                          + */ + SortBy?: SortAssociationsBy | string; + + /** + *

                          The sort order. The default value is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the previous call to ListAssociations didn't return the full set of associations, + * the call returns a token for getting the next set of associations.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of associations to return in the response. The default value is 10.

                          + */ + MaxResults?: number; +} + +export namespace ListAssociationsRequest { + export const filterSensitiveLog = (obj: ListAssociationsRequest): any => ({ + ...obj, + }); +} + export interface ListAssociationsResponse { /** *

                          A list of associations and their properties.

                          @@ -394,159 +2424,398 @@ export enum ListCompilationJobsSortBy { STATUS = "Status", } -export interface ListCompilationJobsRequest { +export interface ListCompilationJobsRequest { + /** + *

                          If the result of the previous ListCompilationJobs request was truncated, + * the response includes a NextToken. To retrieve the next set of model + * compilation jobs, use the token in the next request.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of model compilation jobs to return in the response.

                          + */ + MaxResults?: number; + + /** + *

                          A filter that returns the model compilation jobs that were created after a specified + * time.

                          + */ + CreationTimeAfter?: Date; + + /** + *

                          A filter that returns the model compilation jobs that were created before a specified + * time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter that returns the model compilation jobs that were modified after a specified + * time.

                          + */ + LastModifiedTimeAfter?: Date; + + /** + *

                          A filter that returns the model compilation jobs that were modified before a specified + * time.

                          + */ + LastModifiedTimeBefore?: Date; + + /** + *

                          A filter that returns the model compilation jobs whose name contains a specified + * string.

                          + */ + NameContains?: string; + + /** + *

                          A filter that retrieves model compilation jobs with a specific DescribeCompilationJobResponse$CompilationJobStatus status.

                          + */ + StatusEquals?: CompilationJobStatus | string; + + /** + *

                          The field by which to sort results. The default is CreationTime.

                          + */ + SortBy?: ListCompilationJobsSortBy | string; + + /** + *

                          The sort order for results. The default is Ascending.

                          + */ + SortOrder?: SortOrder | string; +} + +export namespace ListCompilationJobsRequest { + export const filterSensitiveLog = (obj: ListCompilationJobsRequest): any => ({ + ...obj, + }); +} + +export interface ListCompilationJobsResponse { + /** + *

                          An array of CompilationJobSummary objects, each describing a model + * compilation job.

                          + */ + CompilationJobSummaries: CompilationJobSummary[] | undefined; + + /** + *

                          If the response is truncated, Amazon SageMaker returns this NextToken. To retrieve + * the next set of model compilation jobs, use this token in the next request.

                          + */ + NextToken?: string; +} + +export namespace ListCompilationJobsResponse { + export const filterSensitiveLog = (obj: ListCompilationJobsResponse): any => ({ + ...obj, + }); +} + +export enum SortContextsBy { + CREATION_TIME = "CreationTime", + NAME = "Name", +} + +export interface ListContextsRequest { + /** + *

                          A filter that returns only contexts with the specified source URI.

                          + */ + SourceUri?: string; + + /** + *

                          A filter that returns only contexts of the specified type.

                          + */ + ContextType?: string; + + /** + *

                          A filter that returns only contexts created on or after the specified time.

                          + */ + CreatedAfter?: Date; + + /** + *

                          A filter that returns only contexts created on or before the specified time.

                          + */ + CreatedBefore?: Date; + + /** + *

                          The property used to sort results. The default value is CreationTime.

                          + */ + SortBy?: SortContextsBy | string; + + /** + *

                          The sort order. The default value is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the previous call to ListContexts didn't return the full set of contexts, + * the call returns a token for getting the next set of contexts.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of contexts to return in the response. The default value is 10.

                          + */ + MaxResults?: number; +} + +export namespace ListContextsRequest { + export const filterSensitiveLog = (obj: ListContextsRequest): any => ({ + ...obj, + }); +} + +export interface ListContextsResponse { + /** + *

                          A list of contexts and their properties.

                          + */ + ContextSummaries?: ContextSummary[]; + + /** + *

                          A token for getting the next set of contexts, if there are any.

                          + */ + NextToken?: string; +} + +export namespace ListContextsResponse { + export const filterSensitiveLog = (obj: ListContextsResponse): any => ({ + ...obj, + }); +} + +export enum MonitoringJobDefinitionSortKey { + CREATION_TIME = "CreationTime", + NAME = "Name", +} + +export interface ListDataQualityJobDefinitionsRequest { + /** + *

                          A filter that lists the data quality job definitions associated with the specified + * endpoint.

                          + */ + EndpointName?: string; + + /** + *

                          The field to sort results by. The default is CreationTime.

                          + */ + SortBy?: MonitoringJobDefinitionSortKey | string; + + /** + *

                          The sort order for results. The default is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the result of the previous ListDataQualityJobDefinitions request was + * truncated, the response includes a NextToken. To retrieve the next set of + * transform jobs, use the token in the next request.>

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of data quality monitoring job definitions to return in the + * response.

                          + */ + MaxResults?: number; + + /** + *

                          A string in the data quality monitoring job definition name. This filter returns only + * data quality monitoring job definitions whose name contains the specified string.

                          + */ + NameContains?: string; + + /** + *

                          A filter that returns only data quality monitoring job definitions created before the + * specified time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter that returns only data quality monitoring job definitions created after the + * specified time.

                          + */ + CreationTimeAfter?: Date; +} + +export namespace ListDataQualityJobDefinitionsRequest { + export const filterSensitiveLog = (obj: ListDataQualityJobDefinitionsRequest): any => ({ + ...obj, + }); +} + +/** + *

                          Summary information about a monitoring job.

                          + */ +export interface MonitoringJobDefinitionSummary { + /** + *

                          The name of the monitoring job.

                          + */ + MonitoringJobDefinitionName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the monitoring job.

                          + */ + MonitoringJobDefinitionArn: string | undefined; + + /** + *

                          The time that the monitoring job was created.

                          + */ + CreationTime: Date | undefined; + + /** + *

                          The name of the endpoint that the job monitors.

                          + */ + EndpointName: string | undefined; +} + +export namespace MonitoringJobDefinitionSummary { + export const filterSensitiveLog = (obj: MonitoringJobDefinitionSummary): any => ({ + ...obj, + }); +} + +export interface ListDataQualityJobDefinitionsResponse { + /** + *

                          A list of data quality monitoring job definitions.

                          + */ + JobDefinitionSummaries: MonitoringJobDefinitionSummary[] | undefined; + + /** + *

                          If the result of the previous ListDataQualityJobDefinitions request was + * truncated, the response includes a NextToken. To retrieve the next set of data + * quality monitoring job definitions, use the token in the next request.

                          + */ + NextToken?: string; +} + +export namespace ListDataQualityJobDefinitionsResponse { + export const filterSensitiveLog = (obj: ListDataQualityJobDefinitionsResponse): any => ({ + ...obj, + }); +} + +export enum ListDeviceFleetsSortBy { + CreationTime = "CREATION_TIME", + LastModifiedTime = "LAST_MODIFIED_TIME", + Name = "NAME", +} + +export interface ListDeviceFleetsRequest { /** - *

                          If the result of the previous ListCompilationJobs request was truncated, - * the response includes a NextToken. To retrieve the next set of model - * compilation jobs, use the token in the next request.

                          + *

                          The response from the last list when returning a list large enough to need tokening.

                          */ NextToken?: string; /** - *

                          The maximum number of model compilation jobs to return in the response.

                          + *

                          The maximum number of results to select.

                          */ MaxResults?: number; /** - *

                          A filter that returns the model compilation jobs that were created after a specified - * time.

                          + *

                          Filter fleets where packaging job was created after specified time.

                          */ CreationTimeAfter?: Date; /** - *

                          A filter that returns the model compilation jobs that were created before a specified - * time.

                          + *

                          Filter fleets where the edge packaging job was created before specified time.

                          */ CreationTimeBefore?: Date; /** - *

                          A filter that returns the model compilation jobs that were modified after a specified - * time.

                          + *

                          Select fleets where the job was updated after X

                          */ LastModifiedTimeAfter?: Date; /** - *

                          A filter that returns the model compilation jobs that were modified before a specified - * time.

                          + *

                          Select fleets where the job was updated before X

                          */ LastModifiedTimeBefore?: Date; /** - *

                          A filter that returns the model compilation jobs whose name contains a specified - * string.

                          + *

                          Filter for fleets containing this name in their fleet device name.

                          */ NameContains?: string; /** - *

                          A filter that retrieves model compilation jobs with a specific DescribeCompilationJobResponse$CompilationJobStatus status.

                          - */ - StatusEquals?: CompilationJobStatus | string; - - /** - *

                          The field by which to sort results. The default is CreationTime.

                          + *

                          The column to sort by.

                          */ - SortBy?: ListCompilationJobsSortBy | string; + SortBy?: ListDeviceFleetsSortBy | string; /** - *

                          The sort order for results. The default is Ascending.

                          + *

                          What direction to sort in.

                          */ SortOrder?: SortOrder | string; } -export namespace ListCompilationJobsRequest { - export const filterSensitiveLog = (obj: ListCompilationJobsRequest): any => ({ +export namespace ListDeviceFleetsRequest { + export const filterSensitiveLog = (obj: ListDeviceFleetsRequest): any => ({ ...obj, }); } -export interface ListCompilationJobsResponse { +export interface ListDeviceFleetsResponse { /** - *

                          An array of CompilationJobSummary objects, each describing a model - * compilation job.

                          + *

                          Summary of the device fleet.

                          */ - CompilationJobSummaries: CompilationJobSummary[] | undefined; + DeviceFleetSummaries: DeviceFleetSummary[] | undefined; /** - *

                          If the response is truncated, Amazon SageMaker returns this NextToken. To retrieve - * the next set of model compilation jobs, use this token in the next request.

                          + *

                          The response from the last list when returning a list large enough to need tokening.

                          */ NextToken?: string; } -export namespace ListCompilationJobsResponse { - export const filterSensitiveLog = (obj: ListCompilationJobsResponse): any => ({ +export namespace ListDeviceFleetsResponse { + export const filterSensitiveLog = (obj: ListDeviceFleetsResponse): any => ({ ...obj, }); } -export enum SortContextsBy { - CREATION_TIME = "CreationTime", - NAME = "Name", -} - -export interface ListContextsRequest { - /** - *

                          A filter that returns only contexts with the specified source URI.

                          - */ - SourceUri?: string; - - /** - *

                          A filter that returns only contexts of the specified type.

                          - */ - ContextType?: string; - - /** - *

                          A filter that returns only contexts created on or after the specified time.

                          - */ - CreatedAfter?: Date; - +export interface ListDevicesRequest { /** - *

                          A filter that returns only contexts created on or before the specified time.

                          + *

                          The response from the last list when returning a list large enough to need tokening.

                          */ - CreatedBefore?: Date; + NextToken?: string; /** - *

                          The property used to sort results. The default value is CreationTime.

                          + *

                          Maximum number of results to select.

                          */ - SortBy?: SortContextsBy | string; + MaxResults?: number; /** - *

                          The sort order. The default value is Descending.

                          + *

                          Select fleets where the job was updated after X

                          */ - SortOrder?: SortOrder | string; + LatestHeartbeatAfter?: Date; /** - *

                          If the previous call to ListContexts didn't return the full set of contexts, - * the call returns a token for getting the next set of contexts.

                          + *

                          A filter that searches devices that contains this name in any of their models.

                          */ - NextToken?: string; + ModelName?: string; /** - *

                          The maximum number of contexts to return in the response. The default value is 10.

                          + *

                          Filter for fleets containing this name in their device fleet name.

                          */ - MaxResults?: number; + DeviceFleetName?: string; } -export namespace ListContextsRequest { - export const filterSensitiveLog = (obj: ListContextsRequest): any => ({ +export namespace ListDevicesRequest { + export const filterSensitiveLog = (obj: ListDevicesRequest): any => ({ ...obj, }); } -export interface ListContextsResponse { +export interface ListDevicesResponse { /** - *

                          A list of contexts and their properties.

                          + *

                          Summary of devices.

                          */ - ContextSummaries?: ContextSummary[]; + DeviceSummaries: DeviceSummary[] | undefined; /** - *

                          A token for getting the next set of contexts, if there are any.

                          + *

                          The response from the last list when returning a list large enough to need tokening.

                          */ NextToken?: string; } -export namespace ListContextsResponse { - export const filterSensitiveLog = (obj: ListContextsResponse): any => ({ +export namespace ListDevicesResponse { + export const filterSensitiveLog = (obj: ListDevicesResponse): any => ({ ...obj, }); } @@ -589,6 +2858,95 @@ export namespace ListDomainsResponse { }); } +export enum ListEdgePackagingJobsSortBy { + CreationTime = "CREATION_TIME", + EdgePackagingJobStatus = "STATUS", + LastModifiedTime = "LAST_MODIFIED_TIME", + ModelName = "MODEL_NAME", + Name = "NAME", +} + +export interface ListEdgePackagingJobsRequest { + /** + *

                          The response from the last list when returning a list large enough to need tokening.

                          + */ + NextToken?: string; + + /** + *

                          Maximum number of results to select.

                          + */ + MaxResults?: number; + + /** + *

                          Select jobs where the job was created after specified time.

                          + */ + CreationTimeAfter?: Date; + + /** + *

                          Select jobs where the job was created before specified time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          Select jobs where the job was updated after specified time.

                          + */ + LastModifiedTimeAfter?: Date; + + /** + *

                          Select jobs where the job was updated before specified time.

                          + */ + LastModifiedTimeBefore?: Date; + + /** + *

                          Filter for jobs containing this name in their packaging job name.

                          + */ + NameContains?: string; + + /** + *

                          Filter for jobs where the model name contains this string.

                          + */ + ModelNameContains?: string; + + /** + *

                          The job status to filter for.

                          + */ + StatusEquals?: EdgePackagingJobStatus | string; + + /** + *

                          Use to specify what column to sort by.

                          + */ + SortBy?: ListEdgePackagingJobsSortBy | string; + + /** + *

                          What direction to sort by.

                          + */ + SortOrder?: SortOrder | string; +} + +export namespace ListEdgePackagingJobsRequest { + export const filterSensitiveLog = (obj: ListEdgePackagingJobsRequest): any => ({ + ...obj, + }); +} + +export interface ListEdgePackagingJobsResponse { + /** + *

                          Summaries of edge packaging jobs.

                          + */ + EdgePackagingJobSummaries: EdgePackagingJobSummary[] | undefined; + + /** + *

                          Token to use when calling the next page of results.

                          + */ + NextToken?: string; +} + +export namespace ListEdgePackagingJobsResponse { + export const filterSensitiveLog = (obj: ListEdgePackagingJobsResponse): any => ({ + ...obj, + }); +} + export enum OrderKey { Ascending = "Ascending", Descending = "Descending", @@ -1344,53 +3702,196 @@ export interface ListLabelingJobsForWorkteamRequest { *

                          A filter that returns only labeling jobs created after the specified time * (timestamp).

                          */ - CreationTimeAfter?: Date; + CreationTimeAfter?: Date; + + /** + *

                          A filter that returns only labeling jobs created before the specified time + * (timestamp).

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter the limits jobs to only the ones whose job reference code contains the + * specified string.

                          + */ + JobReferenceCodeContains?: string; + + /** + *

                          The field to sort results by. The default is CreationTime.

                          + */ + SortBy?: ListLabelingJobsForWorkteamSortByOptions | string; + + /** + *

                          The sort order for results. The default is Ascending.

                          + */ + SortOrder?: SortOrder | string; +} + +export namespace ListLabelingJobsForWorkteamRequest { + export const filterSensitiveLog = (obj: ListLabelingJobsForWorkteamRequest): any => ({ + ...obj, + }); +} + +export interface ListLabelingJobsForWorkteamResponse { + /** + *

                          An array of LabelingJobSummary objects, each describing a labeling + * job.

                          + */ + LabelingJobSummaryList: LabelingJobForWorkteamSummary[] | undefined; + + /** + *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of + * labeling jobs, use it in the subsequent request.

                          + */ + NextToken?: string; +} + +export namespace ListLabelingJobsForWorkteamResponse { + export const filterSensitiveLog = (obj: ListLabelingJobsForWorkteamResponse): any => ({ + ...obj, + }); +} + +export interface ListModelBiasJobDefinitionsRequest { + /** + *

                          Name of the endpoint to monitor for model bias.

                          + */ + EndpointName?: string; + + /** + *

                          Whether to sort results by the Name or CreationTime field. The + * default is CreationTime.

                          + */ + SortBy?: MonitoringJobDefinitionSortKey | string; + + /** + *

                          Whether to sort the results in Ascending or Descending order. + * The default is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          The token returned if the response is truncated. To retrieve the next set of job + * executions, use it in the next request.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of model bias jobs to return in the response. The default value is + * 10.

                          + */ + MaxResults?: number; + + /** + *

                          Filter for model bias jobs whose name contains a specified string.

                          + */ + NameContains?: string; + + /** + *

                          A filter that returns only model bias jobs created before a specified time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter that returns only model bias jobs created after a specified time.

                          + */ + CreationTimeAfter?: Date; +} + +export namespace ListModelBiasJobDefinitionsRequest { + export const filterSensitiveLog = (obj: ListModelBiasJobDefinitionsRequest): any => ({ + ...obj, + }); +} + +export interface ListModelBiasJobDefinitionsResponse { + /** + *

                          A JSON array in which each element is a summary for a model bias jobs.

                          + */ + JobDefinitionSummaries: MonitoringJobDefinitionSummary[] | undefined; + + /** + *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, + * use it in the subsequent request.

                          + */ + NextToken?: string; +} + +export namespace ListModelBiasJobDefinitionsResponse { + export const filterSensitiveLog = (obj: ListModelBiasJobDefinitionsResponse): any => ({ + ...obj, + }); +} + +export interface ListModelExplainabilityJobDefinitionsRequest { + /** + *

                          Name of the endpoint to monitor for model explainability.

                          + */ + EndpointName?: string; + + /** + *

                          Whether to sort results by the Name or CreationTime field. The + * default is CreationTime.

                          + */ + SortBy?: MonitoringJobDefinitionSortKey | string; + + /** + *

                          Whether to sort the results in Ascending or Descending order. + * The default is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          The token returned if the response is truncated. To retrieve the next set of job + * executions, use it in the next request.

                          + */ + NextToken?: string; /** - *

                          A filter that returns only labeling jobs created before the specified time - * (timestamp).

                          + *

                          The maximum number of jobs to return in the response. The default value is 10.

                          */ - CreationTimeBefore?: Date; + MaxResults?: number; /** - *

                          A filter the limits jobs to only the ones whose job reference code contains the - * specified string.

                          + *

                          Filter for model explainability jobs whose name contains a specified string.

                          */ - JobReferenceCodeContains?: string; + NameContains?: string; /** - *

                          The field to sort results by. The default is CreationTime.

                          + *

                          A filter that returns only model explainability jobs created before a specified + * time.

                          */ - SortBy?: ListLabelingJobsForWorkteamSortByOptions | string; + CreationTimeBefore?: Date; /** - *

                          The sort order for results. The default is Ascending.

                          + *

                          A filter that returns only model explainability jobs created after a specified + * time.

                          */ - SortOrder?: SortOrder | string; + CreationTimeAfter?: Date; } -export namespace ListLabelingJobsForWorkteamRequest { - export const filterSensitiveLog = (obj: ListLabelingJobsForWorkteamRequest): any => ({ +export namespace ListModelExplainabilityJobDefinitionsRequest { + export const filterSensitiveLog = (obj: ListModelExplainabilityJobDefinitionsRequest): any => ({ ...obj, }); } -export interface ListLabelingJobsForWorkteamResponse { +export interface ListModelExplainabilityJobDefinitionsResponse { /** - *

                          An array of LabelingJobSummary objects, each describing a labeling - * job.

                          + *

                          A JSON array in which each element is a summary for a explainability bias jobs.

                          */ - LabelingJobSummaryList: LabelingJobForWorkteamSummary[] | undefined; + JobDefinitionSummaries: MonitoringJobDefinitionSummary[] | undefined; /** - *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of - * labeling jobs, use it in the subsequent request.

                          + *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, + * use it in the subsequent request.

                          */ NextToken?: string; } -export namespace ListLabelingJobsForWorkteamResponse { - export const filterSensitiveLog = (obj: ListLabelingJobsForWorkteamResponse): any => ({ +export namespace ListModelExplainabilityJobDefinitionsResponse { + export const filterSensitiveLog = (obj: ListModelExplainabilityJobDefinitionsResponse): any => ({ ...obj, }); } @@ -1679,6 +4180,80 @@ export namespace ListModelPackagesOutput { }); } +export interface ListModelQualityJobDefinitionsRequest { + /** + *

                          A filter that returns only model quality monitoring job definitions that are associated + * with the specified endpoint.

                          + */ + EndpointName?: string; + + /** + *

                          The field to sort results by. The default is CreationTime.

                          + */ + SortBy?: MonitoringJobDefinitionSortKey | string; + + /** + *

                          The sort order for results. The default is Descending.

                          + */ + SortOrder?: SortOrder | string; + + /** + *

                          If the result of the previous ListModelQualityJobDefinitions request was + * truncated, the response includes a NextToken. To retrieve the next set of + * model quality monitoring job definitions, use the token in the next request.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of results to return in a call to + * ListModelQualityJobDefinitions.

                          + */ + MaxResults?: number; + + /** + *

                          A string in the transform job name. This filter returns only model quality monitoring + * job definitions whose name contains the specified string.

                          + */ + NameContains?: string; + + /** + *

                          A filter that returns only model quality monitoring job definitions created before the + * specified time.

                          + */ + CreationTimeBefore?: Date; + + /** + *

                          A filter that returns only model quality monitoring job definitions created after the + * specified time.

                          + */ + CreationTimeAfter?: Date; +} + +export namespace ListModelQualityJobDefinitionsRequest { + export const filterSensitiveLog = (obj: ListModelQualityJobDefinitionsRequest): any => ({ + ...obj, + }); +} + +export interface ListModelQualityJobDefinitionsResponse { + /** + *

                          A list of summaries of model quality monitoring job definitions.

                          + */ + JobDefinitionSummaries: MonitoringJobDefinitionSummary[] | undefined; + + /** + *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model + * quality monitoring job definitions, use it in the next request.

                          + */ + NextToken?: string; +} + +export namespace ListModelQualityJobDefinitionsResponse { + export const filterSensitiveLog = (obj: ListModelQualityJobDefinitionsResponse): any => ({ + ...obj, + }); +} + export enum ModelSortKey { CreationTime = "CreationTime", Name = "Name", @@ -1852,6 +4427,18 @@ export interface ListMonitoringExecutionsRequest { *

                          A filter that retrieves only jobs with a specific status.

                          */ StatusEquals?: ExecutionStatus | string; + + /** + *

                          Gets a list of the monitoring job runs of the specified monitoring job + * definitions.

                          + */ + MonitoringJobDefinitionName?: string; + + /** + *

                          A filter that returns only the monitoring job runs of the specified monitoring + * type.

                          + */ + MonitoringTypeEquals?: MonitoringType | string; } export namespace ListMonitoringExecutionsRequest { @@ -1943,6 +4530,18 @@ export interface ListMonitoringSchedulesRequest { *

                          A filter that returns only monitoring schedules modified before a specified time.

                          */ StatusEquals?: ScheduleStatus | string; + + /** + *

                          Gets a list of the monitoring schedules for the specified monitoring job + * definition.

                          + */ + MonitoringJobDefinitionName?: string; + + /** + *

                          A filter that returns only the monitoring schedules for the specified monitoring + * type.

                          + */ + MonitoringTypeEquals?: MonitoringType | string; } export namespace ListMonitoringSchedulesRequest { @@ -1984,6 +4583,16 @@ export interface MonitoringScheduleSummary { *

                          The name of the endpoint using the monitoring schedule.

                          */ EndpointName?: string; + + /** + *

                          The name of the monitoring job definition that the schedule is for.

                          + */ + MonitoringJobDefinitionName?: string; + + /** + *

                          The type of the monitoring job definition that the schedule is for.

                          + */ + MonitoringType?: MonitoringType | string; } export namespace MonitoringScheduleSummary { @@ -2000,7 +4609,7 @@ export interface ListMonitoringSchedulesResponse { /** *

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, - * use it in the subsequent reques

                          + * use it in the subsequent request.

                          */ NextToken?: string; } @@ -3453,10 +6062,7 @@ export interface ListTransformJobsRequest { NextToken?: string; /** - *

                          The maximum number of - * transform - * jobs to return in the response. The default value is - * 10.

                          + *

                          The maximum number of transform jobs to return in the response. The default value is 10.

                          */ MaxResults?: number; } @@ -4618,6 +7224,44 @@ export namespace ProcessingJob { }); } +/** + *

                          Configuration information for updating the Debugger profile parameters, system and framework metrics configurations, and + * storage paths.

                          + */ +export interface ProfilerConfigForUpdate { + /** + *

                          Path to Amazon S3 storage location for system and framework metrics.

                          + */ + S3OutputPath?: string; + + /** + *

                          A time interval for capturing system metrics in milliseconds. Available values are + * 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.

                          + */ + ProfilingIntervalInMilliseconds?: number; + + /** + *

                          Configuration information for capturing framework metrics. Available key strings for different profiling options are + * DetailedProfilingConfig, PythonProfilingConfig, and DataLoaderProfilingConfig. + * The following codes are configuration structures for the ProfilingParameters parameter. To learn more about + * how to configure the ProfilingParameters parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job. + *

                          + */ + ProfilingParameters?: { [key: string]: string }; + + /** + *

                          To disable Debugger monitoring and profiling, set to True.

                          + */ + DisableProfiler?: boolean; +} + +export namespace ProfilerConfigForUpdate { + export const filterSensitiveLog = (obj: ProfilerConfigForUpdate): any => ({ + ...obj, + }); +} + export interface PutModelPackageGroupPolicyInput { /** *

                          The name of the model group to add a resource policy to.

                          @@ -4649,6 +7293,29 @@ export namespace PutModelPackageGroupPolicyOutput { }); } +export interface RegisterDevicesRequest { + /** + *

                          The name of the fleet.

                          + */ + DeviceFleetName: string | undefined; + + /** + *

                          A list of devices to register with SageMaker Edge Manager.

                          + */ + Devices: Device[] | undefined; + + /** + *

                          The tags associated with devices.

                          + */ + Tags?: Tag[]; +} + +export namespace RegisterDevicesRequest { + export const filterSensitiveLog = (obj: RegisterDevicesRequest): any => ({ + ...obj, + }); +} + /** *

                          Contains input values for a task.

                          */ @@ -5048,8 +7715,10 @@ export interface TrainingJob { BillableTimeInSeconds?: number; /** - *

                          Configuration information for the debug hook parameters, collection configuration, and - * storage paths.

                          + *

                          Configuration information for the Debugger hook parameters, metric and tensor collections, and + * storage paths. To learn more about + * how to configure the DebugHookConfig parameter, + * see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          */ DebugHookConfig?: DebugHookConfig; @@ -5082,7 +7751,7 @@ export interface TrainingJob { DebugRuleConfigurations?: DebugRuleConfiguration[]; /** - *

                          Configuration of storage locations for TensorBoard output.

                          + *

                          Configuration of storage locations for the Debugger TensorBoard output data.

                          */ TensorBoardOutputConfig?: TensorBoardOutputConfig; @@ -5741,6 +8410,19 @@ export namespace StopCompilationJobRequest { }); } +export interface StopEdgePackagingJobRequest { + /** + *

                          The name of the edge packaging job.

                          + */ + EdgePackagingJobName: string | undefined; +} + +export namespace StopEdgePackagingJobRequest { + export const filterSensitiveLog = (obj: StopEdgePackagingJobRequest): any => ({ + ...obj, + }); +} + export interface StopHyperParameterTuningJobRequest { /** *

                          The name of the tuning job to stop.

                          @@ -6061,6 +8743,52 @@ export namespace UpdateContextResponse { }); } +export interface UpdateDeviceFleetRequest { + /** + *

                          The name of the fleet.

                          + */ + DeviceFleetName: string | undefined; + + /** + *

                          The Amazon Resource Name (ARN) of the device.

                          + */ + RoleArn?: string; + + /** + *

                          Description of the fleet.

                          + */ + Description?: string; + + /** + *

                          Output configuration for storing sample data collected by the fleet.

                          + */ + OutputConfig: EdgeOutputConfig | undefined; +} + +export namespace UpdateDeviceFleetRequest { + export const filterSensitiveLog = (obj: UpdateDeviceFleetRequest): any => ({ + ...obj, + }); +} + +export interface UpdateDevicesRequest { + /** + *

                          The name of the fleet the devices belong to.

                          + */ + DeviceFleetName: string | undefined; + + /** + *

                          List of devices to register with Edge Manager agent.

                          + */ + Devices: Device[] | undefined; +} + +export namespace UpdateDevicesRequest { + export const filterSensitiveLog = (obj: UpdateDevicesRequest): any => ({ + ...obj, + }); +} + export interface UpdateDomainRequest { /** *

                          The ID of the domain to be updated.

                          @@ -6614,6 +9342,44 @@ export namespace UpdatePipelineExecutionResponse { }); } +export interface UpdateTrainingJobRequest { + /** + *

                          The name of a training job to update the Debugger profiling configuration.

                          + */ + TrainingJobName: string | undefined; + + /** + *

                          Configuration information for Debugger system monitoring, framework profiling, and + * storage paths.

                          + */ + ProfilerConfig?: ProfilerConfigForUpdate; + + /** + *

                          Configuration information for Debugger rules for profiling system and framework + * metrics.

                          + */ + ProfilerRuleConfigurations?: ProfilerRuleConfiguration[]; +} + +export namespace UpdateTrainingJobRequest { + export const filterSensitiveLog = (obj: UpdateTrainingJobRequest): any => ({ + ...obj, + }); +} + +export interface UpdateTrainingJobResponse { + /** + *

                          The Amazon Resource Name (ARN) of the training job.

                          + */ + TrainingJobArn: string | undefined; +} + +export namespace UpdateTrainingJobResponse { + export const filterSensitiveLog = (obj: UpdateTrainingJobResponse): any => ({ + ...obj, + }); +} + export interface UpdateTrialRequest { /** *

                          The name of the trial to update.

                          @@ -6871,109 +9637,3 @@ export namespace UpdateWorkteamResponse { ...obj, }); } - -/** - *

                          A multi-expression that searches for the specified resource or resources in a search. All resource - * objects that satisfy the expression's condition are included in the search results. You must specify at - * least one subexpression, filter, or nested filter. A SearchExpression can contain up to - * twenty elements.

                          - *

                          A SearchExpression contains the following components:

                          - *
                            - *
                          • - *

                            A list of Filter objects. Each filter defines a simple Boolean - * expression comprised of a resource property name, Boolean operator, and - * value.

                            - *
                          • - *
                          • - *

                            A list of NestedFilter objects. Each nested filter defines a list - * of Boolean expressions using a list of resource properties. A nested filter is - * satisfied if a single object in the list satisfies all Boolean - * expressions.

                            - *
                          • - *
                          • - *

                            A list of SearchExpression objects. A search expression object - * can be nested in a list of search expression objects.

                            - *
                          • - *
                          • - *

                            A Boolean operator: And or Or.

                            - *
                          • - *
                          - */ -export interface SearchExpression { - /** - *

                          A list of filter objects.

                          - */ - Filters?: Filter[]; - - /** - *

                          A list of nested filter objects.

                          - */ - NestedFilters?: NestedFilters[]; - - /** - *

                          A list of search expression objects.

                          - */ - SubExpressions?: SearchExpression[]; - - /** - *

                          A Boolean operator used to evaluate the search expression. If you want every - * conditional statement in all lists to be satisfied for the entire search expression to - * be true, specify And. If only a single conditional statement needs to be - * true for the entire search expression to be true, specify Or. The default - * value is And.

                          - */ - Operator?: BooleanOperator | string; -} - -export namespace SearchExpression { - export const filterSensitiveLog = (obj: SearchExpression): any => ({ - ...obj, - }); -} - -export interface SearchRequest { - /** - *

                          The name of the Amazon SageMaker resource to search for.

                          - */ - Resource: ResourceType | string | undefined; - - /** - *

                          A Boolean conditional statement. Resources must satisfy this condition to be - * included in search results. You must provide at least one subexpression, filter, or - * nested filter. The maximum number of recursive SubExpressions, - * NestedFilters, and Filters that can be included in a - * SearchExpression object is 50.

                          - */ - SearchExpression?: SearchExpression; - - /** - *

                          The name of the resource property used to sort the SearchResults. The - * default is LastModifiedTime.

                          - */ - SortBy?: string; - - /** - *

                          How SearchResults are ordered. Valid values are Ascending or - * Descending. The default is Descending.

                          - */ - SortOrder?: SearchSortOrder | string; - - /** - *

                          If more than MaxResults resources match the specified - * SearchExpression, the response includes a - * NextToken. The NextToken can be passed to the next - * SearchRequest to continue retrieving results.

                          - */ - NextToken?: string; - - /** - *

                          The maximum number of results to return.

                          - */ - MaxResults?: number; -} - -export namespace SearchRequest { - export const filterSensitiveLog = (obj: SearchRequest): any => ({ - ...obj, - }); -} diff --git a/clients/client-sagemaker/models/models_3.ts b/clients/client-sagemaker/models/models_3.ts new file mode 100644 index 0000000000000..31627a3c58e51 --- /dev/null +++ b/clients/client-sagemaker/models/models_3.ts @@ -0,0 +1,109 @@ +import { BooleanOperator } from "./models_0"; +import { Filter, NestedFilters, ResourceType, SearchSortOrder } from "./models_2"; +import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; + +/** + *

                          A multi-expression that searches for the specified resource or resources in a search. All resource + * objects that satisfy the expression's condition are included in the search results. You must specify at + * least one subexpression, filter, or nested filter. A SearchExpression can contain up to + * twenty elements.

                          + *

                          A SearchExpression contains the following components:

                          + *
                            + *
                          • + *

                            A list of Filter objects. Each filter defines a simple Boolean + * expression comprised of a resource property name, Boolean operator, and + * value.

                            + *
                          • + *
                          • + *

                            A list of NestedFilter objects. Each nested filter defines a list + * of Boolean expressions using a list of resource properties. A nested filter is + * satisfied if a single object in the list satisfies all Boolean + * expressions.

                            + *
                          • + *
                          • + *

                            A list of SearchExpression objects. A search expression object + * can be nested in a list of search expression objects.

                            + *
                          • + *
                          • + *

                            A Boolean operator: And or Or.

                            + *
                          • + *
                          + */ +export interface SearchExpression { + /** + *

                          A list of filter objects.

                          + */ + Filters?: Filter[]; + + /** + *

                          A list of nested filter objects.

                          + */ + NestedFilters?: NestedFilters[]; + + /** + *

                          A list of search expression objects.

                          + */ + SubExpressions?: SearchExpression[]; + + /** + *

                          A Boolean operator used to evaluate the search expression. If you want every + * conditional statement in all lists to be satisfied for the entire search expression to + * be true, specify And. If only a single conditional statement needs to be + * true for the entire search expression to be true, specify Or. The default + * value is And.

                          + */ + Operator?: BooleanOperator | string; +} + +export namespace SearchExpression { + export const filterSensitiveLog = (obj: SearchExpression): any => ({ + ...obj, + }); +} + +export interface SearchRequest { + /** + *

                          The name of the Amazon SageMaker resource to search for.

                          + */ + Resource: ResourceType | string | undefined; + + /** + *

                          A Boolean conditional statement. Resources must satisfy this condition to be + * included in search results. You must provide at least one subexpression, filter, or + * nested filter. The maximum number of recursive SubExpressions, + * NestedFilters, and Filters that can be included in a + * SearchExpression object is 50.

                          + */ + SearchExpression?: SearchExpression; + + /** + *

                          The name of the resource property used to sort the SearchResults. The + * default is LastModifiedTime.

                          + */ + SortBy?: string; + + /** + *

                          How SearchResults are ordered. Valid values are Ascending or + * Descending. The default is Descending.

                          + */ + SortOrder?: SearchSortOrder | string; + + /** + *

                          If more than MaxResults resources match the specified + * SearchExpression, the response includes a + * NextToken. The NextToken can be passed to the next + * SearchRequest to continue retrieving results.

                          + */ + NextToken?: string; + + /** + *

                          The maximum number of results to return.

                          + */ + MaxResults?: number; +} + +export namespace SearchRequest { + export const filterSensitiveLog = (obj: SearchRequest): any => ({ + ...obj, + }); +} diff --git a/clients/client-sagemaker/pagination/ListDataQualityJobDefinitionsPaginator.ts b/clients/client-sagemaker/pagination/ListDataQualityJobDefinitionsPaginator.ts new file mode 100644 index 0000000000000..85871d34fee28 --- /dev/null +++ b/clients/client-sagemaker/pagination/ListDataQualityJobDefinitionsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListDataQualityJobDefinitionsCommand, + ListDataQualityJobDefinitionsCommandInput, + ListDataQualityJobDefinitionsCommandOutput, +} from "../commands/ListDataQualityJobDefinitionsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListDataQualityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListDataQualityJobDefinitionsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListDataQualityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listDataQualityJobDefinitions(input, ...args); +}; +export async function* paginateListDataQualityJobDefinitions( + config: SageMakerPaginationConfiguration, + input: ListDataQualityJobDefinitionsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListDataQualityJobDefinitionsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListDeviceFleetsPaginator.ts b/clients/client-sagemaker/pagination/ListDeviceFleetsPaginator.ts new file mode 100644 index 0000000000000..555f30f2a6273 --- /dev/null +++ b/clients/client-sagemaker/pagination/ListDeviceFleetsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListDeviceFleetsCommand, + ListDeviceFleetsCommandInput, + ListDeviceFleetsCommandOutput, +} from "../commands/ListDeviceFleetsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListDeviceFleetsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListDeviceFleetsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListDeviceFleetsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listDeviceFleets(input, ...args); +}; +export async function* paginateListDeviceFleets( + config: SageMakerPaginationConfiguration, + input: ListDeviceFleetsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListDeviceFleetsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListDevicesPaginator.ts b/clients/client-sagemaker/pagination/ListDevicesPaginator.ts new file mode 100644 index 0000000000000..392a5f48eb5bb --- /dev/null +++ b/clients/client-sagemaker/pagination/ListDevicesPaginator.ts @@ -0,0 +1,53 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { ListDevicesCommand, ListDevicesCommandInput, ListDevicesCommandOutput } from "../commands/ListDevicesCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListDevicesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListDevicesCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListDevicesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listDevices(input, ...args); +}; +export async function* paginateListDevices( + config: SageMakerPaginationConfiguration, + input: ListDevicesCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListDevicesCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListEdgePackagingJobsPaginator.ts b/clients/client-sagemaker/pagination/ListEdgePackagingJobsPaginator.ts new file mode 100644 index 0000000000000..307e5b76a2c6e --- /dev/null +++ b/clients/client-sagemaker/pagination/ListEdgePackagingJobsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListEdgePackagingJobsCommand, + ListEdgePackagingJobsCommandInput, + ListEdgePackagingJobsCommandOutput, +} from "../commands/ListEdgePackagingJobsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListEdgePackagingJobsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListEdgePackagingJobsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListEdgePackagingJobsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listEdgePackagingJobs(input, ...args); +}; +export async function* paginateListEdgePackagingJobs( + config: SageMakerPaginationConfiguration, + input: ListEdgePackagingJobsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListEdgePackagingJobsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListModelBiasJobDefinitionsPaginator.ts b/clients/client-sagemaker/pagination/ListModelBiasJobDefinitionsPaginator.ts new file mode 100644 index 0000000000000..2a2dca5677874 --- /dev/null +++ b/clients/client-sagemaker/pagination/ListModelBiasJobDefinitionsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListModelBiasJobDefinitionsCommand, + ListModelBiasJobDefinitionsCommandInput, + ListModelBiasJobDefinitionsCommandOutput, +} from "../commands/ListModelBiasJobDefinitionsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListModelBiasJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListModelBiasJobDefinitionsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListModelBiasJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listModelBiasJobDefinitions(input, ...args); +}; +export async function* paginateListModelBiasJobDefinitions( + config: SageMakerPaginationConfiguration, + input: ListModelBiasJobDefinitionsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListModelBiasJobDefinitionsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListModelExplainabilityJobDefinitionsPaginator.ts b/clients/client-sagemaker/pagination/ListModelExplainabilityJobDefinitionsPaginator.ts new file mode 100644 index 0000000000000..046cff03a495a --- /dev/null +++ b/clients/client-sagemaker/pagination/ListModelExplainabilityJobDefinitionsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListModelExplainabilityJobDefinitionsCommand, + ListModelExplainabilityJobDefinitionsCommandInput, + ListModelExplainabilityJobDefinitionsCommandOutput, +} from "../commands/ListModelExplainabilityJobDefinitionsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListModelExplainabilityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListModelExplainabilityJobDefinitionsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListModelExplainabilityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listModelExplainabilityJobDefinitions(input, ...args); +}; +export async function* paginateListModelExplainabilityJobDefinitions( + config: SageMakerPaginationConfiguration, + input: ListModelExplainabilityJobDefinitionsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListModelExplainabilityJobDefinitionsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/pagination/ListModelQualityJobDefinitionsPaginator.ts b/clients/client-sagemaker/pagination/ListModelQualityJobDefinitionsPaginator.ts new file mode 100644 index 0000000000000..86a166556a544 --- /dev/null +++ b/clients/client-sagemaker/pagination/ListModelQualityJobDefinitionsPaginator.ts @@ -0,0 +1,57 @@ +import { SageMaker } from "../SageMaker"; +import { SageMakerClient } from "../SageMakerClient"; +import { + ListModelQualityJobDefinitionsCommand, + ListModelQualityJobDefinitionsCommandInput, + ListModelQualityJobDefinitionsCommandOutput, +} from "../commands/ListModelQualityJobDefinitionsCommand"; +import { SageMakerPaginationConfiguration } from "./Interfaces"; +import { Paginator } from "@aws-sdk/types"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: SageMakerClient, + input: ListModelQualityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListModelQualityJobDefinitionsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: SageMaker, + input: ListModelQualityJobDefinitionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listModelQualityJobDefinitions(input, ...args); +}; +export async function* paginateListModelQualityJobDefinitions( + config: SageMakerPaginationConfiguration, + input: ListModelQualityJobDefinitionsCommandInput, + ...additionalArguments: any +): Paginator { + let token: string | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListModelQualityJobDefinitionsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof SageMaker) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof SageMakerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected SageMaker | SageMakerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-sagemaker/protocols/Aws_json1_1.ts b/clients/client-sagemaker/protocols/Aws_json1_1.ts index db15b98cc08d9..d96450711bae8 100644 --- a/clients/client-sagemaker/protocols/Aws_json1_1.ts +++ b/clients/client-sagemaker/protocols/Aws_json1_1.ts @@ -22,7 +22,16 @@ import { CreateCompilationJobCommandOutput, } from "../commands/CreateCompilationJobCommand"; import { CreateContextCommandInput, CreateContextCommandOutput } from "../commands/CreateContextCommand"; +import { + CreateDataQualityJobDefinitionCommandInput, + CreateDataQualityJobDefinitionCommandOutput, +} from "../commands/CreateDataQualityJobDefinitionCommand"; +import { CreateDeviceFleetCommandInput, CreateDeviceFleetCommandOutput } from "../commands/CreateDeviceFleetCommand"; import { CreateDomainCommandInput, CreateDomainCommandOutput } from "../commands/CreateDomainCommand"; +import { + CreateEdgePackagingJobCommandInput, + CreateEdgePackagingJobCommandOutput, +} from "../commands/CreateEdgePackagingJobCommand"; import { CreateEndpointCommandInput, CreateEndpointCommandOutput } from "../commands/CreateEndpointCommand"; import { CreateEndpointConfigCommandInput, @@ -42,12 +51,24 @@ import { import { CreateImageCommandInput, CreateImageCommandOutput } from "../commands/CreateImageCommand"; import { CreateImageVersionCommandInput, CreateImageVersionCommandOutput } from "../commands/CreateImageVersionCommand"; import { CreateLabelingJobCommandInput, CreateLabelingJobCommandOutput } from "../commands/CreateLabelingJobCommand"; +import { + CreateModelBiasJobDefinitionCommandInput, + CreateModelBiasJobDefinitionCommandOutput, +} from "../commands/CreateModelBiasJobDefinitionCommand"; import { CreateModelCommandInput, CreateModelCommandOutput } from "../commands/CreateModelCommand"; +import { + CreateModelExplainabilityJobDefinitionCommandInput, + CreateModelExplainabilityJobDefinitionCommandOutput, +} from "../commands/CreateModelExplainabilityJobDefinitionCommand"; import { CreateModelPackageCommandInput, CreateModelPackageCommandOutput } from "../commands/CreateModelPackageCommand"; import { CreateModelPackageGroupCommandInput, CreateModelPackageGroupCommandOutput, } from "../commands/CreateModelPackageGroupCommand"; +import { + CreateModelQualityJobDefinitionCommandInput, + CreateModelQualityJobDefinitionCommandOutput, +} from "../commands/CreateModelQualityJobDefinitionCommand"; import { CreateMonitoringScheduleCommandInput, CreateMonitoringScheduleCommandOutput, @@ -98,6 +119,11 @@ import { DeleteCodeRepositoryCommandOutput, } from "../commands/DeleteCodeRepositoryCommand"; import { DeleteContextCommandInput, DeleteContextCommandOutput } from "../commands/DeleteContextCommand"; +import { + DeleteDataQualityJobDefinitionCommandInput, + DeleteDataQualityJobDefinitionCommandOutput, +} from "../commands/DeleteDataQualityJobDefinitionCommand"; +import { DeleteDeviceFleetCommandInput, DeleteDeviceFleetCommandOutput } from "../commands/DeleteDeviceFleetCommand"; import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "../commands/DeleteDomainCommand"; import { DeleteEndpointCommandInput, DeleteEndpointCommandOutput } from "../commands/DeleteEndpointCommand"; import { @@ -113,7 +139,15 @@ import { import { DeleteHumanTaskUiCommandInput, DeleteHumanTaskUiCommandOutput } from "../commands/DeleteHumanTaskUiCommand"; import { DeleteImageCommandInput, DeleteImageCommandOutput } from "../commands/DeleteImageCommand"; import { DeleteImageVersionCommandInput, DeleteImageVersionCommandOutput } from "../commands/DeleteImageVersionCommand"; +import { + DeleteModelBiasJobDefinitionCommandInput, + DeleteModelBiasJobDefinitionCommandOutput, +} from "../commands/DeleteModelBiasJobDefinitionCommand"; import { DeleteModelCommandInput, DeleteModelCommandOutput } from "../commands/DeleteModelCommand"; +import { + DeleteModelExplainabilityJobDefinitionCommandInput, + DeleteModelExplainabilityJobDefinitionCommandOutput, +} from "../commands/DeleteModelExplainabilityJobDefinitionCommand"; import { DeleteModelPackageCommandInput, DeleteModelPackageCommandOutput } from "../commands/DeleteModelPackageCommand"; import { DeleteModelPackageGroupCommandInput, @@ -123,6 +157,10 @@ import { DeleteModelPackageGroupPolicyCommandInput, DeleteModelPackageGroupPolicyCommandOutput, } from "../commands/DeleteModelPackageGroupPolicyCommand"; +import { + DeleteModelQualityJobDefinitionCommandInput, + DeleteModelQualityJobDefinitionCommandOutput, +} from "../commands/DeleteModelQualityJobDefinitionCommand"; import { DeleteMonitoringScheduleCommandInput, DeleteMonitoringScheduleCommandOutput, @@ -146,6 +184,7 @@ import { import { DeleteUserProfileCommandInput, DeleteUserProfileCommandOutput } from "../commands/DeleteUserProfileCommand"; import { DeleteWorkforceCommandInput, DeleteWorkforceCommandOutput } from "../commands/DeleteWorkforceCommand"; import { DeleteWorkteamCommandInput, DeleteWorkteamCommandOutput } from "../commands/DeleteWorkteamCommand"; +import { DeregisterDevicesCommandInput, DeregisterDevicesCommandOutput } from "../commands/DeregisterDevicesCommand"; import { DescribeActionCommandInput, DescribeActionCommandOutput } from "../commands/DescribeActionCommand"; import { DescribeAlgorithmCommandInput, DescribeAlgorithmCommandOutput } from "../commands/DescribeAlgorithmCommand"; import { DescribeAppCommandInput, DescribeAppCommandOutput } from "../commands/DescribeAppCommand"; @@ -164,7 +203,20 @@ import { DescribeCompilationJobCommandOutput, } from "../commands/DescribeCompilationJobCommand"; import { DescribeContextCommandInput, DescribeContextCommandOutput } from "../commands/DescribeContextCommand"; +import { + DescribeDataQualityJobDefinitionCommandInput, + DescribeDataQualityJobDefinitionCommandOutput, +} from "../commands/DescribeDataQualityJobDefinitionCommand"; +import { DescribeDeviceCommandInput, DescribeDeviceCommandOutput } from "../commands/DescribeDeviceCommand"; +import { + DescribeDeviceFleetCommandInput, + DescribeDeviceFleetCommandOutput, +} from "../commands/DescribeDeviceFleetCommand"; import { DescribeDomainCommandInput, DescribeDomainCommandOutput } from "../commands/DescribeDomainCommand"; +import { + DescribeEdgePackagingJobCommandInput, + DescribeEdgePackagingJobCommandOutput, +} from "../commands/DescribeEdgePackagingJobCommand"; import { DescribeEndpointCommandInput, DescribeEndpointCommandOutput } from "../commands/DescribeEndpointCommand"; import { DescribeEndpointConfigCommandInput, @@ -196,7 +248,15 @@ import { DescribeLabelingJobCommandInput, DescribeLabelingJobCommandOutput, } from "../commands/DescribeLabelingJobCommand"; +import { + DescribeModelBiasJobDefinitionCommandInput, + DescribeModelBiasJobDefinitionCommandOutput, +} from "../commands/DescribeModelBiasJobDefinitionCommand"; import { DescribeModelCommandInput, DescribeModelCommandOutput } from "../commands/DescribeModelCommand"; +import { + DescribeModelExplainabilityJobDefinitionCommandInput, + DescribeModelExplainabilityJobDefinitionCommandOutput, +} from "../commands/DescribeModelExplainabilityJobDefinitionCommand"; import { DescribeModelPackageCommandInput, DescribeModelPackageCommandOutput, @@ -205,6 +265,10 @@ import { DescribeModelPackageGroupCommandInput, DescribeModelPackageGroupCommandOutput, } from "../commands/DescribeModelPackageGroupCommand"; +import { + DescribeModelQualityJobDefinitionCommandInput, + DescribeModelQualityJobDefinitionCommandOutput, +} from "../commands/DescribeModelQualityJobDefinitionCommand"; import { DescribeMonitoringScheduleCommandInput, DescribeMonitoringScheduleCommandOutput, @@ -266,6 +330,10 @@ import { EnableSagemakerServicecatalogPortfolioCommandInput, EnableSagemakerServicecatalogPortfolioCommandOutput, } from "../commands/EnableSagemakerServicecatalogPortfolioCommand"; +import { + GetDeviceFleetReportCommandInput, + GetDeviceFleetReportCommandOutput, +} from "../commands/GetDeviceFleetReportCommand"; import { GetModelPackageGroupPolicyCommandInput, GetModelPackageGroupPolicyCommandOutput, @@ -301,7 +369,17 @@ import { ListCompilationJobsCommandOutput, } from "../commands/ListCompilationJobsCommand"; import { ListContextsCommandInput, ListContextsCommandOutput } from "../commands/ListContextsCommand"; +import { + ListDataQualityJobDefinitionsCommandInput, + ListDataQualityJobDefinitionsCommandOutput, +} from "../commands/ListDataQualityJobDefinitionsCommand"; +import { ListDeviceFleetsCommandInput, ListDeviceFleetsCommandOutput } from "../commands/ListDeviceFleetsCommand"; +import { ListDevicesCommandInput, ListDevicesCommandOutput } from "../commands/ListDevicesCommand"; import { ListDomainsCommandInput, ListDomainsCommandOutput } from "../commands/ListDomainsCommand"; +import { + ListEdgePackagingJobsCommandInput, + ListEdgePackagingJobsCommandOutput, +} from "../commands/ListEdgePackagingJobsCommand"; import { ListEndpointConfigsCommandInput, ListEndpointConfigsCommandOutput, @@ -325,11 +403,23 @@ import { ListLabelingJobsForWorkteamCommandInput, ListLabelingJobsForWorkteamCommandOutput, } from "../commands/ListLabelingJobsForWorkteamCommand"; +import { + ListModelBiasJobDefinitionsCommandInput, + ListModelBiasJobDefinitionsCommandOutput, +} from "../commands/ListModelBiasJobDefinitionsCommand"; +import { + ListModelExplainabilityJobDefinitionsCommandInput, + ListModelExplainabilityJobDefinitionsCommandOutput, +} from "../commands/ListModelExplainabilityJobDefinitionsCommand"; import { ListModelPackageGroupsCommandInput, ListModelPackageGroupsCommandOutput, } from "../commands/ListModelPackageGroupsCommand"; import { ListModelPackagesCommandInput, ListModelPackagesCommandOutput } from "../commands/ListModelPackagesCommand"; +import { + ListModelQualityJobDefinitionsCommandInput, + ListModelQualityJobDefinitionsCommandOutput, +} from "../commands/ListModelQualityJobDefinitionsCommand"; import { ListModelsCommandInput, ListModelsCommandOutput } from "../commands/ListModelsCommand"; import { ListMonitoringExecutionsCommandInput, @@ -385,6 +475,7 @@ import { PutModelPackageGroupPolicyCommandInput, PutModelPackageGroupPolicyCommandOutput, } from "../commands/PutModelPackageGroupPolicyCommand"; +import { RegisterDevicesCommandInput, RegisterDevicesCommandOutput } from "../commands/RegisterDevicesCommand"; import { RenderUiTemplateCommandInput, RenderUiTemplateCommandOutput } from "../commands/RenderUiTemplateCommand"; import { SearchCommandInput, SearchCommandOutput } from "../commands/SearchCommand"; import { @@ -401,6 +492,10 @@ import { } from "../commands/StartPipelineExecutionCommand"; import { StopAutoMLJobCommandInput, StopAutoMLJobCommandOutput } from "../commands/StopAutoMLJobCommand"; import { StopCompilationJobCommandInput, StopCompilationJobCommandOutput } from "../commands/StopCompilationJobCommand"; +import { + StopEdgePackagingJobCommandInput, + StopEdgePackagingJobCommandOutput, +} from "../commands/StopEdgePackagingJobCommand"; import { StopHyperParameterTuningJobCommandInput, StopHyperParameterTuningJobCommandOutput, @@ -432,6 +527,8 @@ import { UpdateCodeRepositoryCommandOutput, } from "../commands/UpdateCodeRepositoryCommand"; import { UpdateContextCommandInput, UpdateContextCommandOutput } from "../commands/UpdateContextCommand"; +import { UpdateDeviceFleetCommandInput, UpdateDeviceFleetCommandOutput } from "../commands/UpdateDeviceFleetCommand"; +import { UpdateDevicesCommandInput, UpdateDevicesCommandOutput } from "../commands/UpdateDevicesCommand"; import { UpdateDomainCommandInput, UpdateDomainCommandOutput } from "../commands/UpdateDomainCommand"; import { UpdateEndpointCommandInput, UpdateEndpointCommandOutput } from "../commands/UpdateEndpointCommand"; import { @@ -458,6 +555,7 @@ import { UpdatePipelineExecutionCommandInput, UpdatePipelineExecutionCommandOutput, } from "../commands/UpdatePipelineExecutionCommand"; +import { UpdateTrainingJobCommandInput, UpdateTrainingJobCommandOutput } from "../commands/UpdateTrainingJobCommand"; import { UpdateTrialCommandInput, UpdateTrialCommandOutput } from "../commands/UpdateTrialCommand"; import { UpdateTrialComponentCommandInput, @@ -473,6 +571,7 @@ import { AddAssociationResponse, AddTagsInput, AddTagsOutput, + AgentVersion, Alarm, AlgorithmSpecification, AlgorithmStatusDetails, @@ -548,8 +647,12 @@ import { CreateCompilationJobResponse, CreateContextRequest, CreateContextResponse, + CreateDataQualityJobDefinitionRequest, + CreateDataQualityJobDefinitionResponse, + CreateDeviceFleetRequest, CreateDomainRequest, CreateDomainResponse, + CreateEdgePackagingJobRequest, CreateEndpointConfigInput, CreateEndpointConfigOutput, CreateEndpointInput, @@ -570,25 +673,24 @@ import { CreateImageVersionResponse, CreateLabelingJobRequest, CreateLabelingJobResponse, + CreateModelBiasJobDefinitionRequest, + CreateModelBiasJobDefinitionResponse, + CreateModelExplainabilityJobDefinitionRequest, + CreateModelExplainabilityJobDefinitionResponse, CreateModelInput, CreateModelOutput, CreateModelPackageGroupInput, CreateModelPackageGroupOutput, CreateModelPackageInput, CreateModelPackageOutput, - CreateMonitoringScheduleRequest, - CreateMonitoringScheduleResponse, - CreateNotebookInstanceInput, - CreateNotebookInstanceLifecycleConfigInput, - CreateNotebookInstanceLifecycleConfigOutput, - CreateNotebookInstanceOutput, - CreatePipelineRequest, - CreatePipelineResponse, - CreatePresignedDomainUrlRequest, CustomImage, DataCaptureConfig, DataCatalogConfig, + DataQualityAppSpecification, + DataQualityBaselineConfig, + DataQualityJobInput, DataSource, + EdgeOutputConfig, EndpointInput, Explainability, FeatureDefinition, @@ -629,28 +731,28 @@ import { MetadataProperties, MetricDefinition, MetricsSource, + ModelBiasAppSpecification, + ModelBiasBaselineConfig, + ModelBiasJobInput, ModelDataQuality, + ModelExplainabilityAppSpecification, + ModelExplainabilityBaselineConfig, + ModelExplainabilityJobInput, ModelMetrics, ModelPackageContainerDefinition, ModelPackageValidationProfile, ModelPackageValidationSpecification, ModelQuality, - MonitoringAppSpecification, - MonitoringBaselineConfig, MonitoringClusterConfig, MonitoringConstraintsResource, - MonitoringInput, - MonitoringJobDefinition, + MonitoringGroundTruthS3Input, + MonitoringNetworkConfig, MonitoringOutput, MonitoringOutputConfig, MonitoringResources, MonitoringS3Output, - MonitoringScheduleConfig, MonitoringStatisticsResource, MonitoringStoppingCondition, - NetworkConfig, - NotebookInstanceAcceleratorType, - NotebookInstanceLifecycleHook, OfflineStoreConfig, OnlineStoreConfig, OnlineStoreSecurityConfig, @@ -670,7 +772,6 @@ import { ResourceSpec, S3DataSource, S3StorageConfig, - ScheduleConfig, SharingSettings, ShuffleConfig, SourceAlgorithm, @@ -700,6 +801,17 @@ import { VpcConfig, } from "../models/models_0"; import { + CreateModelQualityJobDefinitionRequest, + CreateModelQualityJobDefinitionResponse, + CreateMonitoringScheduleRequest, + CreateMonitoringScheduleResponse, + CreateNotebookInstanceInput, + CreateNotebookInstanceLifecycleConfigInput, + CreateNotebookInstanceLifecycleConfigOutput, + CreateNotebookInstanceOutput, + CreatePipelineRequest, + CreatePipelineResponse, + CreatePresignedDomainUrlRequest, CreatePresignedDomainUrlResponse, CreatePresignedNotebookInstanceUrlInput, CreatePresignedNotebookInstanceUrlOutput, @@ -739,6 +851,8 @@ import { DeleteCodeRepositoryInput, DeleteContextRequest, DeleteContextResponse, + DeleteDataQualityJobDefinitionRequest, + DeleteDeviceFleetRequest, DeleteDomainRequest, DeleteEndpointConfigInput, DeleteEndpointInput, @@ -753,10 +867,13 @@ import { DeleteImageResponse, DeleteImageVersionRequest, DeleteImageVersionResponse, + DeleteModelBiasJobDefinitionRequest, + DeleteModelExplainabilityJobDefinitionRequest, DeleteModelInput, DeleteModelPackageGroupInput, DeleteModelPackageGroupPolicyInput, DeleteModelPackageInput, + DeleteModelQualityJobDefinitionRequest, DeleteMonitoringScheduleRequest, DeleteNotebookInstanceInput, DeleteNotebookInstanceLifecycleConfigInput, @@ -776,6 +893,7 @@ import { DeleteWorkteamResponse, DeployedImage, DeploymentConfig, + DeregisterDevicesRequest, DescribeActionRequest, DescribeActionResponse, DescribeAlgorithmInput, @@ -794,8 +912,16 @@ import { DescribeCompilationJobResponse, DescribeContextRequest, DescribeContextResponse, + DescribeDataQualityJobDefinitionRequest, + DescribeDataQualityJobDefinitionResponse, + DescribeDeviceFleetRequest, + DescribeDeviceFleetResponse, + DescribeDeviceRequest, + DescribeDeviceResponse, DescribeDomainRequest, DescribeDomainResponse, + DescribeEdgePackagingJobRequest, + DescribeEdgePackagingJobResponse, DescribeEndpointConfigInput, DescribeEndpointConfigOutput, DescribeEndpointInput, @@ -816,12 +942,18 @@ import { DescribeImageVersionResponse, DescribeLabelingJobRequest, DescribeLabelingJobResponse, + DescribeModelBiasJobDefinitionRequest, + DescribeModelBiasJobDefinitionResponse, + DescribeModelExplainabilityJobDefinitionRequest, + DescribeModelExplainabilityJobDefinitionResponse, DescribeModelInput, DescribeModelOutput, DescribeModelPackageGroupInput, DescribeModelPackageGroupOutput, DescribeModelPackageInput, DescribeModelPackageOutput, + DescribeModelQualityJobDefinitionRequest, + DescribeModelQualityJobDefinitionResponse, DescribeMonitoringScheduleRequest, DescribeMonitoringScheduleResponse, DescribeNotebookInstanceInput, @@ -855,53 +987,20 @@ import { DescribeWorkteamRequest, DescribeWorkteamResponse, DesiredWeightAndCapacity, + Device, + DeviceFleetSummary, + DeviceStats, + DeviceSummary, DisableSagemakerServicecatalogPortfolioInput, DisableSagemakerServicecatalogPortfolioOutput, - DisassociateTrialComponentRequest, - DisassociateTrialComponentResponse, - DomainDetails, - EnableSagemakerServicecatalogPortfolioInput, - EnableSagemakerServicecatalogPortfolioOutput, - Endpoint, - EndpointConfigSummary, - EndpointSummary, - Experiment, + EdgeModel, + EdgeModelSummary, ExperimentConfig, ExperimentSource, - ExperimentSummary, - FeatureGroup, - FeatureGroupSummary, - Filter, FinalHyperParameterTuningJobObjectiveMetric, - FlowDefinitionSummary, - GetModelPackageGroupPolicyInput, - GetModelPackageGroupPolicyOutput, - GetSagemakerServicecatalogPortfolioStatusInput, - GetSagemakerServicecatalogPortfolioStatusOutput, - GetSearchSuggestionsRequest, - GetSearchSuggestionsResponse, - GitConfigForUpdate, - HumanTaskUiSummary, HyperParameterTrainingJobSummary, - HyperParameterTuningJobSummary, - Image, - ImageVersion, LabelCounters, - LabelCountersForWorkteam, - LabelingJobForWorkteamSummary, LabelingJobOutput, - LabelingJobSummary, - ListActionsRequest, - ListActionsResponse, - ListAlgorithmsInput, - ListAlgorithmsOutput, - ListAppImageConfigsRequest, - ListAppImageConfigsResponse, - ListAppsRequest, - ListAppsResponse, - ListArtifactsRequest, - ListArtifactsResponse, - ListAssociationsRequest, MemberDefinition, MetricData, ModelArtifacts, @@ -909,8 +1008,18 @@ import { ModelDigests, ModelPackageStatusDetails, ModelPackageStatusItem, + ModelQualityAppSpecification, + ModelQualityBaselineConfig, + ModelQualityJobInput, + MonitoringAppSpecification, + MonitoringBaselineConfig, MonitoringExecutionSummary, - MonitoringSchedule, + MonitoringInput, + MonitoringJobDefinition, + MonitoringScheduleConfig, + NetworkConfig, + NotebookInstanceAcceleratorType, + NotebookInstanceLifecycleHook, NotificationConfiguration, ObjectiveStatusCounters, OfflineStoreStatus, @@ -927,18 +1036,19 @@ import { ProcessingS3Output, ProcessingStoppingCondition, ProductionVariantSummary, - PropertyNameQuery, - PropertyNameSuggestion, + ProfilerConfig, + ProfilerRuleConfiguration, + ProfilerRuleEvaluationStatus, ProvisioningParameter, RedshiftDatasetDefinition, ResolvedAttributes, RetentionPolicy, + ScheduleConfig, SecondaryStatusTransition, ServiceCatalogProvisionedProductDetails, ServiceCatalogProvisioningDetails, SourceIpConfig, SubscribedWorkteam, - SuggestionQuery, TensorBoardOutputConfig, TrainingJobStatusCounters, TrialComponentArtifact, @@ -952,6 +1062,49 @@ import { Workteam, } from "../models/models_1"; import { + DisassociateTrialComponentRequest, + DisassociateTrialComponentResponse, + DomainDetails, + EdgeModelStat, + EdgePackagingJobSummary, + EnableSagemakerServicecatalogPortfolioInput, + EnableSagemakerServicecatalogPortfolioOutput, + Endpoint, + EndpointConfigSummary, + EndpointSummary, + Experiment, + ExperimentSummary, + FeatureGroup, + FeatureGroupSummary, + Filter, + FlowDefinitionSummary, + GetDeviceFleetReportRequest, + GetDeviceFleetReportResponse, + GetModelPackageGroupPolicyInput, + GetModelPackageGroupPolicyOutput, + GetSagemakerServicecatalogPortfolioStatusInput, + GetSagemakerServicecatalogPortfolioStatusOutput, + GetSearchSuggestionsRequest, + GetSearchSuggestionsResponse, + GitConfigForUpdate, + HumanTaskUiSummary, + HyperParameterTuningJobSummary, + Image, + ImageVersion, + LabelCountersForWorkteam, + LabelingJobForWorkteamSummary, + LabelingJobSummary, + ListActionsRequest, + ListActionsResponse, + ListAlgorithmsInput, + ListAlgorithmsOutput, + ListAppImageConfigsRequest, + ListAppImageConfigsResponse, + ListAppsRequest, + ListAppsResponse, + ListArtifactsRequest, + ListArtifactsResponse, + ListAssociationsRequest, ListAssociationsResponse, ListAutoMLJobsRequest, ListAutoMLJobsResponse, @@ -963,8 +1116,16 @@ import { ListCompilationJobsResponse, ListContextsRequest, ListContextsResponse, + ListDataQualityJobDefinitionsRequest, + ListDataQualityJobDefinitionsResponse, + ListDeviceFleetsRequest, + ListDeviceFleetsResponse, + ListDevicesRequest, + ListDevicesResponse, ListDomainsRequest, ListDomainsResponse, + ListEdgePackagingJobsRequest, + ListEdgePackagingJobsResponse, ListEndpointConfigsInput, ListEndpointConfigsOutput, ListEndpointsInput, @@ -987,10 +1148,16 @@ import { ListLabelingJobsForWorkteamResponse, ListLabelingJobsRequest, ListLabelingJobsResponse, + ListModelBiasJobDefinitionsRequest, + ListModelBiasJobDefinitionsResponse, + ListModelExplainabilityJobDefinitionsRequest, + ListModelExplainabilityJobDefinitionsResponse, ListModelPackageGroupsInput, ListModelPackageGroupsOutput, ListModelPackagesInput, ListModelPackagesOutput, + ListModelQualityJobDefinitionsRequest, + ListModelQualityJobDefinitionsResponse, ListModelsInput, ListModelsOutput, ListMonitoringExecutionsRequest, @@ -1039,6 +1206,8 @@ import { ModelPackageSummary, ModelStepMetadata, ModelSummary, + MonitoringJobDefinitionSummary, + MonitoringSchedule, MonitoringScheduleSummary, NestedFilters, NotebookInstanceLifecycleConfigSummary, @@ -1054,17 +1223,19 @@ import { ProcessingJob, ProcessingJobStepMetadata, ProcessingJobSummary, + ProfilerConfigForUpdate, ProjectSummary, + PropertyNameQuery, + PropertyNameSuggestion, PutModelPackageGroupPolicyInput, PutModelPackageGroupPolicyOutput, + RegisterDevicesRequest, RegisterModelStepMetadata, RenderUiTemplateRequest, RenderUiTemplateResponse, RenderableTask, RenderingError, - SearchExpression, SearchRecord, - SearchRequest, SearchResponse, StartMonitoringScheduleRequest, StartNotebookInstanceInput, @@ -1072,6 +1243,7 @@ import { StartPipelineExecutionResponse, StopAutoMLJobRequest, StopCompilationJobRequest, + StopEdgePackagingJobRequest, StopHyperParameterTuningJobRequest, StopLabelingJobRequest, StopMonitoringScheduleRequest, @@ -1081,6 +1253,7 @@ import { StopProcessingJobRequest, StopTrainingJobRequest, StopTransformJobRequest, + SuggestionQuery, TrainingJob, TrainingJobStepMetadata, TrainingJobSummary, @@ -1103,6 +1276,8 @@ import { UpdateCodeRepositoryOutput, UpdateContextRequest, UpdateContextResponse, + UpdateDeviceFleetRequest, + UpdateDevicesRequest, UpdateDomainRequest, UpdateDomainResponse, UpdateEndpointInput, @@ -1125,6 +1300,8 @@ import { UpdatePipelineExecutionResponse, UpdatePipelineRequest, UpdatePipelineResponse, + UpdateTrainingJobRequest, + UpdateTrainingJobResponse, UpdateTrialComponentRequest, UpdateTrialComponentResponse, UpdateTrialRequest, @@ -1138,6 +1315,7 @@ import { UserProfileDetails, VariantProperty, } from "../models/models_2"; +import { SearchExpression, SearchRequest } from "../models/models_3"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; import { LazyJsonString as __LazyJsonString, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { @@ -1305,6 +1483,32 @@ export const serializeAws_json1_1CreateContextCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateDataQualityJobDefinitionCommand = async ( + input: CreateDataQualityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateDataQualityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateDataQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateDeviceFleetCommand = async ( + input: CreateDeviceFleetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateDeviceFleet", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateDeviceFleetRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateDomainCommand = async ( input: CreateDomainCommandInput, context: __SerdeContext @@ -1318,6 +1522,19 @@ export const serializeAws_json1_1CreateDomainCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateEdgePackagingJobCommand = async ( + input: CreateEdgePackagingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateEdgePackagingJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateEdgePackagingJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateEndpointCommand = async ( input: CreateEndpointCommandInput, context: __SerdeContext @@ -1461,6 +1678,32 @@ export const serializeAws_json1_1CreateModelCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateModelBiasJobDefinitionCommand = async ( + input: CreateModelBiasJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateModelBiasJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateModelBiasJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand = async ( + input: CreateModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateModelExplainabilityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateModelExplainabilityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateModelPackageCommand = async ( input: CreateModelPackageCommandInput, context: __SerdeContext @@ -1487,6 +1730,19 @@ export const serializeAws_json1_1CreateModelPackageGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateModelQualityJobDefinitionCommand = async ( + input: CreateModelQualityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.CreateModelQualityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateModelQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateMonitoringScheduleCommand = async ( input: CreateMonitoringScheduleCommandInput, context: __SerdeContext @@ -1786,6 +2042,32 @@ export const serializeAws_json1_1DeleteContextCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteDataQualityJobDefinitionCommand = async ( + input: DeleteDataQualityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeleteDataQualityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteDataQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteDeviceFleetCommand = async ( + input: DeleteDeviceFleetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeleteDeviceFleet", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteDeviceFleetRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteDomainCommand = async ( input: DeleteDomainCommandInput, context: __SerdeContext @@ -1916,6 +2198,32 @@ export const serializeAws_json1_1DeleteModelCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteModelBiasJobDefinitionCommand = async ( + input: DeleteModelBiasJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeleteModelBiasJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteModelBiasJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand = async ( + input: DeleteModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeleteModelExplainabilityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteModelExplainabilityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteModelPackageCommand = async ( input: DeleteModelPackageCommandInput, context: __SerdeContext @@ -1955,6 +2263,19 @@ export const serializeAws_json1_1DeleteModelPackageGroupPolicyCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteModelQualityJobDefinitionCommand = async ( + input: DeleteModelQualityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeleteModelQualityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteModelQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteMonitoringScheduleCommand = async ( input: DeleteMonitoringScheduleCommandInput, context: __SerdeContext @@ -2098,6 +2419,19 @@ export const serializeAws_json1_1DeleteWorkteamCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeregisterDevicesCommand = async ( + input: DeregisterDevicesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DeregisterDevices", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeregisterDevicesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeActionCommand = async ( input: DescribeActionCommandInput, context: __SerdeContext @@ -2215,16 +2549,68 @@ export const serializeAws_json1_1DescribeContextCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; -export const serializeAws_json1_1DescribeDomainCommand = async ( - input: DescribeDomainCommandInput, +export const serializeAws_json1_1DescribeDataQualityJobDefinitionCommand = async ( + input: DescribeDataQualityJobDefinitionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const headers: __HeaderBag = { "Content-Type": "application/x-amz-json-1.1", - "X-Amz-Target": "SageMaker.DescribeDomain", + "X-Amz-Target": "SageMaker.DescribeDataQualityJobDefinition", }; let body: any; - body = JSON.stringify(serializeAws_json1_1DescribeDomainRequest(input, context)); + body = JSON.stringify(serializeAws_json1_1DescribeDataQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeDeviceCommand = async ( + input: DescribeDeviceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeDevice", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeDeviceRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeDeviceFleetCommand = async ( + input: DescribeDeviceFleetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeDeviceFleet", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeDeviceFleetRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeDomainCommand = async ( + input: DescribeDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeDomain", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeDomainRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeEdgePackagingJobCommand = async ( + input: DescribeEdgePackagingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeEdgePackagingJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeEdgePackagingJobRequest(input, context)); return buildHttpRpcRequest(context, headers, "/", undefined, body); }; @@ -2371,6 +2757,32 @@ export const serializeAws_json1_1DescribeModelCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeModelBiasJobDefinitionCommand = async ( + input: DescribeModelBiasJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeModelBiasJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeModelBiasJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand = async ( + input: DescribeModelExplainabilityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeModelExplainabilityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeModelExplainabilityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeModelPackageCommand = async ( input: DescribeModelPackageCommandInput, context: __SerdeContext @@ -2397,6 +2809,19 @@ export const serializeAws_json1_1DescribeModelPackageGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeModelQualityJobDefinitionCommand = async ( + input: DescribeModelQualityJobDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.DescribeModelQualityJobDefinition", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeModelQualityJobDefinitionRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeMonitoringScheduleCommand = async ( input: DescribeMonitoringScheduleCommandInput, context: __SerdeContext @@ -2644,6 +3069,19 @@ export const serializeAws_json1_1EnableSagemakerServicecatalogPortfolioCommand = return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1GetDeviceFleetReportCommand = async ( + input: GetDeviceFleetReportCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.GetDeviceFleetReport", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetDeviceFleetReportRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1GetModelPackageGroupPolicyCommand = async ( input: GetModelPackageGroupPolicyCommandInput, context: __SerdeContext @@ -2826,6 +3264,45 @@ export const serializeAws_json1_1ListContextsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListDataQualityJobDefinitionsCommand = async ( + input: ListDataQualityJobDefinitionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListDataQualityJobDefinitions", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListDataQualityJobDefinitionsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListDeviceFleetsCommand = async ( + input: ListDeviceFleetsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListDeviceFleets", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListDeviceFleetsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListDevicesCommand = async ( + input: ListDevicesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListDevices", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListDevicesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListDomainsCommand = async ( input: ListDomainsCommandInput, context: __SerdeContext @@ -2839,6 +3316,19 @@ export const serializeAws_json1_1ListDomainsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListEdgePackagingJobsCommand = async ( + input: ListEdgePackagingJobsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListEdgePackagingJobs", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListEdgePackagingJobsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListEndpointConfigsCommand = async ( input: ListEndpointConfigsCommandInput, context: __SerdeContext @@ -2982,6 +3472,32 @@ export const serializeAws_json1_1ListLabelingJobsForWorkteamCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListModelBiasJobDefinitionsCommand = async ( + input: ListModelBiasJobDefinitionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListModelBiasJobDefinitions", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListModelBiasJobDefinitionsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand = async ( + input: ListModelExplainabilityJobDefinitionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListModelExplainabilityJobDefinitions", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListModelExplainabilityJobDefinitionsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListModelPackageGroupsCommand = async ( input: ListModelPackageGroupsCommandInput, context: __SerdeContext @@ -3008,6 +3524,19 @@ export const serializeAws_json1_1ListModelPackagesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListModelQualityJobDefinitionsCommand = async ( + input: ListModelQualityJobDefinitionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.ListModelQualityJobDefinitions", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListModelQualityJobDefinitionsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListModelsCommand = async ( input: ListModelsCommandInput, context: __SerdeContext @@ -3294,6 +3823,19 @@ export const serializeAws_json1_1PutModelPackageGroupPolicyCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1RegisterDevicesCommand = async ( + input: RegisterDevicesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.RegisterDevices", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1RegisterDevicesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1RenderUiTemplateCommand = async ( input: RenderUiTemplateCommandInput, context: __SerdeContext @@ -3385,6 +3927,19 @@ export const serializeAws_json1_1StopCompilationJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1StopEdgePackagingJobCommand = async ( + input: StopEdgePackagingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.StopEdgePackagingJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1StopEdgePackagingJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1StopHyperParameterTuningJobCommand = async ( input: StopHyperParameterTuningJobCommandInput, context: __SerdeContext @@ -3554,6 +4109,32 @@ export const serializeAws_json1_1UpdateContextCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1UpdateDeviceFleetCommand = async ( + input: UpdateDeviceFleetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.UpdateDeviceFleet", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateDeviceFleetRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateDevicesCommand = async ( + input: UpdateDevicesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.UpdateDevices", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateDevicesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1UpdateDomainCommand = async ( input: UpdateDomainCommandInput, context: __SerdeContext @@ -3697,6 +4278,19 @@ export const serializeAws_json1_1UpdatePipelineExecutionCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1UpdateTrainingJobCommand = async ( + input: UpdateTrainingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "SageMaker.UpdateTrainingJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateTrainingJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1UpdateTrialCommand = async ( input: UpdateTrialCommandInput, context: __SerdeContext @@ -4438,27 +5032,27 @@ const deserializeAws_json1_1CreateContextCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateDomainCommand = async ( +export const deserializeAws_json1_1CreateDataQualityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateDomainCommandError(output, context); + return deserializeAws_json1_1CreateDataQualityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateDomainResponse(data, context); - const response: CreateDomainCommandOutput = { + contents = deserializeAws_json1_1CreateDataQualityJobDefinitionResponse(data, context); + const response: CreateDataQualityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateDomainCommandError = async ( +const deserializeAws_json1_1CreateDataQualityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4501,27 +5095,24 @@ const deserializeAws_json1_1CreateDomainCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateEndpointCommand = async ( +export const deserializeAws_json1_1CreateDeviceFleetCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateEndpointCommandError(output, context); + return deserializeAws_json1_1CreateDeviceFleetCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1CreateEndpointOutput(data, context); - const response: CreateEndpointCommandOutput = { + await collectBody(output.body, context); + const response: CreateDeviceFleetCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateEndpointCommandError = async ( +const deserializeAws_json1_1CreateDeviceFleetCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4531,6 +5122,14 @@ const deserializeAws_json1_1CreateEndpointCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ResourceLimitExceeded": case "com.amazonaws.sagemaker#ResourceLimitExceeded": response = { @@ -4556,27 +5155,27 @@ const deserializeAws_json1_1CreateEndpointCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateEndpointConfigCommand = async ( +export const deserializeAws_json1_1CreateDomainCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateEndpointConfigCommandError(output, context); + return deserializeAws_json1_1CreateDomainCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateEndpointConfigOutput(data, context); - const response: CreateEndpointConfigCommandOutput = { + contents = deserializeAws_json1_1CreateDomainResponse(data, context); + const response: CreateDomainCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateEndpointConfigCommandError = async ( +const deserializeAws_json1_1CreateDomainCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4586,6 +5185,14 @@ const deserializeAws_json1_1CreateEndpointConfigCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ResourceLimitExceeded": case "com.amazonaws.sagemaker#ResourceLimitExceeded": response = { @@ -4611,27 +5218,24 @@ const deserializeAws_json1_1CreateEndpointConfigCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateExperimentCommand = async ( +export const deserializeAws_json1_1CreateEdgePackagingJobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateExperimentCommandError(output, context); + return deserializeAws_json1_1CreateEdgePackagingJobCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1CreateExperimentResponse(data, context); - const response: CreateExperimentCommandOutput = { + await collectBody(output.body, context); + const response: CreateEdgePackagingJobCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateExperimentCommandError = async ( +const deserializeAws_json1_1CreateEdgePackagingJobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4666,27 +5270,192 @@ const deserializeAws_json1_1CreateExperimentCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateFeatureGroupCommand = async ( +export const deserializeAws_json1_1CreateEndpointCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateFeatureGroupCommandError(output, context); + return deserializeAws_json1_1CreateEndpointCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateFeatureGroupResponse(data, context); - const response: CreateFeatureGroupCommandOutput = { + contents = deserializeAws_json1_1CreateEndpointOutput(data, context); + const response: CreateEndpointCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateFeatureGroupCommandError = async ( +const deserializeAws_json1_1CreateEndpointCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreateEndpointConfigCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateEndpointConfigCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateEndpointConfigOutput(data, context); + const response: CreateEndpointConfigCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateEndpointConfigCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreateExperimentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateExperimentCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateExperimentResponse(data, context); + const response: CreateExperimentCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateExperimentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreateFeatureGroupCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateFeatureGroupCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateFeatureGroupResponse(data, context); + const response: CreateFeatureGroupCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateFeatureGroupCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5170,27 +5939,27 @@ const deserializeAws_json1_1CreateModelCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateModelPackageCommand = async ( +export const deserializeAws_json1_1CreateModelBiasJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateModelPackageCommandError(output, context); + return deserializeAws_json1_1CreateModelBiasJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateModelPackageOutput(data, context); - const response: CreateModelPackageCommandOutput = { + contents = deserializeAws_json1_1CreateModelBiasJobDefinitionResponse(data, context); + const response: CreateModelBiasJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateModelPackageCommandError = async ( +const deserializeAws_json1_1CreateModelBiasJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5200,10 +5969,10 @@ const deserializeAws_json1_1CreateModelPackageCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ConflictException": - case "com.amazonaws.sagemaker#ConflictException": + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": response = { - ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -5233,27 +6002,27 @@ const deserializeAws_json1_1CreateModelPackageCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateModelPackageGroupCommand = async ( +export const deserializeAws_json1_1CreateModelExplainabilityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateModelPackageGroupCommandError(output, context); + return deserializeAws_json1_1CreateModelExplainabilityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateModelPackageGroupOutput(data, context); - const response: CreateModelPackageGroupCommandOutput = { + contents = deserializeAws_json1_1CreateModelExplainabilityJobDefinitionResponse(data, context); + const response: CreateModelExplainabilityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateModelPackageGroupCommandError = async ( +const deserializeAws_json1_1CreateModelExplainabilityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5263,6 +6032,14 @@ const deserializeAws_json1_1CreateModelPackageGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ResourceLimitExceeded": case "com.amazonaws.sagemaker#ResourceLimitExceeded": response = { @@ -5288,27 +6065,27 @@ const deserializeAws_json1_1CreateModelPackageGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateMonitoringScheduleCommand = async ( +export const deserializeAws_json1_1CreateModelPackageCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateMonitoringScheduleCommandError(output, context); + return deserializeAws_json1_1CreateModelPackageCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateMonitoringScheduleResponse(data, context); - const response: CreateMonitoringScheduleCommandOutput = { + contents = deserializeAws_json1_1CreateModelPackageOutput(data, context); + const response: CreateModelPackageCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateMonitoringScheduleCommandError = async ( +const deserializeAws_json1_1CreateModelPackageCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5318,10 +6095,10 @@ const deserializeAws_json1_1CreateMonitoringScheduleCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceInUse": - case "com.amazonaws.sagemaker#ResourceInUse": + case "ConflictException": + case "com.amazonaws.sagemaker#ConflictException": response = { - ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ConflictExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -5351,27 +6128,27 @@ const deserializeAws_json1_1CreateMonitoringScheduleCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateNotebookInstanceCommand = async ( +export const deserializeAws_json1_1CreateModelPackageGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateNotebookInstanceCommandError(output, context); + return deserializeAws_json1_1CreateModelPackageGroupCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateNotebookInstanceOutput(data, context); - const response: CreateNotebookInstanceCommandOutput = { + contents = deserializeAws_json1_1CreateModelPackageGroupOutput(data, context); + const response: CreateModelPackageGroupCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateNotebookInstanceCommandError = async ( +const deserializeAws_json1_1CreateModelPackageGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5406,27 +6183,27 @@ const deserializeAws_json1_1CreateNotebookInstanceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommand = async ( +export const deserializeAws_json1_1CreateModelQualityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError(output, context); + return deserializeAws_json1_1CreateModelQualityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigOutput(data, context); - const response: CreateNotebookInstanceLifecycleConfigCommandOutput = { + contents = deserializeAws_json1_1CreateModelQualityJobDefinitionResponse(data, context); + const response: CreateModelQualityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError = async ( +const deserializeAws_json1_1CreateModelQualityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5436,6 +6213,14 @@ const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError = const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ResourceLimitExceeded": case "com.amazonaws.sagemaker#ResourceLimitExceeded": response = { @@ -5461,27 +6246,200 @@ const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError = return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1CreatePipelineCommand = async ( +export const deserializeAws_json1_1CreateMonitoringScheduleCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreatePipelineCommandError(output, context); + return deserializeAws_json1_1CreateMonitoringScheduleCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreatePipelineResponse(data, context); - const response: CreatePipelineCommandOutput = { + contents = deserializeAws_json1_1CreateMonitoringScheduleResponse(data, context); + const response: CreateMonitoringScheduleCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreatePipelineCommandError = async ( +const deserializeAws_json1_1CreateMonitoringScheduleCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreateNotebookInstanceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateNotebookInstanceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateNotebookInstanceOutput(data, context); + const response: CreateNotebookInstanceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateNotebookInstanceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigOutput(data, context); + const response: CreateNotebookInstanceLifecycleConfigCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateNotebookInstanceLifecycleConfigCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1CreatePipelineCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreatePipelineCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreatePipelineResponse(data, context); + const response: CreatePipelineCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreatePipelineCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -6605,24 +7563,24 @@ const deserializeAws_json1_1DeleteContextCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteDomainCommand = async ( +export const deserializeAws_json1_1DeleteDataQualityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteDomainCommandError(output, context); + return deserializeAws_json1_1DeleteDataQualityJobDefinitionCommandError(output, context); } await collectBody(output.body, context); - const response: DeleteDomainCommandOutput = { + const response: DeleteDataQualityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteDomainCommandError = async ( +const deserializeAws_json1_1DeleteDataQualityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -6632,14 +7590,6 @@ const deserializeAws_json1_1DeleteDomainCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceInUse": - case "com.amazonaws.sagemaker#ResourceInUse": - response = { - ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ResourceNotFound": case "com.amazonaws.sagemaker#ResourceNotFound": response = { @@ -6665,24 +7615,24 @@ const deserializeAws_json1_1DeleteDomainCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteEndpointCommand = async ( +export const deserializeAws_json1_1DeleteDeviceFleetCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteEndpointCommandError(output, context); + return deserializeAws_json1_1DeleteDeviceFleetCommandError(output, context); } await collectBody(output.body, context); - const response: DeleteEndpointCommandOutput = { + const response: DeleteDeviceFleetCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteEndpointCommandError = async ( +const deserializeAws_json1_1DeleteDeviceFleetCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -6692,6 +7642,14 @@ const deserializeAws_json1_1DeleteEndpointCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -6709,24 +7667,24 @@ const deserializeAws_json1_1DeleteEndpointCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteEndpointConfigCommand = async ( +export const deserializeAws_json1_1DeleteDomainCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteEndpointConfigCommandError(output, context); + return deserializeAws_json1_1DeleteDomainCommandError(output, context); } await collectBody(output.body, context); - const response: DeleteEndpointConfigCommandOutput = { + const response: DeleteDomainCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteEndpointConfigCommandError = async ( +const deserializeAws_json1_1DeleteDomainCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -6736,6 +7694,22 @@ const deserializeAws_json1_1DeleteEndpointConfigCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -6753,27 +7727,24 @@ const deserializeAws_json1_1DeleteEndpointConfigCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteExperimentCommand = async ( +export const deserializeAws_json1_1DeleteEndpointCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteExperimentCommandError(output, context); + return deserializeAws_json1_1DeleteEndpointCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DeleteExperimentResponse(data, context); - const response: DeleteExperimentCommandOutput = { + await collectBody(output.body, context); + const response: DeleteEndpointCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteExperimentCommandError = async ( +const deserializeAws_json1_1DeleteEndpointCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -6783,14 +7754,6 @@ const deserializeAws_json1_1DeleteExperimentCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceNotFound": - case "com.amazonaws.sagemaker#ResourceNotFound": - response = { - ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -6808,7 +7771,106 @@ const deserializeAws_json1_1DeleteExperimentCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DeleteFeatureGroupCommand = async ( +export const deserializeAws_json1_1DeleteEndpointConfigCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteEndpointConfigCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeleteEndpointConfigCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteEndpointConfigCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DeleteExperimentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteExperimentCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DeleteExperimentResponse(data, context); + const response: DeleteExperimentCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteExperimentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DeleteFeatureGroupCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise => { @@ -7148,6 +8210,110 @@ const deserializeAws_json1_1DeleteModelCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteModelBiasJobDefinitionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteModelBiasJobDefinitionCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeleteModelBiasJobDefinitionCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteModelBiasJobDefinitionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeleteModelExplainabilityJobDefinitionCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteModelExplainabilityJobDefinitionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteModelPackageCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7288,6 +8454,58 @@ const deserializeAws_json1_1DeleteModelPackageGroupPolicyCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteModelQualityJobDefinitionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteModelQualityJobDefinitionCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeleteModelQualityJobDefinitionCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteModelQualityJobDefinitionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteMonitoringScheduleCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7846,6 +9064,50 @@ const deserializeAws_json1_1DeleteWorkteamCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeregisterDevicesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeregisterDevicesCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeregisterDevicesCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeregisterDevicesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DescribeActionCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7948,27 +9210,247 @@ const deserializeAws_json1_1DescribeAlgorithmCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeAppCommand = async ( +export const deserializeAws_json1_1DescribeAppCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeAppCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeAppResponse(data, context); + const response: DescribeAppCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeAppCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeAppImageConfigCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeAppImageConfigCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeAppImageConfigResponse(data, context); + const response: DescribeAppImageConfigCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeAppImageConfigCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeArtifactCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeArtifactCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeArtifactResponse(data, context); + const response: DescribeArtifactCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeArtifactCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeAutoMLJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeAutoMLJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeAutoMLJobResponse(data, context); + const response: DescribeAutoMLJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeAutoMLJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeCodeRepositoryCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAppCommandError(output, context); + return deserializeAws_json1_1DescribeCodeRepositoryCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeAppResponse(data, context); - const response: DescribeAppCommandOutput = { + contents = deserializeAws_json1_1DescribeCodeRepositoryOutput(data, context); + const response: DescribeCodeRepositoryCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAppCommandError = async ( +const deserializeAws_json1_1DescribeCodeRepositoryCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -7978,14 +9460,6 @@ const deserializeAws_json1_1DescribeAppCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceNotFound": - case "com.amazonaws.sagemaker#ResourceNotFound": - response = { - ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -8003,27 +9477,27 @@ const deserializeAws_json1_1DescribeAppCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeAppImageConfigCommand = async ( +export const deserializeAws_json1_1DescribeCompilationJobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAppImageConfigCommandError(output, context); + return deserializeAws_json1_1DescribeCompilationJobCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeAppImageConfigResponse(data, context); - const response: DescribeAppImageConfigCommandOutput = { + contents = deserializeAws_json1_1DescribeCompilationJobResponse(data, context); + const response: DescribeCompilationJobCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAppImageConfigCommandError = async ( +const deserializeAws_json1_1DescribeCompilationJobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8058,27 +9532,27 @@ const deserializeAws_json1_1DescribeAppImageConfigCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeArtifactCommand = async ( +export const deserializeAws_json1_1DescribeContextCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeArtifactCommandError(output, context); + return deserializeAws_json1_1DescribeContextCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeArtifactResponse(data, context); - const response: DescribeArtifactCommandOutput = { + contents = deserializeAws_json1_1DescribeContextResponse(data, context); + const response: DescribeContextCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeArtifactCommandError = async ( +const deserializeAws_json1_1DescribeContextCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8113,27 +9587,27 @@ const deserializeAws_json1_1DescribeArtifactCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeAutoMLJobCommand = async ( +export const deserializeAws_json1_1DescribeDataQualityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAutoMLJobCommandError(output, context); + return deserializeAws_json1_1DescribeDataQualityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeAutoMLJobResponse(data, context); - const response: DescribeAutoMLJobCommandOutput = { + contents = deserializeAws_json1_1DescribeDataQualityJobDefinitionResponse(data, context); + const response: DescribeDataQualityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAutoMLJobCommandError = async ( +const deserializeAws_json1_1DescribeDataQualityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8168,27 +9642,27 @@ const deserializeAws_json1_1DescribeAutoMLJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeCodeRepositoryCommand = async ( +export const deserializeAws_json1_1DescribeDeviceCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeCodeRepositoryCommandError(output, context); + return deserializeAws_json1_1DescribeDeviceCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeCodeRepositoryOutput(data, context); - const response: DescribeCodeRepositoryCommandOutput = { + contents = deserializeAws_json1_1DescribeDeviceResponse(data, context); + const response: DescribeDeviceCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeCodeRepositoryCommandError = async ( +const deserializeAws_json1_1DescribeDeviceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8198,6 +9672,14 @@ const deserializeAws_json1_1DescribeCodeRepositoryCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -8215,27 +9697,27 @@ const deserializeAws_json1_1DescribeCodeRepositoryCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeCompilationJobCommand = async ( +export const deserializeAws_json1_1DescribeDeviceFleetCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeCompilationJobCommandError(output, context); + return deserializeAws_json1_1DescribeDeviceFleetCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeCompilationJobResponse(data, context); - const response: DescribeCompilationJobCommandOutput = { + contents = deserializeAws_json1_1DescribeDeviceFleetResponse(data, context); + const response: DescribeDeviceFleetCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeCompilationJobCommandError = async ( +const deserializeAws_json1_1DescribeDeviceFleetCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8270,27 +9752,27 @@ const deserializeAws_json1_1DescribeCompilationJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeContextCommand = async ( +export const deserializeAws_json1_1DescribeDomainCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeContextCommandError(output, context); + return deserializeAws_json1_1DescribeDomainCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeContextResponse(data, context); - const response: DescribeContextCommandOutput = { + contents = deserializeAws_json1_1DescribeDomainResponse(data, context); + const response: DescribeDomainCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeContextCommandError = async ( +const deserializeAws_json1_1DescribeDomainCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8325,27 +9807,27 @@ const deserializeAws_json1_1DescribeContextCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeDomainCommand = async ( +export const deserializeAws_json1_1DescribeEdgePackagingJobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeDomainCommandError(output, context); + return deserializeAws_json1_1DescribeEdgePackagingJobCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeDomainResponse(data, context); - const response: DescribeDomainCommandOutput = { + contents = deserializeAws_json1_1DescribeEdgePackagingJobResponse(data, context); + const response: DescribeEdgePackagingJobCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeDomainCommandError = async ( +const deserializeAws_json1_1DescribeEdgePackagingJobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8804,27 +10286,184 @@ const deserializeAws_json1_1DescribeImageCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeImageVersionCommand = async ( +export const deserializeAws_json1_1DescribeImageVersionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeImageVersionCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeImageVersionResponse(data, context); + const response: DescribeImageVersionCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeImageVersionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeLabelingJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeLabelingJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeLabelingJobResponse(data, context); + const response: DescribeLabelingJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeLabelingJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeModelCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeModelCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeModelOutput(data, context); + const response: DescribeModelCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeModelCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1DescribeModelBiasJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeImageVersionCommandError(output, context); + return deserializeAws_json1_1DescribeModelBiasJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeImageVersionResponse(data, context); - const response: DescribeImageVersionCommandOutput = { + contents = deserializeAws_json1_1DescribeModelBiasJobDefinitionResponse(data, context); + const response: DescribeModelBiasJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeImageVersionCommandError = async ( +const deserializeAws_json1_1DescribeModelBiasJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8859,27 +10498,27 @@ const deserializeAws_json1_1DescribeImageVersionCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeLabelingJobCommand = async ( +export const deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeLabelingJobCommandError(output, context); + return deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeLabelingJobResponse(data, context); - const response: DescribeLabelingJobCommandOutput = { + contents = deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionResponse(data, context); + const response: DescribeModelExplainabilityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeLabelingJobCommandError = async ( +const deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8914,27 +10553,27 @@ const deserializeAws_json1_1DescribeLabelingJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeModelCommand = async ( +export const deserializeAws_json1_1DescribeModelPackageCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeModelCommandError(output, context); + return deserializeAws_json1_1DescribeModelPackageCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeModelOutput(data, context); - const response: DescribeModelCommandOutput = { + contents = deserializeAws_json1_1DescribeModelPackageOutput(data, context); + const response: DescribeModelPackageCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeModelCommandError = async ( +const deserializeAws_json1_1DescribeModelPackageCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -8961,27 +10600,27 @@ const deserializeAws_json1_1DescribeModelCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeModelPackageCommand = async ( +export const deserializeAws_json1_1DescribeModelPackageGroupCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeModelPackageCommandError(output, context); + return deserializeAws_json1_1DescribeModelPackageGroupCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeModelPackageOutput(data, context); - const response: DescribeModelPackageCommandOutput = { + contents = deserializeAws_json1_1DescribeModelPackageGroupOutput(data, context); + const response: DescribeModelPackageGroupCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeModelPackageCommandError = async ( +const deserializeAws_json1_1DescribeModelPackageGroupCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -9008,27 +10647,27 @@ const deserializeAws_json1_1DescribeModelPackageCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1DescribeModelPackageGroupCommand = async ( +export const deserializeAws_json1_1DescribeModelQualityJobDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeModelPackageGroupCommandError(output, context); + return deserializeAws_json1_1DescribeModelQualityJobDefinitionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1DescribeModelPackageGroupOutput(data, context); - const response: DescribeModelPackageGroupCommandOutput = { + contents = deserializeAws_json1_1DescribeModelQualityJobDefinitionResponse(data, context); + const response: DescribeModelQualityJobDefinitionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeModelPackageGroupCommandError = async ( +const deserializeAws_json1_1DescribeModelQualityJobDefinitionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -9038,6 +10677,14 @@ const deserializeAws_json1_1DescribeModelPackageGroupCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -10036,6 +11683,53 @@ const deserializeAws_json1_1EnableSagemakerServicecatalogPortfolioCommandError = return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1GetDeviceFleetReportCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetDeviceFleetReportCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetDeviceFleetReportResponse(data, context); + const response: GetDeviceFleetReportCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetDeviceFleetReportCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1GetModelPackageGroupPolicyCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -10393,7 +12087,164 @@ export const deserializeAws_json1_1ListArtifactsCommand = async ( const deserializeAws_json1_1ListArtifactsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListAssociationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAssociationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAssociationsResponse(data, context); + const response: ListAssociationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAssociationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListAutoMLJobsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAutoMLJobsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAutoMLJobsResponse(data, context); + const response: ListAutoMLJobsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAutoMLJobsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListCandidatesForAutoMLJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCandidatesForAutoMLJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCandidatesForAutoMLJobResponse(data, context); + const response: ListCandidatesForAutoMLJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCandidatesForAutoMLJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10428,27 +12279,27 @@ const deserializeAws_json1_1ListArtifactsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListAssociationsCommand = async ( +export const deserializeAws_json1_1ListCodeRepositoriesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListAssociationsCommandError(output, context); + return deserializeAws_json1_1ListCodeRepositoriesCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListAssociationsResponse(data, context); - const response: ListAssociationsCommandOutput = { + contents = deserializeAws_json1_1ListCodeRepositoriesOutput(data, context); + const response: ListCodeRepositoriesCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListAssociationsCommandError = async ( +const deserializeAws_json1_1ListCodeRepositoriesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10458,14 +12309,6 @@ const deserializeAws_json1_1ListAssociationsCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceNotFound": - case "com.amazonaws.sagemaker#ResourceNotFound": - response = { - ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -10483,27 +12326,27 @@ const deserializeAws_json1_1ListAssociationsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListAutoMLJobsCommand = async ( +export const deserializeAws_json1_1ListCompilationJobsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListAutoMLJobsCommandError(output, context); + return deserializeAws_json1_1ListCompilationJobsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListAutoMLJobsResponse(data, context); - const response: ListAutoMLJobsCommandOutput = { + contents = deserializeAws_json1_1ListCompilationJobsResponse(data, context); + const response: ListCompilationJobsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListAutoMLJobsCommandError = async ( +const deserializeAws_json1_1ListCompilationJobsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10530,27 +12373,27 @@ const deserializeAws_json1_1ListAutoMLJobsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListCandidatesForAutoMLJobCommand = async ( +export const deserializeAws_json1_1ListContextsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListCandidatesForAutoMLJobCommandError(output, context); + return deserializeAws_json1_1ListContextsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListCandidatesForAutoMLJobResponse(data, context); - const response: ListCandidatesForAutoMLJobCommandOutput = { + contents = deserializeAws_json1_1ListContextsResponse(data, context); + const response: ListContextsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListCandidatesForAutoMLJobCommandError = async ( +const deserializeAws_json1_1ListContextsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10585,27 +12428,27 @@ const deserializeAws_json1_1ListCandidatesForAutoMLJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListCodeRepositoriesCommand = async ( +export const deserializeAws_json1_1ListDataQualityJobDefinitionsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListCodeRepositoriesCommandError(output, context); + return deserializeAws_json1_1ListDataQualityJobDefinitionsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListCodeRepositoriesOutput(data, context); - const response: ListCodeRepositoriesCommandOutput = { + contents = deserializeAws_json1_1ListDataQualityJobDefinitionsResponse(data, context); + const response: ListDataQualityJobDefinitionsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListCodeRepositoriesCommandError = async ( +const deserializeAws_json1_1ListDataQualityJobDefinitionsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10632,27 +12475,27 @@ const deserializeAws_json1_1ListCodeRepositoriesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListCompilationJobsCommand = async ( +export const deserializeAws_json1_1ListDeviceFleetsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListCompilationJobsCommandError(output, context); + return deserializeAws_json1_1ListDeviceFleetsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListCompilationJobsResponse(data, context); - const response: ListCompilationJobsCommandOutput = { + contents = deserializeAws_json1_1ListDeviceFleetsResponse(data, context); + const response: ListDeviceFleetsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListCompilationJobsCommandError = async ( +const deserializeAws_json1_1ListDeviceFleetsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10679,27 +12522,27 @@ const deserializeAws_json1_1ListCompilationJobsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListContextsCommand = async ( +export const deserializeAws_json1_1ListDevicesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListContextsCommandError(output, context); + return deserializeAws_json1_1ListDevicesCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListContextsResponse(data, context); - const response: ListContextsCommandOutput = { + contents = deserializeAws_json1_1ListDevicesResponse(data, context); + const response: ListDevicesCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListContextsCommandError = async ( +const deserializeAws_json1_1ListDevicesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -10709,14 +12552,6 @@ const deserializeAws_json1_1ListContextsCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceNotFound": - case "com.amazonaws.sagemaker#ResourceNotFound": - response = { - ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -10781,6 +12616,53 @@ const deserializeAws_json1_1ListDomainsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1ListEdgePackagingJobsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListEdgePackagingJobsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListEdgePackagingJobsResponse(data, context); + const response: ListEdgePackagingJobsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListEdgePackagingJobsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1ListEndpointConfigsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -11276,10 +13158,159 @@ export const deserializeAws_json1_1ListLabelingJobsForWorkteamCommand = async ( return Promise.resolve(response); }; -const deserializeAws_json1_1ListLabelingJobsForWorkteamCommandError = async ( +const deserializeAws_json1_1ListLabelingJobsForWorkteamCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListModelBiasJobDefinitionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListModelBiasJobDefinitionsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListModelBiasJobDefinitionsResponse(data, context); + const response: ListModelBiasJobDefinitionsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListModelBiasJobDefinitionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListModelExplainabilityJobDefinitionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListModelExplainabilityJobDefinitionsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListModelExplainabilityJobDefinitionsResponse(data, context); + const response: ListModelExplainabilityJobDefinitionsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListModelExplainabilityJobDefinitionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1ListModelPackageGroupsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListModelPackageGroupsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListModelPackageGroupsOutput(data, context); + const response: ListModelPackageGroupsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListModelPackageGroupsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -11289,14 +13320,6 @@ const deserializeAws_json1_1ListLabelingJobsForWorkteamCommandError = async ( const errorTypeParts: String = parsedOutput.body["__type"].split("#"); errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; switch (errorCode) { - case "ResourceNotFound": - case "com.amazonaws.sagemaker#ResourceNotFound": - response = { - ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -11314,27 +13337,27 @@ const deserializeAws_json1_1ListLabelingJobsForWorkteamCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListModelPackageGroupsCommand = async ( +export const deserializeAws_json1_1ListModelPackagesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListModelPackageGroupsCommandError(output, context); + return deserializeAws_json1_1ListModelPackagesCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListModelPackageGroupsOutput(data, context); - const response: ListModelPackageGroupsCommandOutput = { + contents = deserializeAws_json1_1ListModelPackagesOutput(data, context); + const response: ListModelPackagesCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListModelPackageGroupsCommandError = async ( +const deserializeAws_json1_1ListModelPackagesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -11361,27 +13384,27 @@ const deserializeAws_json1_1ListModelPackageGroupsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1ListModelPackagesCommand = async ( +export const deserializeAws_json1_1ListModelQualityJobDefinitionsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListModelPackagesCommandError(output, context); + return deserializeAws_json1_1ListModelQualityJobDefinitionsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListModelPackagesOutput(data, context); - const response: ListModelPackagesCommandOutput = { + contents = deserializeAws_json1_1ListModelQualityJobDefinitionsResponse(data, context); + const response: ListModelQualityJobDefinitionsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListModelPackagesCommandError = async ( +const deserializeAws_json1_1ListModelQualityJobDefinitionsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -12490,6 +14513,58 @@ const deserializeAws_json1_1PutModelPackageGroupPolicyCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1RegisterDevicesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1RegisterDevicesCommandError(output, context); + } + await collectBody(output.body, context); + const response: RegisterDevicesCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1RegisterDevicesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceLimitExceeded": + case "com.amazonaws.sagemaker#ResourceLimitExceeded": + response = { + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1RenderUiTemplateCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -12863,6 +14938,50 @@ const deserializeAws_json1_1StopCompilationJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1StopEdgePackagingJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StopEdgePackagingJobCommandError(output, context); + } + await collectBody(output.body, context); + const response: StopEdgePackagingJobCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StopEdgePackagingJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1StopHyperParameterTuningJobCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -13565,6 +15684,102 @@ const deserializeAws_json1_1UpdateContextCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1UpdateDeviceFleetCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateDeviceFleetCommandError(output, context); + } + await collectBody(output.body, context); + const response: UpdateDeviceFleetCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateDeviceFleetCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceInUse": + case "com.amazonaws.sagemaker#ResourceInUse": + response = { + ...(await deserializeAws_json1_1ResourceInUseResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateDevicesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateDevicesCommandError(output, context); + } + await collectBody(output.body, context); + const response: UpdateDevicesCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateDevicesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1UpdateDomainCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -14070,7 +16285,62 @@ const deserializeAws_json1_1UpdateNotebookInstanceLifecycleConfigCommandError = case "ResourceLimitExceeded": case "com.amazonaws.sagemaker#ResourceLimitExceeded": response = { - ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ResourceLimitExceededResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdatePipelineCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdatePipelineCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdatePipelineResponse(data, context); + const response: UpdatePipelineCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdatePipelineCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "ResourceNotFound": + case "com.amazonaws.sagemaker#ResourceNotFound": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -14092,27 +16362,27 @@ const deserializeAws_json1_1UpdateNotebookInstanceLifecycleConfigCommandError = return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdatePipelineCommand = async ( +export const deserializeAws_json1_1UpdatePipelineExecutionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdatePipelineCommandError(output, context); + return deserializeAws_json1_1UpdatePipelineExecutionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdatePipelineResponse(data, context); - const response: UpdatePipelineCommandOutput = { + contents = deserializeAws_json1_1UpdatePipelineExecutionResponse(data, context); + const response: UpdatePipelineExecutionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdatePipelineCommandError = async ( +const deserializeAws_json1_1UpdatePipelineExecutionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -14147,27 +16417,27 @@ const deserializeAws_json1_1UpdatePipelineCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdatePipelineExecutionCommand = async ( +export const deserializeAws_json1_1UpdateTrainingJobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdatePipelineExecutionCommandError(output, context); + return deserializeAws_json1_1UpdateTrainingJobCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdatePipelineExecutionResponse(data, context); - const response: UpdatePipelineExecutionCommandOutput = { + contents = deserializeAws_json1_1UpdateTrainingJobResponse(data, context); + const response: UpdateTrainingJobCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdatePipelineExecutionCommandError = async ( +const deserializeAws_json1_1UpdateTrainingJobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -15189,6 +17459,59 @@ const serializeAws_json1_1CreateContextRequest = (input: CreateContextRequest, c }; }; +const serializeAws_json1_1CreateDataQualityJobDefinitionRequest = ( + input: CreateDataQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.DataQualityAppSpecification !== undefined && { + DataQualityAppSpecification: serializeAws_json1_1DataQualityAppSpecification( + input.DataQualityAppSpecification, + context + ), + }), + ...(input.DataQualityBaselineConfig !== undefined && { + DataQualityBaselineConfig: serializeAws_json1_1DataQualityBaselineConfig( + input.DataQualityBaselineConfig, + context + ), + }), + ...(input.DataQualityJobInput !== undefined && { + DataQualityJobInput: serializeAws_json1_1DataQualityJobInput(input.DataQualityJobInput, context), + }), + ...(input.DataQualityJobOutputConfig !== undefined && { + DataQualityJobOutputConfig: serializeAws_json1_1MonitoringOutputConfig(input.DataQualityJobOutputConfig, context), + }), + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + ...(input.JobResources !== undefined && { + JobResources: serializeAws_json1_1MonitoringResources(input.JobResources, context), + }), + ...(input.NetworkConfig !== undefined && { + NetworkConfig: serializeAws_json1_1MonitoringNetworkConfig(input.NetworkConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.StoppingCondition !== undefined && { + StoppingCondition: serializeAws_json1_1MonitoringStoppingCondition(input.StoppingCondition, context), + }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + +const serializeAws_json1_1CreateDeviceFleetRequest = ( + input: CreateDeviceFleetRequest, + context: __SerdeContext +): any => { + return { + ...(input.Description !== undefined && { Description: input.Description }), + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.OutputConfig !== undefined && { + OutputConfig: serializeAws_json1_1EdgeOutputConfig(input.OutputConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateDomainRequest = (input: CreateDomainRequest, context: __SerdeContext): any => { return { ...(input.AppNetworkAccessType !== undefined && { AppNetworkAccessType: input.AppNetworkAccessType }), @@ -15207,6 +17530,24 @@ const serializeAws_json1_1CreateDomainRequest = (input: CreateDomainRequest, con }; }; +const serializeAws_json1_1CreateEdgePackagingJobRequest = ( + input: CreateEdgePackagingJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.CompilationJobName !== undefined && { CompilationJobName: input.CompilationJobName }), + ...(input.EdgePackagingJobName !== undefined && { EdgePackagingJobName: input.EdgePackagingJobName }), + ...(input.ModelName !== undefined && { ModelName: input.ModelName }), + ...(input.ModelVersion !== undefined && { ModelVersion: input.ModelVersion }), + ...(input.OutputConfig !== undefined && { + OutputConfig: serializeAws_json1_1EdgeOutputConfig(input.OutputConfig, context), + }), + ...(input.ResourceKey !== undefined && { ResourceKey: input.ResourceKey }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateEndpointConfigInput = ( input: CreateEndpointConfigInput, context: __SerdeContext @@ -15388,6 +17729,85 @@ const serializeAws_json1_1CreateLabelingJobRequest = ( }; }; +const serializeAws_json1_1CreateModelBiasJobDefinitionRequest = ( + input: CreateModelBiasJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + ...(input.JobResources !== undefined && { + JobResources: serializeAws_json1_1MonitoringResources(input.JobResources, context), + }), + ...(input.ModelBiasAppSpecification !== undefined && { + ModelBiasAppSpecification: serializeAws_json1_1ModelBiasAppSpecification( + input.ModelBiasAppSpecification, + context + ), + }), + ...(input.ModelBiasBaselineConfig !== undefined && { + ModelBiasBaselineConfig: serializeAws_json1_1ModelBiasBaselineConfig(input.ModelBiasBaselineConfig, context), + }), + ...(input.ModelBiasJobInput !== undefined && { + ModelBiasJobInput: serializeAws_json1_1ModelBiasJobInput(input.ModelBiasJobInput, context), + }), + ...(input.ModelBiasJobOutputConfig !== undefined && { + ModelBiasJobOutputConfig: serializeAws_json1_1MonitoringOutputConfig(input.ModelBiasJobOutputConfig, context), + }), + ...(input.NetworkConfig !== undefined && { + NetworkConfig: serializeAws_json1_1MonitoringNetworkConfig(input.NetworkConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.StoppingCondition !== undefined && { + StoppingCondition: serializeAws_json1_1MonitoringStoppingCondition(input.StoppingCondition, context), + }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + +const serializeAws_json1_1CreateModelExplainabilityJobDefinitionRequest = ( + input: CreateModelExplainabilityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + ...(input.JobResources !== undefined && { + JobResources: serializeAws_json1_1MonitoringResources(input.JobResources, context), + }), + ...(input.ModelExplainabilityAppSpecification !== undefined && { + ModelExplainabilityAppSpecification: serializeAws_json1_1ModelExplainabilityAppSpecification( + input.ModelExplainabilityAppSpecification, + context + ), + }), + ...(input.ModelExplainabilityBaselineConfig !== undefined && { + ModelExplainabilityBaselineConfig: serializeAws_json1_1ModelExplainabilityBaselineConfig( + input.ModelExplainabilityBaselineConfig, + context + ), + }), + ...(input.ModelExplainabilityJobInput !== undefined && { + ModelExplainabilityJobInput: serializeAws_json1_1ModelExplainabilityJobInput( + input.ModelExplainabilityJobInput, + context + ), + }), + ...(input.ModelExplainabilityJobOutputConfig !== undefined && { + ModelExplainabilityJobOutputConfig: serializeAws_json1_1MonitoringOutputConfig( + input.ModelExplainabilityJobOutputConfig, + context + ), + }), + ...(input.NetworkConfig !== undefined && { + NetworkConfig: serializeAws_json1_1MonitoringNetworkConfig(input.NetworkConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.StoppingCondition !== undefined && { + StoppingCondition: serializeAws_json1_1MonitoringStoppingCondition(input.StoppingCondition, context), + }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateModelInput = (input: CreateModelInput, context: __SerdeContext): any => { return { ...(input.Containers !== undefined && { @@ -15450,6 +17870,47 @@ const serializeAws_json1_1CreateModelPackageInput = (input: CreateModelPackageIn }; }; +const serializeAws_json1_1CreateModelQualityJobDefinitionRequest = ( + input: CreateModelQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + ...(input.JobResources !== undefined && { + JobResources: serializeAws_json1_1MonitoringResources(input.JobResources, context), + }), + ...(input.ModelQualityAppSpecification !== undefined && { + ModelQualityAppSpecification: serializeAws_json1_1ModelQualityAppSpecification( + input.ModelQualityAppSpecification, + context + ), + }), + ...(input.ModelQualityBaselineConfig !== undefined && { + ModelQualityBaselineConfig: serializeAws_json1_1ModelQualityBaselineConfig( + input.ModelQualityBaselineConfig, + context + ), + }), + ...(input.ModelQualityJobInput !== undefined && { + ModelQualityJobInput: serializeAws_json1_1ModelQualityJobInput(input.ModelQualityJobInput, context), + }), + ...(input.ModelQualityJobOutputConfig !== undefined && { + ModelQualityJobOutputConfig: serializeAws_json1_1MonitoringOutputConfig( + input.ModelQualityJobOutputConfig, + context + ), + }), + ...(input.NetworkConfig !== undefined && { + NetworkConfig: serializeAws_json1_1MonitoringNetworkConfig(input.NetworkConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + ...(input.StoppingCondition !== undefined && { + StoppingCondition: serializeAws_json1_1MonitoringStoppingCondition(input.StoppingCondition, context), + }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateMonitoringScheduleRequest = ( input: CreateMonitoringScheduleRequest, context: __SerdeContext @@ -15633,6 +18094,15 @@ const serializeAws_json1_1CreateTrainingJobRequest = ( ...(input.OutputDataConfig !== undefined && { OutputDataConfig: serializeAws_json1_1OutputDataConfig(input.OutputDataConfig, context), }), + ...(input.ProfilerConfig !== undefined && { + ProfilerConfig: serializeAws_json1_1ProfilerConfig(input.ProfilerConfig, context), + }), + ...(input.ProfilerRuleConfigurations !== undefined && { + ProfilerRuleConfigurations: serializeAws_json1_1ProfilerRuleConfigurations( + input.ProfilerRuleConfigurations, + context + ), + }), ...(input.ResourceConfig !== undefined && { ResourceConfig: serializeAws_json1_1ResourceConfig(input.ResourceConfig, context), }), @@ -15821,6 +18291,53 @@ const serializeAws_json1_1DataProcessing = (input: DataProcessing, context: __Se }; }; +const serializeAws_json1_1DataQualityAppSpecification = ( + input: DataQualityAppSpecification, + context: __SerdeContext +): any => { + return { + ...(input.ContainerArguments !== undefined && { + ContainerArguments: serializeAws_json1_1MonitoringContainerArguments(input.ContainerArguments, context), + }), + ...(input.ContainerEntrypoint !== undefined && { + ContainerEntrypoint: serializeAws_json1_1ContainerEntrypoint(input.ContainerEntrypoint, context), + }), + ...(input.Environment !== undefined && { + Environment: serializeAws_json1_1MonitoringEnvironmentMap(input.Environment, context), + }), + ...(input.ImageUri !== undefined && { ImageUri: input.ImageUri }), + ...(input.PostAnalyticsProcessorSourceUri !== undefined && { + PostAnalyticsProcessorSourceUri: input.PostAnalyticsProcessorSourceUri, + }), + ...(input.RecordPreprocessorSourceUri !== undefined && { + RecordPreprocessorSourceUri: input.RecordPreprocessorSourceUri, + }), + }; +}; + +const serializeAws_json1_1DataQualityBaselineConfig = ( + input: DataQualityBaselineConfig, + context: __SerdeContext +): any => { + return { + ...(input.BaseliningJobName !== undefined && { BaseliningJobName: input.BaseliningJobName }), + ...(input.ConstraintsResource !== undefined && { + ConstraintsResource: serializeAws_json1_1MonitoringConstraintsResource(input.ConstraintsResource, context), + }), + ...(input.StatisticsResource !== undefined && { + StatisticsResource: serializeAws_json1_1MonitoringStatisticsResource(input.StatisticsResource, context), + }), + }; +}; + +const serializeAws_json1_1DataQualityJobInput = (input: DataQualityJobInput, context: __SerdeContext): any => { + return { + ...(input.EndpointInput !== undefined && { + EndpointInput: serializeAws_json1_1EndpointInput(input.EndpointInput, context), + }), + }; +}; + const serializeAws_json1_1DatasetDefinition = (input: DatasetDefinition, context: __SerdeContext): any => { return { ...(input.AthenaDatasetDefinition !== undefined && { @@ -15942,6 +18459,24 @@ const serializeAws_json1_1DeleteContextRequest = (input: DeleteContextRequest, c }; }; +const serializeAws_json1_1DeleteDataQualityJobDefinitionRequest = ( + input: DeleteDataQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + +const serializeAws_json1_1DeleteDeviceFleetRequest = ( + input: DeleteDeviceFleetRequest, + context: __SerdeContext +): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + }; +}; + const serializeAws_json1_1DeleteDomainRequest = (input: DeleteDomainRequest, context: __SerdeContext): any => { return { ...(input.DomainId !== undefined && { DomainId: input.DomainId }), @@ -16015,6 +18550,24 @@ const serializeAws_json1_1DeleteImageVersionRequest = ( }; }; +const serializeAws_json1_1DeleteModelBiasJobDefinitionRequest = ( + input: DeleteModelBiasJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + +const serializeAws_json1_1DeleteModelExplainabilityJobDefinitionRequest = ( + input: DeleteModelExplainabilityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + const serializeAws_json1_1DeleteModelInput = (input: DeleteModelInput, context: __SerdeContext): any => { return { ...(input.ModelName !== undefined && { ModelName: input.ModelName }), @@ -16045,6 +18598,15 @@ const serializeAws_json1_1DeleteModelPackageInput = (input: DeleteModelPackageIn }; }; +const serializeAws_json1_1DeleteModelQualityJobDefinitionRequest = ( + input: DeleteModelQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + const serializeAws_json1_1DeleteMonitoringScheduleRequest = ( input: DeleteMonitoringScheduleRequest, context: __SerdeContext @@ -16142,6 +18704,18 @@ const serializeAws_json1_1DeploymentConfig = (input: DeploymentConfig, context: }; }; +const serializeAws_json1_1DeregisterDevicesRequest = ( + input: DeregisterDevicesRequest, + context: __SerdeContext +): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.DeviceNames !== undefined && { + DeviceNames: serializeAws_json1_1DeviceNames(input.DeviceNames, context), + }), + }; +}; + const serializeAws_json1_1DescribeActionRequest = (input: DescribeActionRequest, context: __SerdeContext): any => { return { ...(input.ActionName !== undefined && { ActionName: input.ActionName }), @@ -16211,12 +18785,47 @@ const serializeAws_json1_1DescribeContextRequest = (input: DescribeContextReques }; }; +const serializeAws_json1_1DescribeDataQualityJobDefinitionRequest = ( + input: DescribeDataQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + +const serializeAws_json1_1DescribeDeviceFleetRequest = ( + input: DescribeDeviceFleetRequest, + context: __SerdeContext +): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + }; +}; + +const serializeAws_json1_1DescribeDeviceRequest = (input: DescribeDeviceRequest, context: __SerdeContext): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.DeviceName !== undefined && { DeviceName: input.DeviceName }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1DescribeDomainRequest = (input: DescribeDomainRequest, context: __SerdeContext): any => { return { ...(input.DomainId !== undefined && { DomainId: input.DomainId }), }; }; +const serializeAws_json1_1DescribeEdgePackagingJobRequest = ( + input: DescribeEdgePackagingJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.EdgePackagingJobName !== undefined && { EdgePackagingJobName: input.EdgePackagingJobName }), + }; +}; + const serializeAws_json1_1DescribeEndpointConfigInput = ( input: DescribeEndpointConfigInput, context: __SerdeContext @@ -16305,6 +18914,24 @@ const serializeAws_json1_1DescribeLabelingJobRequest = ( }; }; +const serializeAws_json1_1DescribeModelBiasJobDefinitionRequest = ( + input: DescribeModelBiasJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + +const serializeAws_json1_1DescribeModelExplainabilityJobDefinitionRequest = ( + input: DescribeModelExplainabilityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + const serializeAws_json1_1DescribeModelInput = (input: DescribeModelInput, context: __SerdeContext): any => { return { ...(input.ModelName !== undefined && { ModelName: input.ModelName }), @@ -16329,6 +18956,15 @@ const serializeAws_json1_1DescribeModelPackageInput = ( }; }; +const serializeAws_json1_1DescribeModelQualityJobDefinitionRequest = ( + input: DescribeModelQualityJobDefinitionRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobDefinitionName !== undefined && { JobDefinitionName: input.JobDefinitionName }), + }; +}; + const serializeAws_json1_1DescribeMonitoringScheduleRequest = ( input: DescribeMonitoringScheduleRequest, context: __SerdeContext @@ -16482,6 +19118,22 @@ const serializeAws_json1_1DesiredWeightAndCapacityList = ( return input.map((entry) => serializeAws_json1_1DesiredWeightAndCapacity(entry, context)); }; +const serializeAws_json1_1Device = (input: Device, context: __SerdeContext): any => { + return { + ...(input.Description !== undefined && { Description: input.Description }), + ...(input.DeviceName !== undefined && { DeviceName: input.DeviceName }), + ...(input.IotThingName !== undefined && { IotThingName: input.IotThingName }), + }; +}; + +const serializeAws_json1_1DeviceNames = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1Devices = (input: Device[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1Device(entry, context)); +}; + const serializeAws_json1_1DisableSagemakerServicecatalogPortfolioInput = ( input: DisableSagemakerServicecatalogPortfolioInput, context: __SerdeContext @@ -16499,6 +19151,13 @@ const serializeAws_json1_1DisassociateTrialComponentRequest = ( }; }; +const serializeAws_json1_1EdgeOutputConfig = (input: EdgeOutputConfig, context: __SerdeContext): any => { + return { + ...(input.KmsKeyId !== undefined && { KmsKeyId: input.KmsKeyId }), + ...(input.S3OutputLocation !== undefined && { S3OutputLocation: input.S3OutputLocation }), + }; +}; + const serializeAws_json1_1EnableSagemakerServicecatalogPortfolioInput = ( input: EnableSagemakerServicecatalogPortfolioInput, context: __SerdeContext @@ -16508,10 +19167,18 @@ const serializeAws_json1_1EnableSagemakerServicecatalogPortfolioInput = ( const serializeAws_json1_1EndpointInput = (input: EndpointInput, context: __SerdeContext): any => { return { + ...(input.EndTimeOffset !== undefined && { EndTimeOffset: input.EndTimeOffset }), ...(input.EndpointName !== undefined && { EndpointName: input.EndpointName }), + ...(input.FeaturesAttribute !== undefined && { FeaturesAttribute: input.FeaturesAttribute }), + ...(input.InferenceAttribute !== undefined && { InferenceAttribute: input.InferenceAttribute }), ...(input.LocalPath !== undefined && { LocalPath: input.LocalPath }), + ...(input.ProbabilityAttribute !== undefined && { ProbabilityAttribute: input.ProbabilityAttribute }), + ...(input.ProbabilityThresholdAttribute !== undefined && { + ProbabilityThresholdAttribute: input.ProbabilityThresholdAttribute, + }), ...(input.S3DataDistributionType !== undefined && { S3DataDistributionType: input.S3DataDistributionType }), ...(input.S3InputMode !== undefined && { S3InputMode: input.S3InputMode }), + ...(input.StartTimeOffset !== undefined && { StartTimeOffset: input.StartTimeOffset }), }; }; @@ -16595,6 +19262,15 @@ const serializeAws_json1_1FlowDefinitionTaskKeywords = (input: string[], context return input.map((entry) => entry); }; +const serializeAws_json1_1GetDeviceFleetReportRequest = ( + input: GetDeviceFleetReportRequest, + context: __SerdeContext +): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + }; +}; + const serializeAws_json1_1GetModelPackageGroupPolicyInput = ( input: GetModelPackageGroupPolicyInput, context: __SerdeContext @@ -17334,6 +20010,60 @@ const serializeAws_json1_1ListContextsRequest = (input: ListContextsRequest, con }; }; +const serializeAws_json1_1ListDataQualityJobDefinitionsRequest = ( + input: ListDataQualityJobDefinitionsRequest, + context: __SerdeContext +): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.EndpointName !== undefined && { EndpointName: input.EndpointName }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + }; +}; + +const serializeAws_json1_1ListDeviceFleetsRequest = (input: ListDeviceFleetsRequest, context: __SerdeContext): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.LastModifiedTimeAfter !== undefined && { + LastModifiedTimeAfter: Math.round(input.LastModifiedTimeAfter.getTime() / 1000), + }), + ...(input.LastModifiedTimeBefore !== undefined && { + LastModifiedTimeBefore: Math.round(input.LastModifiedTimeBefore.getTime() / 1000), + }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + }; +}; + +const serializeAws_json1_1ListDevicesRequest = (input: ListDevicesRequest, context: __SerdeContext): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.LatestHeartbeatAfter !== undefined && { + LatestHeartbeatAfter: Math.round(input.LatestHeartbeatAfter.getTime() / 1000), + }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.ModelName !== undefined && { ModelName: input.ModelName }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListDomainsRequest = (input: ListDomainsRequest, context: __SerdeContext): any => { return { ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), @@ -17341,6 +20071,33 @@ const serializeAws_json1_1ListDomainsRequest = (input: ListDomainsRequest, conte }; }; +const serializeAws_json1_1ListEdgePackagingJobsRequest = ( + input: ListEdgePackagingJobsRequest, + context: __SerdeContext +): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.LastModifiedTimeAfter !== undefined && { + LastModifiedTimeAfter: Math.round(input.LastModifiedTimeAfter.getTime() / 1000), + }), + ...(input.LastModifiedTimeBefore !== undefined && { + LastModifiedTimeBefore: Math.round(input.LastModifiedTimeBefore.getTime() / 1000), + }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.ModelNameContains !== undefined && { ModelNameContains: input.ModelNameContains }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + ...(input.StatusEquals !== undefined && { StatusEquals: input.StatusEquals }), + }; +}; + const serializeAws_json1_1ListEndpointConfigsInput = ( input: ListEndpointConfigsInput, context: __SerdeContext @@ -17566,6 +20323,46 @@ const serializeAws_json1_1ListLineageEntityParameterKey = (input: string[], cont return input.map((entry) => entry); }; +const serializeAws_json1_1ListModelBiasJobDefinitionsRequest = ( + input: ListModelBiasJobDefinitionsRequest, + context: __SerdeContext +): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.EndpointName !== undefined && { EndpointName: input.EndpointName }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + }; +}; + +const serializeAws_json1_1ListModelExplainabilityJobDefinitionsRequest = ( + input: ListModelExplainabilityJobDefinitionsRequest, + context: __SerdeContext +): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.EndpointName !== undefined && { EndpointName: input.EndpointName }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + }; +}; + const serializeAws_json1_1ListModelPackageGroupsInput = ( input: ListModelPackageGroupsInput, context: __SerdeContext @@ -17604,6 +20401,26 @@ const serializeAws_json1_1ListModelPackagesInput = (input: ListModelPackagesInpu }; }; +const serializeAws_json1_1ListModelQualityJobDefinitionsRequest = ( + input: ListModelQualityJobDefinitionsRequest, + context: __SerdeContext +): any => { + return { + ...(input.CreationTimeAfter !== undefined && { + CreationTimeAfter: Math.round(input.CreationTimeAfter.getTime() / 1000), + }), + ...(input.CreationTimeBefore !== undefined && { + CreationTimeBefore: Math.round(input.CreationTimeBefore.getTime() / 1000), + }), + ...(input.EndpointName !== undefined && { EndpointName: input.EndpointName }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NameContains !== undefined && { NameContains: input.NameContains }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.SortBy !== undefined && { SortBy: input.SortBy }), + ...(input.SortOrder !== undefined && { SortOrder: input.SortOrder }), + }; +}; + const serializeAws_json1_1ListModelsInput = (input: ListModelsInput, context: __SerdeContext): any => { return { ...(input.CreationTimeAfter !== undefined && { @@ -17639,7 +20456,11 @@ const serializeAws_json1_1ListMonitoringExecutionsRequest = ( LastModifiedTimeBefore: Math.round(input.LastModifiedTimeBefore.getTime() / 1000), }), ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.MonitoringJobDefinitionName !== undefined && { + MonitoringJobDefinitionName: input.MonitoringJobDefinitionName, + }), ...(input.MonitoringScheduleName !== undefined && { MonitoringScheduleName: input.MonitoringScheduleName }), + ...(input.MonitoringTypeEquals !== undefined && { MonitoringTypeEquals: input.MonitoringTypeEquals }), ...(input.NextToken !== undefined && { NextToken: input.NextToken }), ...(input.ScheduledTimeAfter !== undefined && { ScheduledTimeAfter: Math.round(input.ScheduledTimeAfter.getTime() / 1000), @@ -17672,6 +20493,10 @@ const serializeAws_json1_1ListMonitoringSchedulesRequest = ( LastModifiedTimeBefore: Math.round(input.LastModifiedTimeBefore.getTime() / 1000), }), ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.MonitoringJobDefinitionName !== undefined && { + MonitoringJobDefinitionName: input.MonitoringJobDefinitionName, + }), + ...(input.MonitoringTypeEquals !== undefined && { MonitoringTypeEquals: input.MonitoringTypeEquals }), ...(input.NameContains !== undefined && { NameContains: input.NameContains }), ...(input.NextToken !== undefined && { NextToken: input.NextToken }), ...(input.SortBy !== undefined && { SortBy: input.SortBy }), @@ -18024,6 +20849,39 @@ const serializeAws_json1_1MetricsSource = (input: MetricsSource, context: __Serd }; }; +const serializeAws_json1_1ModelBiasAppSpecification = ( + input: ModelBiasAppSpecification, + context: __SerdeContext +): any => { + return { + ...(input.ConfigUri !== undefined && { ConfigUri: input.ConfigUri }), + ...(input.Environment !== undefined && { + Environment: serializeAws_json1_1MonitoringEnvironmentMap(input.Environment, context), + }), + ...(input.ImageUri !== undefined && { ImageUri: input.ImageUri }), + }; +}; + +const serializeAws_json1_1ModelBiasBaselineConfig = (input: ModelBiasBaselineConfig, context: __SerdeContext): any => { + return { + ...(input.BaseliningJobName !== undefined && { BaseliningJobName: input.BaseliningJobName }), + ...(input.ConstraintsResource !== undefined && { + ConstraintsResource: serializeAws_json1_1MonitoringConstraintsResource(input.ConstraintsResource, context), + }), + }; +}; + +const serializeAws_json1_1ModelBiasJobInput = (input: ModelBiasJobInput, context: __SerdeContext): any => { + return { + ...(input.EndpointInput !== undefined && { + EndpointInput: serializeAws_json1_1EndpointInput(input.EndpointInput, context), + }), + ...(input.GroundTruthS3Input !== undefined && { + GroundTruthS3Input: serializeAws_json1_1MonitoringGroundTruthS3Input(input.GroundTruthS3Input, context), + }), + }; +}; + const serializeAws_json1_1ModelClientConfig = (input: ModelClientConfig, context: __SerdeContext): any => { return { ...(input.InvocationsMaxRetries !== undefined && { InvocationsMaxRetries: input.InvocationsMaxRetries }), @@ -18042,6 +20900,42 @@ const serializeAws_json1_1ModelDataQuality = (input: ModelDataQuality, context: }; }; +const serializeAws_json1_1ModelExplainabilityAppSpecification = ( + input: ModelExplainabilityAppSpecification, + context: __SerdeContext +): any => { + return { + ...(input.ConfigUri !== undefined && { ConfigUri: input.ConfigUri }), + ...(input.Environment !== undefined && { + Environment: serializeAws_json1_1MonitoringEnvironmentMap(input.Environment, context), + }), + ...(input.ImageUri !== undefined && { ImageUri: input.ImageUri }), + }; +}; + +const serializeAws_json1_1ModelExplainabilityBaselineConfig = ( + input: ModelExplainabilityBaselineConfig, + context: __SerdeContext +): any => { + return { + ...(input.BaseliningJobName !== undefined && { BaseliningJobName: input.BaseliningJobName }), + ...(input.ConstraintsResource !== undefined && { + ConstraintsResource: serializeAws_json1_1MonitoringConstraintsResource(input.ConstraintsResource, context), + }), + }; +}; + +const serializeAws_json1_1ModelExplainabilityJobInput = ( + input: ModelExplainabilityJobInput, + context: __SerdeContext +): any => { + return { + ...(input.EndpointInput !== undefined && { + EndpointInput: serializeAws_json1_1EndpointInput(input.EndpointInput, context), + }), + }; +}; + const serializeAws_json1_1ModelMetrics = (input: ModelMetrics, context: __SerdeContext): any => { return { ...(input.Bias !== undefined && { Bias: serializeAws_json1_1Bias(input.Bias, context) }), @@ -18117,6 +21011,54 @@ const serializeAws_json1_1ModelQuality = (input: ModelQuality, context: __SerdeC }; }; +const serializeAws_json1_1ModelQualityAppSpecification = ( + input: ModelQualityAppSpecification, + context: __SerdeContext +): any => { + return { + ...(input.ContainerArguments !== undefined && { + ContainerArguments: serializeAws_json1_1MonitoringContainerArguments(input.ContainerArguments, context), + }), + ...(input.ContainerEntrypoint !== undefined && { + ContainerEntrypoint: serializeAws_json1_1ContainerEntrypoint(input.ContainerEntrypoint, context), + }), + ...(input.Environment !== undefined && { + Environment: serializeAws_json1_1MonitoringEnvironmentMap(input.Environment, context), + }), + ...(input.ImageUri !== undefined && { ImageUri: input.ImageUri }), + ...(input.PostAnalyticsProcessorSourceUri !== undefined && { + PostAnalyticsProcessorSourceUri: input.PostAnalyticsProcessorSourceUri, + }), + ...(input.ProblemType !== undefined && { ProblemType: input.ProblemType }), + ...(input.RecordPreprocessorSourceUri !== undefined && { + RecordPreprocessorSourceUri: input.RecordPreprocessorSourceUri, + }), + }; +}; + +const serializeAws_json1_1ModelQualityBaselineConfig = ( + input: ModelQualityBaselineConfig, + context: __SerdeContext +): any => { + return { + ...(input.BaseliningJobName !== undefined && { BaseliningJobName: input.BaseliningJobName }), + ...(input.ConstraintsResource !== undefined && { + ConstraintsResource: serializeAws_json1_1MonitoringConstraintsResource(input.ConstraintsResource, context), + }), + }; +}; + +const serializeAws_json1_1ModelQualityJobInput = (input: ModelQualityJobInput, context: __SerdeContext): any => { + return { + ...(input.EndpointInput !== undefined && { + EndpointInput: serializeAws_json1_1EndpointInput(input.EndpointInput, context), + }), + ...(input.GroundTruthS3Input !== undefined && { + GroundTruthS3Input: serializeAws_json1_1MonitoringGroundTruthS3Input(input.GroundTruthS3Input, context), + }), + }; +}; + const serializeAws_json1_1MonitoringAppSpecification = ( input: MonitoringAppSpecification, context: __SerdeContext @@ -18143,6 +21085,7 @@ const serializeAws_json1_1MonitoringBaselineConfig = ( context: __SerdeContext ): any => { return { + ...(input.BaseliningJobName !== undefined && { BaseliningJobName: input.BaseliningJobName }), ...(input.ConstraintsResource !== undefined && { ConstraintsResource: serializeAws_json1_1MonitoringConstraintsResource(input.ConstraintsResource, context), }), @@ -18187,6 +21130,15 @@ const serializeAws_json1_1MonitoringEnvironmentMap = ( ); }; +const serializeAws_json1_1MonitoringGroundTruthS3Input = ( + input: MonitoringGroundTruthS3Input, + context: __SerdeContext +): any => { + return { + ...(input.S3Uri !== undefined && { S3Uri: input.S3Uri }), + }; +}; + const serializeAws_json1_1MonitoringInput = (input: MonitoringInput, context: __SerdeContext): any => { return { ...(input.EndpointInput !== undefined && { @@ -18232,6 +21184,16 @@ const serializeAws_json1_1MonitoringJobDefinition = (input: MonitoringJobDefinit }; }; +const serializeAws_json1_1MonitoringNetworkConfig = (input: MonitoringNetworkConfig, context: __SerdeContext): any => { + return { + ...(input.EnableInterContainerTrafficEncryption !== undefined && { + EnableInterContainerTrafficEncryption: input.EnableInterContainerTrafficEncryption, + }), + ...(input.EnableNetworkIsolation !== undefined && { EnableNetworkIsolation: input.EnableNetworkIsolation }), + ...(input.VpcConfig !== undefined && { VpcConfig: serializeAws_json1_1VpcConfig(input.VpcConfig, context) }), + }; +}; + const serializeAws_json1_1MonitoringOutput = (input: MonitoringOutput, context: __SerdeContext): any => { return { ...(input.S3Output !== undefined && { S3Output: serializeAws_json1_1MonitoringS3Output(input.S3Output, context) }), @@ -18275,6 +21237,10 @@ const serializeAws_json1_1MonitoringScheduleConfig = ( ...(input.MonitoringJobDefinition !== undefined && { MonitoringJobDefinition: serializeAws_json1_1MonitoringJobDefinition(input.MonitoringJobDefinition, context), }), + ...(input.MonitoringJobDefinitionName !== undefined && { + MonitoringJobDefinitionName: input.MonitoringJobDefinitionName, + }), + ...(input.MonitoringType !== undefined && { MonitoringType: input.MonitoringType }), ...(input.ScheduleConfig !== undefined && { ScheduleConfig: serializeAws_json1_1ScheduleConfig(input.ScheduleConfig, context), }), @@ -18615,6 +21581,65 @@ const serializeAws_json1_1ProductionVariantList = (input: ProductionVariant[], c return input.map((entry) => serializeAws_json1_1ProductionVariant(entry, context)); }; +const serializeAws_json1_1ProfilerConfig = (input: ProfilerConfig, context: __SerdeContext): any => { + return { + ...(input.ProfilingIntervalInMilliseconds !== undefined && { + ProfilingIntervalInMilliseconds: input.ProfilingIntervalInMilliseconds, + }), + ...(input.ProfilingParameters !== undefined && { + ProfilingParameters: serializeAws_json1_1ProfilingParameters(input.ProfilingParameters, context), + }), + ...(input.S3OutputPath !== undefined && { S3OutputPath: input.S3OutputPath }), + }; +}; + +const serializeAws_json1_1ProfilerConfigForUpdate = (input: ProfilerConfigForUpdate, context: __SerdeContext): any => { + return { + ...(input.DisableProfiler !== undefined && { DisableProfiler: input.DisableProfiler }), + ...(input.ProfilingIntervalInMilliseconds !== undefined && { + ProfilingIntervalInMilliseconds: input.ProfilingIntervalInMilliseconds, + }), + ...(input.ProfilingParameters !== undefined && { + ProfilingParameters: serializeAws_json1_1ProfilingParameters(input.ProfilingParameters, context), + }), + ...(input.S3OutputPath !== undefined && { S3OutputPath: input.S3OutputPath }), + }; +}; + +const serializeAws_json1_1ProfilerRuleConfiguration = ( + input: ProfilerRuleConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.InstanceType !== undefined && { InstanceType: input.InstanceType }), + ...(input.LocalPath !== undefined && { LocalPath: input.LocalPath }), + ...(input.RuleConfigurationName !== undefined && { RuleConfigurationName: input.RuleConfigurationName }), + ...(input.RuleEvaluatorImage !== undefined && { RuleEvaluatorImage: input.RuleEvaluatorImage }), + ...(input.RuleParameters !== undefined && { + RuleParameters: serializeAws_json1_1RuleParameters(input.RuleParameters, context), + }), + ...(input.S3OutputPath !== undefined && { S3OutputPath: input.S3OutputPath }), + ...(input.VolumeSizeInGB !== undefined && { VolumeSizeInGB: input.VolumeSizeInGB }), + }; +}; + +const serializeAws_json1_1ProfilerRuleConfigurations = ( + input: ProfilerRuleConfiguration[], + context: __SerdeContext +): any => { + return input.map((entry) => serializeAws_json1_1ProfilerRuleConfiguration(entry, context)); +}; + +const serializeAws_json1_1ProfilingParameters = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + const serializeAws_json1_1PropertyNameQuery = (input: PropertyNameQuery, context: __SerdeContext): any => { return { ...(input.PropertyNameHint !== undefined && { PropertyNameHint: input.PropertyNameHint }), @@ -18675,6 +21700,14 @@ const serializeAws_json1_1RedshiftDatasetDefinition = ( }; }; +const serializeAws_json1_1RegisterDevicesRequest = (input: RegisterDevicesRequest, context: __SerdeContext): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.Devices !== undefined && { Devices: serializeAws_json1_1Devices(input.Devices, context) }), + ...(input.Tags !== undefined && { Tags: serializeAws_json1_1TagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1RenderableTask = (input: RenderableTask, context: __SerdeContext): any => { return { ...(input.Input !== undefined && { Input: input.Input }), @@ -18900,6 +21933,15 @@ const serializeAws_json1_1StopCompilationJobRequest = ( }; }; +const serializeAws_json1_1StopEdgePackagingJobRequest = ( + input: StopEdgePackagingJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.EdgePackagingJobName !== undefined && { EdgePackagingJobName: input.EdgePackagingJobName }), + }; +}; + const serializeAws_json1_1StopHyperParameterTuningJobRequest = ( input: StopHyperParameterTuningJobRequest, context: __SerdeContext @@ -19319,6 +22361,27 @@ const serializeAws_json1_1UpdateContextRequest = (input: UpdateContextRequest, c }; }; +const serializeAws_json1_1UpdateDeviceFleetRequest = ( + input: UpdateDeviceFleetRequest, + context: __SerdeContext +): any => { + return { + ...(input.Description !== undefined && { Description: input.Description }), + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.OutputConfig !== undefined && { + OutputConfig: serializeAws_json1_1EdgeOutputConfig(input.OutputConfig, context), + }), + ...(input.RoleArn !== undefined && { RoleArn: input.RoleArn }), + }; +}; + +const serializeAws_json1_1UpdateDevicesRequest = (input: UpdateDevicesRequest, context: __SerdeContext): any => { + return { + ...(input.DeviceFleetName !== undefined && { DeviceFleetName: input.DeviceFleetName }), + ...(input.Devices !== undefined && { Devices: serializeAws_json1_1Devices(input.Devices, context) }), + }; +}; + const serializeAws_json1_1UpdateDomainRequest = (input: UpdateDomainRequest, context: __SerdeContext): any => { return { ...(input.DefaultUserSettings !== undefined && { @@ -19480,6 +22543,24 @@ const serializeAws_json1_1UpdatePipelineRequest = (input: UpdatePipelineRequest, }; }; +const serializeAws_json1_1UpdateTrainingJobRequest = ( + input: UpdateTrainingJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.ProfilerConfig !== undefined && { + ProfilerConfig: serializeAws_json1_1ProfilerConfigForUpdate(input.ProfilerConfig, context), + }), + ...(input.ProfilerRuleConfigurations !== undefined && { + ProfilerRuleConfigurations: serializeAws_json1_1ProfilerRuleConfigurations( + input.ProfilerRuleConfigurations, + context + ), + }), + ...(input.TrainingJobName !== undefined && { TrainingJobName: input.TrainingJobName }), + }; +}; + const serializeAws_json1_1UpdateTrialComponentRequest = ( input: UpdateTrialComponentRequest, context: __SerdeContext @@ -19663,6 +22744,17 @@ const deserializeAws_json1_1AddTagsOutput = (output: any, context: __SerdeContex } as any; }; +const deserializeAws_json1_1AgentVersion = (output: any, context: __SerdeContext): AgentVersion => { + return { + AgentCount: output.AgentCount !== undefined && output.AgentCount !== null ? output.AgentCount : undefined, + Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined, + } as any; +}; + +const deserializeAws_json1_1AgentVersions = (output: any, context: __SerdeContext): AgentVersion[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1AgentVersion(entry, context)); +}; + const deserializeAws_json1_1Alarm = (output: any, context: __SerdeContext): Alarm => { return { AlarmName: output.AlarmName !== undefined && output.AlarmName !== null ? output.AlarmName : undefined, @@ -20683,6 +23775,16 @@ const deserializeAws_json1_1CreateContextResponse = (output: any, context: __Ser } as any; }; +const deserializeAws_json1_1CreateDataQualityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): CreateDataQualityJobDefinitionResponse => { + return { + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + } as any; +}; + const deserializeAws_json1_1CreateDomainResponse = (output: any, context: __SerdeContext): CreateDomainResponse => { return { DomainArn: output.DomainArn !== undefined && output.DomainArn !== null ? output.DomainArn : undefined, @@ -20788,6 +23890,26 @@ const deserializeAws_json1_1CreateLabelingJobResponse = ( } as any; }; +const deserializeAws_json1_1CreateModelBiasJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): CreateModelBiasJobDefinitionResponse => { + return { + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + } as any; +}; + +const deserializeAws_json1_1CreateModelExplainabilityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): CreateModelExplainabilityJobDefinitionResponse => { + return { + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + } as any; +}; + const deserializeAws_json1_1CreateModelOutput = (output: any, context: __SerdeContext): CreateModelOutput => { return { ModelArn: output.ModelArn !== undefined && output.ModelArn !== null ? output.ModelArn : undefined, @@ -20816,6 +23938,16 @@ const deserializeAws_json1_1CreateModelPackageOutput = ( } as any; }; +const deserializeAws_json1_1CreateModelQualityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): CreateModelQualityJobDefinitionResponse => { + return { + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + } as any; +}; + const deserializeAws_json1_1CreateMonitoringScheduleResponse = ( output: any, context: __SerdeContext @@ -21037,6 +24169,64 @@ const deserializeAws_json1_1DataProcessing = (output: any, context: __SerdeConte } as any; }; +const deserializeAws_json1_1DataQualityAppSpecification = ( + output: any, + context: __SerdeContext +): DataQualityAppSpecification => { + return { + ContainerArguments: + output.ContainerArguments !== undefined && output.ContainerArguments !== null + ? deserializeAws_json1_1MonitoringContainerArguments(output.ContainerArguments, context) + : undefined, + ContainerEntrypoint: + output.ContainerEntrypoint !== undefined && output.ContainerEntrypoint !== null + ? deserializeAws_json1_1ContainerEntrypoint(output.ContainerEntrypoint, context) + : undefined, + Environment: + output.Environment !== undefined && output.Environment !== null + ? deserializeAws_json1_1MonitoringEnvironmentMap(output.Environment, context) + : undefined, + ImageUri: output.ImageUri !== undefined && output.ImageUri !== null ? output.ImageUri : undefined, + PostAnalyticsProcessorSourceUri: + output.PostAnalyticsProcessorSourceUri !== undefined && output.PostAnalyticsProcessorSourceUri !== null + ? output.PostAnalyticsProcessorSourceUri + : undefined, + RecordPreprocessorSourceUri: + output.RecordPreprocessorSourceUri !== undefined && output.RecordPreprocessorSourceUri !== null + ? output.RecordPreprocessorSourceUri + : undefined, + } as any; +}; + +const deserializeAws_json1_1DataQualityBaselineConfig = ( + output: any, + context: __SerdeContext +): DataQualityBaselineConfig => { + return { + BaseliningJobName: + output.BaseliningJobName !== undefined && output.BaseliningJobName !== null + ? output.BaseliningJobName + : undefined, + ConstraintsResource: + output.ConstraintsResource !== undefined && output.ConstraintsResource !== null + ? deserializeAws_json1_1MonitoringConstraintsResource(output.ConstraintsResource, context) + : undefined, + StatisticsResource: + output.StatisticsResource !== undefined && output.StatisticsResource !== null + ? deserializeAws_json1_1MonitoringStatisticsResource(output.StatisticsResource, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DataQualityJobInput = (output: any, context: __SerdeContext): DataQualityJobInput => { + return { + EndpointInput: + output.EndpointInput !== undefined && output.EndpointInput !== null + ? deserializeAws_json1_1EndpointInput(output.EndpointInput, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DatasetDefinition = (output: any, context: __SerdeContext): DatasetDefinition => { return { AthenaDatasetDefinition: @@ -21644,6 +24834,105 @@ const deserializeAws_json1_1DescribeContextResponse = ( } as any; }; +const deserializeAws_json1_1DescribeDataQualityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): DescribeDataQualityJobDefinitionResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + DataQualityAppSpecification: + output.DataQualityAppSpecification !== undefined && output.DataQualityAppSpecification !== null + ? deserializeAws_json1_1DataQualityAppSpecification(output.DataQualityAppSpecification, context) + : undefined, + DataQualityBaselineConfig: + output.DataQualityBaselineConfig !== undefined && output.DataQualityBaselineConfig !== null + ? deserializeAws_json1_1DataQualityBaselineConfig(output.DataQualityBaselineConfig, context) + : undefined, + DataQualityJobInput: + output.DataQualityJobInput !== undefined && output.DataQualityJobInput !== null + ? deserializeAws_json1_1DataQualityJobInput(output.DataQualityJobInput, context) + : undefined, + DataQualityJobOutputConfig: + output.DataQualityJobOutputConfig !== undefined && output.DataQualityJobOutputConfig !== null + ? deserializeAws_json1_1MonitoringOutputConfig(output.DataQualityJobOutputConfig, context) + : undefined, + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + JobDefinitionName: + output.JobDefinitionName !== undefined && output.JobDefinitionName !== null + ? output.JobDefinitionName + : undefined, + JobResources: + output.JobResources !== undefined && output.JobResources !== null + ? deserializeAws_json1_1MonitoringResources(output.JobResources, context) + : undefined, + NetworkConfig: + output.NetworkConfig !== undefined && output.NetworkConfig !== null + ? deserializeAws_json1_1MonitoringNetworkConfig(output.NetworkConfig, context) + : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, + StoppingCondition: + output.StoppingCondition !== undefined && output.StoppingCondition !== null + ? deserializeAws_json1_1MonitoringStoppingCondition(output.StoppingCondition, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeDeviceFleetResponse = ( + output: any, + context: __SerdeContext +): DescribeDeviceFleetResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DeviceFleetArn: + output.DeviceFleetArn !== undefined && output.DeviceFleetArn !== null ? output.DeviceFleetArn : undefined, + DeviceFleetName: + output.DeviceFleetName !== undefined && output.DeviceFleetName !== null ? output.DeviceFleetName : undefined, + IotRoleAlias: output.IotRoleAlias !== undefined && output.IotRoleAlias !== null ? output.IotRoleAlias : undefined, + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + OutputConfig: + output.OutputConfig !== undefined && output.OutputConfig !== null + ? deserializeAws_json1_1EdgeOutputConfig(output.OutputConfig, context) + : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeDeviceResponse = (output: any, context: __SerdeContext): DescribeDeviceResponse => { + return { + Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DeviceArn: output.DeviceArn !== undefined && output.DeviceArn !== null ? output.DeviceArn : undefined, + DeviceFleetName: + output.DeviceFleetName !== undefined && output.DeviceFleetName !== null ? output.DeviceFleetName : undefined, + DeviceName: output.DeviceName !== undefined && output.DeviceName !== null ? output.DeviceName : undefined, + IotThingName: output.IotThingName !== undefined && output.IotThingName !== null ? output.IotThingName : undefined, + LatestHeartbeat: + output.LatestHeartbeat !== undefined && output.LatestHeartbeat !== null + ? new Date(Math.round(output.LatestHeartbeat * 1000)) + : undefined, + MaxModels: output.MaxModels !== undefined && output.MaxModels !== null ? output.MaxModels : undefined, + Models: + output.Models !== undefined && output.Models !== null + ? deserializeAws_json1_1EdgeModels(output.Models, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + RegistrationTime: + output.RegistrationTime !== undefined && output.RegistrationTime !== null + ? new Date(Math.round(output.RegistrationTime * 1000)) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeDomainResponse = (output: any, context: __SerdeContext): DescribeDomainResponse => { return { AppNetworkAccessType: @@ -21672,23 +24961,71 @@ const deserializeAws_json1_1DescribeDomainResponse = (output: any, context: __Se output.HomeEfsFileSystemKmsKeyId !== undefined && output.HomeEfsFileSystemKmsKeyId !== null ? output.HomeEfsFileSystemKmsKeyId : undefined, - KmsKeyId: output.KmsKeyId !== undefined && output.KmsKeyId !== null ? output.KmsKeyId : undefined, + KmsKeyId: output.KmsKeyId !== undefined && output.KmsKeyId !== null ? output.KmsKeyId : undefined, + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + SingleSignOnManagedApplicationInstanceId: + output.SingleSignOnManagedApplicationInstanceId !== undefined && + output.SingleSignOnManagedApplicationInstanceId !== null + ? output.SingleSignOnManagedApplicationInstanceId + : undefined, + Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, + SubnetIds: + output.SubnetIds !== undefined && output.SubnetIds !== null + ? deserializeAws_json1_1Subnets(output.SubnetIds, context) + : undefined, + Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined, + VpcId: output.VpcId !== undefined && output.VpcId !== null ? output.VpcId : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeEdgePackagingJobResponse = ( + output: any, + context: __SerdeContext +): DescribeEdgePackagingJobResponse => { + return { + CompilationJobName: + output.CompilationJobName !== undefined && output.CompilationJobName !== null + ? output.CompilationJobName + : undefined, + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + EdgePackagingJobArn: + output.EdgePackagingJobArn !== undefined && output.EdgePackagingJobArn !== null + ? output.EdgePackagingJobArn + : undefined, + EdgePackagingJobName: + output.EdgePackagingJobName !== undefined && output.EdgePackagingJobName !== null + ? output.EdgePackagingJobName + : undefined, + EdgePackagingJobStatus: + output.EdgePackagingJobStatus !== undefined && output.EdgePackagingJobStatus !== null + ? output.EdgePackagingJobStatus + : undefined, + EdgePackagingJobStatusMessage: + output.EdgePackagingJobStatusMessage !== undefined && output.EdgePackagingJobStatusMessage !== null + ? output.EdgePackagingJobStatusMessage + : undefined, LastModifiedTime: output.LastModifiedTime !== undefined && output.LastModifiedTime !== null ? new Date(Math.round(output.LastModifiedTime * 1000)) : undefined, - SingleSignOnManagedApplicationInstanceId: - output.SingleSignOnManagedApplicationInstanceId !== undefined && - output.SingleSignOnManagedApplicationInstanceId !== null - ? output.SingleSignOnManagedApplicationInstanceId - : undefined, - Status: output.Status !== undefined && output.Status !== null ? output.Status : undefined, - SubnetIds: - output.SubnetIds !== undefined && output.SubnetIds !== null - ? deserializeAws_json1_1Subnets(output.SubnetIds, context) + ModelArtifact: + output.ModelArtifact !== undefined && output.ModelArtifact !== null ? output.ModelArtifact : undefined, + ModelName: output.ModelName !== undefined && output.ModelName !== null ? output.ModelName : undefined, + ModelSignature: + output.ModelSignature !== undefined && output.ModelSignature !== null ? output.ModelSignature : undefined, + ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined, + OutputConfig: + output.OutputConfig !== undefined && output.OutputConfig !== null + ? deserializeAws_json1_1EdgeOutputConfig(output.OutputConfig, context) : undefined, - Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined, - VpcId: output.VpcId !== undefined && output.VpcId !== null ? output.VpcId : undefined, + ResourceKey: output.ResourceKey !== undefined && output.ResourceKey !== null ? output.ResourceKey : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, } as any; }; @@ -22091,6 +25428,100 @@ const deserializeAws_json1_1DescribeLabelingJobResponse = ( } as any; }; +const deserializeAws_json1_1DescribeModelBiasJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): DescribeModelBiasJobDefinitionResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + JobDefinitionName: + output.JobDefinitionName !== undefined && output.JobDefinitionName !== null + ? output.JobDefinitionName + : undefined, + JobResources: + output.JobResources !== undefined && output.JobResources !== null + ? deserializeAws_json1_1MonitoringResources(output.JobResources, context) + : undefined, + ModelBiasAppSpecification: + output.ModelBiasAppSpecification !== undefined && output.ModelBiasAppSpecification !== null + ? deserializeAws_json1_1ModelBiasAppSpecification(output.ModelBiasAppSpecification, context) + : undefined, + ModelBiasBaselineConfig: + output.ModelBiasBaselineConfig !== undefined && output.ModelBiasBaselineConfig !== null + ? deserializeAws_json1_1ModelBiasBaselineConfig(output.ModelBiasBaselineConfig, context) + : undefined, + ModelBiasJobInput: + output.ModelBiasJobInput !== undefined && output.ModelBiasJobInput !== null + ? deserializeAws_json1_1ModelBiasJobInput(output.ModelBiasJobInput, context) + : undefined, + ModelBiasJobOutputConfig: + output.ModelBiasJobOutputConfig !== undefined && output.ModelBiasJobOutputConfig !== null + ? deserializeAws_json1_1MonitoringOutputConfig(output.ModelBiasJobOutputConfig, context) + : undefined, + NetworkConfig: + output.NetworkConfig !== undefined && output.NetworkConfig !== null + ? deserializeAws_json1_1MonitoringNetworkConfig(output.NetworkConfig, context) + : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, + StoppingCondition: + output.StoppingCondition !== undefined && output.StoppingCondition !== null + ? deserializeAws_json1_1MonitoringStoppingCondition(output.StoppingCondition, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeModelExplainabilityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): DescribeModelExplainabilityJobDefinitionResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + JobDefinitionName: + output.JobDefinitionName !== undefined && output.JobDefinitionName !== null + ? output.JobDefinitionName + : undefined, + JobResources: + output.JobResources !== undefined && output.JobResources !== null + ? deserializeAws_json1_1MonitoringResources(output.JobResources, context) + : undefined, + ModelExplainabilityAppSpecification: + output.ModelExplainabilityAppSpecification !== undefined && output.ModelExplainabilityAppSpecification !== null + ? deserializeAws_json1_1ModelExplainabilityAppSpecification(output.ModelExplainabilityAppSpecification, context) + : undefined, + ModelExplainabilityBaselineConfig: + output.ModelExplainabilityBaselineConfig !== undefined && output.ModelExplainabilityBaselineConfig !== null + ? deserializeAws_json1_1ModelExplainabilityBaselineConfig(output.ModelExplainabilityBaselineConfig, context) + : undefined, + ModelExplainabilityJobInput: + output.ModelExplainabilityJobInput !== undefined && output.ModelExplainabilityJobInput !== null + ? deserializeAws_json1_1ModelExplainabilityJobInput(output.ModelExplainabilityJobInput, context) + : undefined, + ModelExplainabilityJobOutputConfig: + output.ModelExplainabilityJobOutputConfig !== undefined && output.ModelExplainabilityJobOutputConfig !== null + ? deserializeAws_json1_1MonitoringOutputConfig(output.ModelExplainabilityJobOutputConfig, context) + : undefined, + NetworkConfig: + output.NetworkConfig !== undefined && output.NetworkConfig !== null + ? deserializeAws_json1_1MonitoringNetworkConfig(output.NetworkConfig, context) + : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, + StoppingCondition: + output.StoppingCondition !== undefined && output.StoppingCondition !== null + ? deserializeAws_json1_1MonitoringStoppingCondition(output.StoppingCondition, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeModelOutput = (output: any, context: __SerdeContext): DescribeModelOutput => { return { Containers: @@ -22232,6 +25663,53 @@ const deserializeAws_json1_1DescribeModelPackageOutput = ( } as any; }; +const deserializeAws_json1_1DescribeModelQualityJobDefinitionResponse = ( + output: any, + context: __SerdeContext +): DescribeModelQualityJobDefinitionResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + JobDefinitionArn: + output.JobDefinitionArn !== undefined && output.JobDefinitionArn !== null ? output.JobDefinitionArn : undefined, + JobDefinitionName: + output.JobDefinitionName !== undefined && output.JobDefinitionName !== null + ? output.JobDefinitionName + : undefined, + JobResources: + output.JobResources !== undefined && output.JobResources !== null + ? deserializeAws_json1_1MonitoringResources(output.JobResources, context) + : undefined, + ModelQualityAppSpecification: + output.ModelQualityAppSpecification !== undefined && output.ModelQualityAppSpecification !== null + ? deserializeAws_json1_1ModelQualityAppSpecification(output.ModelQualityAppSpecification, context) + : undefined, + ModelQualityBaselineConfig: + output.ModelQualityBaselineConfig !== undefined && output.ModelQualityBaselineConfig !== null + ? deserializeAws_json1_1ModelQualityBaselineConfig(output.ModelQualityBaselineConfig, context) + : undefined, + ModelQualityJobInput: + output.ModelQualityJobInput !== undefined && output.ModelQualityJobInput !== null + ? deserializeAws_json1_1ModelQualityJobInput(output.ModelQualityJobInput, context) + : undefined, + ModelQualityJobOutputConfig: + output.ModelQualityJobOutputConfig !== undefined && output.ModelQualityJobOutputConfig !== null + ? deserializeAws_json1_1MonitoringOutputConfig(output.ModelQualityJobOutputConfig, context) + : undefined, + NetworkConfig: + output.NetworkConfig !== undefined && output.NetworkConfig !== null + ? deserializeAws_json1_1MonitoringNetworkConfig(output.NetworkConfig, context) + : undefined, + RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined, + StoppingCondition: + output.StoppingCondition !== undefined && output.StoppingCondition !== null + ? deserializeAws_json1_1MonitoringStoppingCondition(output.StoppingCondition, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeMonitoringScheduleResponse = ( output: any, context: __SerdeContext @@ -22268,6 +25746,8 @@ const deserializeAws_json1_1DescribeMonitoringScheduleResponse = ( output.MonitoringScheduleStatus !== undefined && output.MonitoringScheduleStatus !== null ? output.MonitoringScheduleStatus : undefined, + MonitoringType: + output.MonitoringType !== undefined && output.MonitoringType !== null ? output.MonitoringType : undefined, } as any; }; @@ -22673,6 +26153,20 @@ const deserializeAws_json1_1DescribeTrainingJobResponse = ( output.OutputDataConfig !== undefined && output.OutputDataConfig !== null ? deserializeAws_json1_1OutputDataConfig(output.OutputDataConfig, context) : undefined, + ProfilerConfig: + output.ProfilerConfig !== undefined && output.ProfilerConfig !== null + ? deserializeAws_json1_1ProfilerConfig(output.ProfilerConfig, context) + : undefined, + ProfilerRuleConfigurations: + output.ProfilerRuleConfigurations !== undefined && output.ProfilerRuleConfigurations !== null + ? deserializeAws_json1_1ProfilerRuleConfigurations(output.ProfilerRuleConfigurations, context) + : undefined, + ProfilerRuleEvaluationStatuses: + output.ProfilerRuleEvaluationStatuses !== undefined && output.ProfilerRuleEvaluationStatuses !== null + ? deserializeAws_json1_1ProfilerRuleEvaluationStatuses(output.ProfilerRuleEvaluationStatuses, context) + : undefined, + ProfilingStatus: + output.ProfilingStatus !== undefined && output.ProfilingStatus !== null ? output.ProfilingStatus : undefined, ResourceConfig: output.ResourceConfig !== undefined && output.ResourceConfig !== null ? deserializeAws_json1_1ResourceConfig(output.ResourceConfig, context) @@ -22955,6 +26449,67 @@ const deserializeAws_json1_1DescribeWorkteamResponse = ( } as any; }; +const deserializeAws_json1_1DeviceFleetSummaries = (output: any, context: __SerdeContext): DeviceFleetSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1DeviceFleetSummary(entry, context)); +}; + +const deserializeAws_json1_1DeviceFleetSummary = (output: any, context: __SerdeContext): DeviceFleetSummary => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + DeviceFleetArn: + output.DeviceFleetArn !== undefined && output.DeviceFleetArn !== null ? output.DeviceFleetArn : undefined, + DeviceFleetName: + output.DeviceFleetName !== undefined && output.DeviceFleetName !== null ? output.DeviceFleetName : undefined, + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DeviceStats = (output: any, context: __SerdeContext): DeviceStats => { + return { + ConnectedDeviceCount: + output.ConnectedDeviceCount !== undefined && output.ConnectedDeviceCount !== null + ? output.ConnectedDeviceCount + : undefined, + RegisteredDeviceCount: + output.RegisteredDeviceCount !== undefined && output.RegisteredDeviceCount !== null + ? output.RegisteredDeviceCount + : undefined, + } as any; +}; + +const deserializeAws_json1_1DeviceSummaries = (output: any, context: __SerdeContext): DeviceSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1DeviceSummary(entry, context)); +}; + +const deserializeAws_json1_1DeviceSummary = (output: any, context: __SerdeContext): DeviceSummary => { + return { + Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DeviceArn: output.DeviceArn !== undefined && output.DeviceArn !== null ? output.DeviceArn : undefined, + DeviceFleetName: + output.DeviceFleetName !== undefined && output.DeviceFleetName !== null ? output.DeviceFleetName : undefined, + DeviceName: output.DeviceName !== undefined && output.DeviceName !== null ? output.DeviceName : undefined, + IotThingName: output.IotThingName !== undefined && output.IotThingName !== null ? output.IotThingName : undefined, + LatestHeartbeat: + output.LatestHeartbeat !== undefined && output.LatestHeartbeat !== null + ? new Date(Math.round(output.LatestHeartbeat * 1000)) + : undefined, + Models: + output.Models !== undefined && output.Models !== null + ? deserializeAws_json1_1EdgeModelSummaries(output.Models, context) + : undefined, + RegistrationTime: + output.RegistrationTime !== undefined && output.RegistrationTime !== null + ? new Date(Math.round(output.RegistrationTime * 1000)) + : undefined, + } as any; +}; + const deserializeAws_json1_1DisableSagemakerServicecatalogPortfolioOutput = ( output: any, context: __SerdeContext @@ -22997,6 +26552,112 @@ const deserializeAws_json1_1DomainList = (output: any, context: __SerdeContext): return (output || []).map((entry: any) => deserializeAws_json1_1DomainDetails(entry, context)); }; +const deserializeAws_json1_1EdgeModel = (output: any, context: __SerdeContext): EdgeModel => { + return { + LatestInference: + output.LatestInference !== undefined && output.LatestInference !== null + ? new Date(Math.round(output.LatestInference * 1000)) + : undefined, + LatestSampleTime: + output.LatestSampleTime !== undefined && output.LatestSampleTime !== null + ? new Date(Math.round(output.LatestSampleTime * 1000)) + : undefined, + ModelName: output.ModelName !== undefined && output.ModelName !== null ? output.ModelName : undefined, + ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined, + } as any; +}; + +const deserializeAws_json1_1EdgeModels = (output: any, context: __SerdeContext): EdgeModel[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EdgeModel(entry, context)); +}; + +const deserializeAws_json1_1EdgeModelStat = (output: any, context: __SerdeContext): EdgeModelStat => { + return { + ActiveDeviceCount: + output.ActiveDeviceCount !== undefined && output.ActiveDeviceCount !== null + ? output.ActiveDeviceCount + : undefined, + ConnectedDeviceCount: + output.ConnectedDeviceCount !== undefined && output.ConnectedDeviceCount !== null + ? output.ConnectedDeviceCount + : undefined, + ModelName: output.ModelName !== undefined && output.ModelName !== null ? output.ModelName : undefined, + ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined, + OfflineDeviceCount: + output.OfflineDeviceCount !== undefined && output.OfflineDeviceCount !== null + ? output.OfflineDeviceCount + : undefined, + SamplingDeviceCount: + output.SamplingDeviceCount !== undefined && output.SamplingDeviceCount !== null + ? output.SamplingDeviceCount + : undefined, + } as any; +}; + +const deserializeAws_json1_1EdgeModelStats = (output: any, context: __SerdeContext): EdgeModelStat[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EdgeModelStat(entry, context)); +}; + +const deserializeAws_json1_1EdgeModelSummaries = (output: any, context: __SerdeContext): EdgeModelSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EdgeModelSummary(entry, context)); +}; + +const deserializeAws_json1_1EdgeModelSummary = (output: any, context: __SerdeContext): EdgeModelSummary => { + return { + ModelName: output.ModelName !== undefined && output.ModelName !== null ? output.ModelName : undefined, + ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined, + } as any; +}; + +const deserializeAws_json1_1EdgeOutputConfig = (output: any, context: __SerdeContext): EdgeOutputConfig => { + return { + KmsKeyId: output.KmsKeyId !== undefined && output.KmsKeyId !== null ? output.KmsKeyId : undefined, + S3OutputLocation: + output.S3OutputLocation !== undefined && output.S3OutputLocation !== null ? output.S3OutputLocation : undefined, + } as any; +}; + +const deserializeAws_json1_1EdgePackagingJobSummaries = ( + output: any, + context: __SerdeContext +): EdgePackagingJobSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1EdgePackagingJobSummary(entry, context)); +}; + +const deserializeAws_json1_1EdgePackagingJobSummary = ( + output: any, + context: __SerdeContext +): EdgePackagingJobSummary => { + return { + CompilationJobName: + output.CompilationJobName !== undefined && output.CompilationJobName !== null + ? output.CompilationJobName + : undefined, + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + EdgePackagingJobArn: + output.EdgePackagingJobArn !== undefined && output.EdgePackagingJobArn !== null + ? output.EdgePackagingJobArn + : undefined, + EdgePackagingJobName: + output.EdgePackagingJobName !== undefined && output.EdgePackagingJobName !== null + ? output.EdgePackagingJobName + : undefined, + EdgePackagingJobStatus: + output.EdgePackagingJobStatus !== undefined && output.EdgePackagingJobStatus !== null + ? output.EdgePackagingJobStatus + : undefined, + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + ModelName: output.ModelName !== undefined && output.ModelName !== null ? output.ModelName : undefined, + ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined, + } as any; +}; + const deserializeAws_json1_1EnableSagemakerServicecatalogPortfolioOutput = ( output: any, context: __SerdeContext @@ -23069,13 +26730,33 @@ const deserializeAws_json1_1EndpointConfigSummaryList = ( const deserializeAws_json1_1EndpointInput = (output: any, context: __SerdeContext): EndpointInput => { return { + EndTimeOffset: + output.EndTimeOffset !== undefined && output.EndTimeOffset !== null ? output.EndTimeOffset : undefined, EndpointName: output.EndpointName !== undefined && output.EndpointName !== null ? output.EndpointName : undefined, + FeaturesAttribute: + output.FeaturesAttribute !== undefined && output.FeaturesAttribute !== null + ? output.FeaturesAttribute + : undefined, + InferenceAttribute: + output.InferenceAttribute !== undefined && output.InferenceAttribute !== null + ? output.InferenceAttribute + : undefined, LocalPath: output.LocalPath !== undefined && output.LocalPath !== null ? output.LocalPath : undefined, + ProbabilityAttribute: + output.ProbabilityAttribute !== undefined && output.ProbabilityAttribute !== null + ? output.ProbabilityAttribute + : undefined, + ProbabilityThresholdAttribute: + output.ProbabilityThresholdAttribute !== undefined && output.ProbabilityThresholdAttribute !== null + ? output.ProbabilityThresholdAttribute + : undefined, S3DataDistributionType: output.S3DataDistributionType !== undefined && output.S3DataDistributionType !== null ? output.S3DataDistributionType : undefined, S3InputMode: output.S3InputMode !== undefined && output.S3InputMode !== null ? output.S3InputMode : undefined, + StartTimeOffset: + output.StartTimeOffset !== undefined && output.StartTimeOffset !== null ? output.StartTimeOffset : undefined, } as any; }; @@ -23376,6 +27057,39 @@ const deserializeAws_json1_1FlowDefinitionTaskKeywords = (output: any, context: return (output || []).map((entry: any) => entry); }; +const deserializeAws_json1_1GetDeviceFleetReportResponse = ( + output: any, + context: __SerdeContext +): GetDeviceFleetReportResponse => { + return { + AgentVersions: + output.AgentVersions !== undefined && output.AgentVersions !== null + ? deserializeAws_json1_1AgentVersions(output.AgentVersions, context) + : undefined, + Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined, + DeviceFleetArn: + output.DeviceFleetArn !== undefined && output.DeviceFleetArn !== null ? output.DeviceFleetArn : undefined, + DeviceFleetName: + output.DeviceFleetName !== undefined && output.DeviceFleetName !== null ? output.DeviceFleetName : undefined, + DeviceStats: + output.DeviceStats !== undefined && output.DeviceStats !== null + ? deserializeAws_json1_1DeviceStats(output.DeviceStats, context) + : undefined, + ModelStats: + output.ModelStats !== undefined && output.ModelStats !== null + ? deserializeAws_json1_1EdgeModelStats(output.ModelStats, context) + : undefined, + OutputConfig: + output.OutputConfig !== undefined && output.OutputConfig !== null + ? deserializeAws_json1_1EdgeOutputConfig(output.OutputConfig, context) + : undefined, + ReportGenerated: + output.ReportGenerated !== undefined && output.ReportGenerated !== null + ? new Date(Math.round(output.ReportGenerated * 1000)) + : undefined, + } as any; +}; + const deserializeAws_json1_1GetModelPackageGroupPolicyOutput = ( output: any, context: __SerdeContext @@ -24409,6 +28123,42 @@ const deserializeAws_json1_1ListContextsResponse = (output: any, context: __Serd } as any; }; +const deserializeAws_json1_1ListDataQualityJobDefinitionsResponse = ( + output: any, + context: __SerdeContext +): ListDataQualityJobDefinitionsResponse => { + return { + JobDefinitionSummaries: + output.JobDefinitionSummaries !== undefined && output.JobDefinitionSummaries !== null + ? deserializeAws_json1_1MonitoringJobDefinitionSummaryList(output.JobDefinitionSummaries, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListDeviceFleetsResponse = ( + output: any, + context: __SerdeContext +): ListDeviceFleetsResponse => { + return { + DeviceFleetSummaries: + output.DeviceFleetSummaries !== undefined && output.DeviceFleetSummaries !== null + ? deserializeAws_json1_1DeviceFleetSummaries(output.DeviceFleetSummaries, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListDevicesResponse = (output: any, context: __SerdeContext): ListDevicesResponse => { + return { + DeviceSummaries: + output.DeviceSummaries !== undefined && output.DeviceSummaries !== null + ? deserializeAws_json1_1DeviceSummaries(output.DeviceSummaries, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + const deserializeAws_json1_1ListDomainsResponse = (output: any, context: __SerdeContext): ListDomainsResponse => { return { Domains: @@ -24419,6 +28169,19 @@ const deserializeAws_json1_1ListDomainsResponse = (output: any, context: __Serde } as any; }; +const deserializeAws_json1_1ListEdgePackagingJobsResponse = ( + output: any, + context: __SerdeContext +): ListEdgePackagingJobsResponse => { + return { + EdgePackagingJobSummaries: + output.EdgePackagingJobSummaries !== undefined && output.EdgePackagingJobSummaries !== null + ? deserializeAws_json1_1EdgePackagingJobSummaries(output.EdgePackagingJobSummaries, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + const deserializeAws_json1_1ListEndpointConfigsOutput = ( output: any, context: __SerdeContext @@ -24530,27 +28293,53 @@ const deserializeAws_json1_1ListImageVersionsResponse = ( } as any; }; -const deserializeAws_json1_1ListLabelingJobsForWorkteamResponse = ( +const deserializeAws_json1_1ListLabelingJobsForWorkteamResponse = ( + output: any, + context: __SerdeContext +): ListLabelingJobsForWorkteamResponse => { + return { + LabelingJobSummaryList: + output.LabelingJobSummaryList !== undefined && output.LabelingJobSummaryList !== null + ? deserializeAws_json1_1LabelingJobForWorkteamSummaryList(output.LabelingJobSummaryList, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListLabelingJobsResponse = ( + output: any, + context: __SerdeContext +): ListLabelingJobsResponse => { + return { + LabelingJobSummaryList: + output.LabelingJobSummaryList !== undefined && output.LabelingJobSummaryList !== null + ? deserializeAws_json1_1LabelingJobSummaryList(output.LabelingJobSummaryList, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + +const deserializeAws_json1_1ListModelBiasJobDefinitionsResponse = ( output: any, context: __SerdeContext -): ListLabelingJobsForWorkteamResponse => { +): ListModelBiasJobDefinitionsResponse => { return { - LabelingJobSummaryList: - output.LabelingJobSummaryList !== undefined && output.LabelingJobSummaryList !== null - ? deserializeAws_json1_1LabelingJobForWorkteamSummaryList(output.LabelingJobSummaryList, context) + JobDefinitionSummaries: + output.JobDefinitionSummaries !== undefined && output.JobDefinitionSummaries !== null + ? deserializeAws_json1_1MonitoringJobDefinitionSummaryList(output.JobDefinitionSummaries, context) : undefined, NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, } as any; }; -const deserializeAws_json1_1ListLabelingJobsResponse = ( +const deserializeAws_json1_1ListModelExplainabilityJobDefinitionsResponse = ( output: any, context: __SerdeContext -): ListLabelingJobsResponse => { +): ListModelExplainabilityJobDefinitionsResponse => { return { - LabelingJobSummaryList: - output.LabelingJobSummaryList !== undefined && output.LabelingJobSummaryList !== null - ? deserializeAws_json1_1LabelingJobSummaryList(output.LabelingJobSummaryList, context) + JobDefinitionSummaries: + output.JobDefinitionSummaries !== undefined && output.JobDefinitionSummaries !== null + ? deserializeAws_json1_1MonitoringJobDefinitionSummaryList(output.JobDefinitionSummaries, context) : undefined, NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, } as any; @@ -24582,6 +28371,19 @@ const deserializeAws_json1_1ListModelPackagesOutput = ( } as any; }; +const deserializeAws_json1_1ListModelQualityJobDefinitionsResponse = ( + output: any, + context: __SerdeContext +): ListModelQualityJobDefinitionsResponse => { + return { + JobDefinitionSummaries: + output.JobDefinitionSummaries !== undefined && output.JobDefinitionSummaries !== null + ? deserializeAws_json1_1MonitoringJobDefinitionSummaryList(output.JobDefinitionSummaries, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + } as any; +}; + const deserializeAws_json1_1ListModelsOutput = (output: any, context: __SerdeContext): ListModelsOutput => { return { Models: @@ -24901,6 +28703,49 @@ const deserializeAws_json1_1ModelArtifacts = (output: any, context: __SerdeConte } as any; }; +const deserializeAws_json1_1ModelBiasAppSpecification = ( + output: any, + context: __SerdeContext +): ModelBiasAppSpecification => { + return { + ConfigUri: output.ConfigUri !== undefined && output.ConfigUri !== null ? output.ConfigUri : undefined, + Environment: + output.Environment !== undefined && output.Environment !== null + ? deserializeAws_json1_1MonitoringEnvironmentMap(output.Environment, context) + : undefined, + ImageUri: output.ImageUri !== undefined && output.ImageUri !== null ? output.ImageUri : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelBiasBaselineConfig = ( + output: any, + context: __SerdeContext +): ModelBiasBaselineConfig => { + return { + BaseliningJobName: + output.BaseliningJobName !== undefined && output.BaseliningJobName !== null + ? output.BaseliningJobName + : undefined, + ConstraintsResource: + output.ConstraintsResource !== undefined && output.ConstraintsResource !== null + ? deserializeAws_json1_1MonitoringConstraintsResource(output.ConstraintsResource, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelBiasJobInput = (output: any, context: __SerdeContext): ModelBiasJobInput => { + return { + EndpointInput: + output.EndpointInput !== undefined && output.EndpointInput !== null + ? deserializeAws_json1_1EndpointInput(output.EndpointInput, context) + : undefined, + GroundTruthS3Input: + output.GroundTruthS3Input !== undefined && output.GroundTruthS3Input !== null + ? deserializeAws_json1_1MonitoringGroundTruthS3Input(output.GroundTruthS3Input, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ModelClientConfig = (output: any, context: __SerdeContext): ModelClientConfig => { return { InvocationsMaxRetries: @@ -24934,6 +28779,48 @@ const deserializeAws_json1_1ModelDigests = (output: any, context: __SerdeContext } as any; }; +const deserializeAws_json1_1ModelExplainabilityAppSpecification = ( + output: any, + context: __SerdeContext +): ModelExplainabilityAppSpecification => { + return { + ConfigUri: output.ConfigUri !== undefined && output.ConfigUri !== null ? output.ConfigUri : undefined, + Environment: + output.Environment !== undefined && output.Environment !== null + ? deserializeAws_json1_1MonitoringEnvironmentMap(output.Environment, context) + : undefined, + ImageUri: output.ImageUri !== undefined && output.ImageUri !== null ? output.ImageUri : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelExplainabilityBaselineConfig = ( + output: any, + context: __SerdeContext +): ModelExplainabilityBaselineConfig => { + return { + BaseliningJobName: + output.BaseliningJobName !== undefined && output.BaseliningJobName !== null + ? output.BaseliningJobName + : undefined, + ConstraintsResource: + output.ConstraintsResource !== undefined && output.ConstraintsResource !== null + ? deserializeAws_json1_1MonitoringConstraintsResource(output.ConstraintsResource, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelExplainabilityJobInput = ( + output: any, + context: __SerdeContext +): ModelExplainabilityJobInput => { + return { + EndpointInput: + output.EndpointInput !== undefined && output.EndpointInput !== null + ? deserializeAws_json1_1EndpointInput(output.EndpointInput, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ModelMetrics = (output: any, context: __SerdeContext): ModelMetrics => { return { Bias: @@ -25241,6 +29128,65 @@ const deserializeAws_json1_1ModelQuality = (output: any, context: __SerdeContext } as any; }; +const deserializeAws_json1_1ModelQualityAppSpecification = ( + output: any, + context: __SerdeContext +): ModelQualityAppSpecification => { + return { + ContainerArguments: + output.ContainerArguments !== undefined && output.ContainerArguments !== null + ? deserializeAws_json1_1MonitoringContainerArguments(output.ContainerArguments, context) + : undefined, + ContainerEntrypoint: + output.ContainerEntrypoint !== undefined && output.ContainerEntrypoint !== null + ? deserializeAws_json1_1ContainerEntrypoint(output.ContainerEntrypoint, context) + : undefined, + Environment: + output.Environment !== undefined && output.Environment !== null + ? deserializeAws_json1_1MonitoringEnvironmentMap(output.Environment, context) + : undefined, + ImageUri: output.ImageUri !== undefined && output.ImageUri !== null ? output.ImageUri : undefined, + PostAnalyticsProcessorSourceUri: + output.PostAnalyticsProcessorSourceUri !== undefined && output.PostAnalyticsProcessorSourceUri !== null + ? output.PostAnalyticsProcessorSourceUri + : undefined, + ProblemType: output.ProblemType !== undefined && output.ProblemType !== null ? output.ProblemType : undefined, + RecordPreprocessorSourceUri: + output.RecordPreprocessorSourceUri !== undefined && output.RecordPreprocessorSourceUri !== null + ? output.RecordPreprocessorSourceUri + : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelQualityBaselineConfig = ( + output: any, + context: __SerdeContext +): ModelQualityBaselineConfig => { + return { + BaseliningJobName: + output.BaseliningJobName !== undefined && output.BaseliningJobName !== null + ? output.BaseliningJobName + : undefined, + ConstraintsResource: + output.ConstraintsResource !== undefined && output.ConstraintsResource !== null + ? deserializeAws_json1_1MonitoringConstraintsResource(output.ConstraintsResource, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1ModelQualityJobInput = (output: any, context: __SerdeContext): ModelQualityJobInput => { + return { + EndpointInput: + output.EndpointInput !== undefined && output.EndpointInput !== null + ? deserializeAws_json1_1EndpointInput(output.EndpointInput, context) + : undefined, + GroundTruthS3Input: + output.GroundTruthS3Input !== undefined && output.GroundTruthS3Input !== null + ? deserializeAws_json1_1MonitoringGroundTruthS3Input(output.GroundTruthS3Input, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ModelStepMetadata = (output: any, context: __SerdeContext): ModelStepMetadata => { return { Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined, @@ -25292,6 +29238,10 @@ const deserializeAws_json1_1MonitoringBaselineConfig = ( context: __SerdeContext ): MonitoringBaselineConfig => { return { + BaseliningJobName: + output.BaseliningJobName !== undefined && output.BaseliningJobName !== null + ? output.BaseliningJobName + : undefined, ConstraintsResource: output.ConstraintsResource !== undefined && output.ConstraintsResource !== null ? deserializeAws_json1_1MonitoringConstraintsResource(output.ConstraintsResource, context) @@ -25364,10 +29314,16 @@ const deserializeAws_json1_1MonitoringExecutionSummary = ( output.MonitoringExecutionStatus !== undefined && output.MonitoringExecutionStatus !== null ? output.MonitoringExecutionStatus : undefined, + MonitoringJobDefinitionName: + output.MonitoringJobDefinitionName !== undefined && output.MonitoringJobDefinitionName !== null + ? output.MonitoringJobDefinitionName + : undefined, MonitoringScheduleName: output.MonitoringScheduleName !== undefined && output.MonitoringScheduleName !== null ? output.MonitoringScheduleName : undefined, + MonitoringType: + output.MonitoringType !== undefined && output.MonitoringType !== null ? output.MonitoringType : undefined, ProcessingJobArn: output.ProcessingJobArn !== undefined && output.ProcessingJobArn !== null ? output.ProcessingJobArn : undefined, ScheduledTime: @@ -25384,6 +29340,15 @@ const deserializeAws_json1_1MonitoringExecutionSummaryList = ( return (output || []).map((entry: any) => deserializeAws_json1_1MonitoringExecutionSummary(entry, context)); }; +const deserializeAws_json1_1MonitoringGroundTruthS3Input = ( + output: any, + context: __SerdeContext +): MonitoringGroundTruthS3Input => { + return { + S3Uri: output.S3Uri !== undefined && output.S3Uri !== null ? output.S3Uri : undefined, + } as any; +}; + const deserializeAws_json1_1MonitoringInput = (output: any, context: __SerdeContext): MonitoringInput => { return { EndpointInput: @@ -25438,6 +29403,55 @@ const deserializeAws_json1_1MonitoringJobDefinition = ( } as any; }; +const deserializeAws_json1_1MonitoringJobDefinitionSummary = ( + output: any, + context: __SerdeContext +): MonitoringJobDefinitionSummary => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? new Date(Math.round(output.CreationTime * 1000)) + : undefined, + EndpointName: output.EndpointName !== undefined && output.EndpointName !== null ? output.EndpointName : undefined, + MonitoringJobDefinitionArn: + output.MonitoringJobDefinitionArn !== undefined && output.MonitoringJobDefinitionArn !== null + ? output.MonitoringJobDefinitionArn + : undefined, + MonitoringJobDefinitionName: + output.MonitoringJobDefinitionName !== undefined && output.MonitoringJobDefinitionName !== null + ? output.MonitoringJobDefinitionName + : undefined, + } as any; +}; + +const deserializeAws_json1_1MonitoringJobDefinitionSummaryList = ( + output: any, + context: __SerdeContext +): MonitoringJobDefinitionSummary[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1MonitoringJobDefinitionSummary(entry, context)); +}; + +const deserializeAws_json1_1MonitoringNetworkConfig = ( + output: any, + context: __SerdeContext +): MonitoringNetworkConfig => { + return { + EnableInterContainerTrafficEncryption: + output.EnableInterContainerTrafficEncryption !== undefined && + output.EnableInterContainerTrafficEncryption !== null + ? output.EnableInterContainerTrafficEncryption + : undefined, + EnableNetworkIsolation: + output.EnableNetworkIsolation !== undefined && output.EnableNetworkIsolation !== null + ? output.EnableNetworkIsolation + : undefined, + VpcConfig: + output.VpcConfig !== undefined && output.VpcConfig !== null + ? deserializeAws_json1_1VpcConfig(output.VpcConfig, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1MonitoringOutput = (output: any, context: __SerdeContext): MonitoringOutput => { return { S3Output: @@ -25511,6 +29525,8 @@ const deserializeAws_json1_1MonitoringSchedule = (output: any, context: __SerdeC output.MonitoringScheduleStatus !== undefined && output.MonitoringScheduleStatus !== null ? output.MonitoringScheduleStatus : undefined, + MonitoringType: + output.MonitoringType !== undefined && output.MonitoringType !== null ? output.MonitoringType : undefined, Tags: output.Tags !== undefined && output.Tags !== null ? deserializeAws_json1_1TagList(output.Tags, context) @@ -25527,6 +29543,12 @@ const deserializeAws_json1_1MonitoringScheduleConfig = ( output.MonitoringJobDefinition !== undefined && output.MonitoringJobDefinition !== null ? deserializeAws_json1_1MonitoringJobDefinition(output.MonitoringJobDefinition, context) : undefined, + MonitoringJobDefinitionName: + output.MonitoringJobDefinitionName !== undefined && output.MonitoringJobDefinitionName !== null + ? output.MonitoringJobDefinitionName + : undefined, + MonitoringType: + output.MonitoringType !== undefined && output.MonitoringType !== null ? output.MonitoringType : undefined, ScheduleConfig: output.ScheduleConfig !== undefined && output.ScheduleConfig !== null ? deserializeAws_json1_1ScheduleConfig(output.ScheduleConfig, context) @@ -25552,6 +29574,10 @@ const deserializeAws_json1_1MonitoringScheduleSummary = ( output.LastModifiedTime !== undefined && output.LastModifiedTime !== null ? new Date(Math.round(output.LastModifiedTime * 1000)) : undefined, + MonitoringJobDefinitionName: + output.MonitoringJobDefinitionName !== undefined && output.MonitoringJobDefinitionName !== null + ? output.MonitoringJobDefinitionName + : undefined, MonitoringScheduleArn: output.MonitoringScheduleArn !== undefined && output.MonitoringScheduleArn !== null ? output.MonitoringScheduleArn @@ -25564,6 +29590,8 @@ const deserializeAws_json1_1MonitoringScheduleSummary = ( output.MonitoringScheduleStatus !== undefined && output.MonitoringScheduleStatus !== null ? output.MonitoringScheduleStatus : undefined, + MonitoringType: + output.MonitoringType !== undefined && output.MonitoringType !== null ? output.MonitoringType : undefined, } as any; }; @@ -26449,6 +30477,95 @@ const deserializeAws_json1_1ProductListings = (output: any, context: __SerdeCont return (output || []).map((entry: any) => entry); }; +const deserializeAws_json1_1ProfilerConfig = (output: any, context: __SerdeContext): ProfilerConfig => { + return { + ProfilingIntervalInMilliseconds: + output.ProfilingIntervalInMilliseconds !== undefined && output.ProfilingIntervalInMilliseconds !== null + ? output.ProfilingIntervalInMilliseconds + : undefined, + ProfilingParameters: + output.ProfilingParameters !== undefined && output.ProfilingParameters !== null + ? deserializeAws_json1_1ProfilingParameters(output.ProfilingParameters, context) + : undefined, + S3OutputPath: output.S3OutputPath !== undefined && output.S3OutputPath !== null ? output.S3OutputPath : undefined, + } as any; +}; + +const deserializeAws_json1_1ProfilerRuleConfiguration = ( + output: any, + context: __SerdeContext +): ProfilerRuleConfiguration => { + return { + InstanceType: output.InstanceType !== undefined && output.InstanceType !== null ? output.InstanceType : undefined, + LocalPath: output.LocalPath !== undefined && output.LocalPath !== null ? output.LocalPath : undefined, + RuleConfigurationName: + output.RuleConfigurationName !== undefined && output.RuleConfigurationName !== null + ? output.RuleConfigurationName + : undefined, + RuleEvaluatorImage: + output.RuleEvaluatorImage !== undefined && output.RuleEvaluatorImage !== null + ? output.RuleEvaluatorImage + : undefined, + RuleParameters: + output.RuleParameters !== undefined && output.RuleParameters !== null + ? deserializeAws_json1_1RuleParameters(output.RuleParameters, context) + : undefined, + S3OutputPath: output.S3OutputPath !== undefined && output.S3OutputPath !== null ? output.S3OutputPath : undefined, + VolumeSizeInGB: + output.VolumeSizeInGB !== undefined && output.VolumeSizeInGB !== null ? output.VolumeSizeInGB : undefined, + } as any; +}; + +const deserializeAws_json1_1ProfilerRuleConfigurations = ( + output: any, + context: __SerdeContext +): ProfilerRuleConfiguration[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ProfilerRuleConfiguration(entry, context)); +}; + +const deserializeAws_json1_1ProfilerRuleEvaluationStatus = ( + output: any, + context: __SerdeContext +): ProfilerRuleEvaluationStatus => { + return { + LastModifiedTime: + output.LastModifiedTime !== undefined && output.LastModifiedTime !== null + ? new Date(Math.round(output.LastModifiedTime * 1000)) + : undefined, + RuleConfigurationName: + output.RuleConfigurationName !== undefined && output.RuleConfigurationName !== null + ? output.RuleConfigurationName + : undefined, + RuleEvaluationJobArn: + output.RuleEvaluationJobArn !== undefined && output.RuleEvaluationJobArn !== null + ? output.RuleEvaluationJobArn + : undefined, + RuleEvaluationStatus: + output.RuleEvaluationStatus !== undefined && output.RuleEvaluationStatus !== null + ? output.RuleEvaluationStatus + : undefined, + StatusDetails: + output.StatusDetails !== undefined && output.StatusDetails !== null ? output.StatusDetails : undefined, + } as any; +}; + +const deserializeAws_json1_1ProfilerRuleEvaluationStatuses = ( + output: any, + context: __SerdeContext +): ProfilerRuleEvaluationStatus[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1ProfilerRuleEvaluationStatus(entry, context)); +}; + +const deserializeAws_json1_1ProfilingParameters = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce( + (acc: { [key: string]: string }, [key, value]: [string, any]) => ({ + ...acc, + [key]: value, + }), + {} + ); +}; + const deserializeAws_json1_1ProjectSummary = (output: any, context: __SerdeContext): ProjectSummary => { return { CreationTime: @@ -27957,6 +32074,16 @@ const deserializeAws_json1_1UpdatePipelineResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1UpdateTrainingJobResponse = ( + output: any, + context: __SerdeContext +): UpdateTrainingJobResponse => { + return { + TrainingJobArn: + output.TrainingJobArn !== undefined && output.TrainingJobArn !== null ? output.TrainingJobArn : undefined, + } as any; +}; + const deserializeAws_json1_1UpdateTrialComponentResponse = ( output: any, context: __SerdeContext diff --git a/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistry.ts b/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistry.ts index c05ae7d59daab..342624861dc73 100644 --- a/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistry.ts +++ b/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistry.ts @@ -69,6 +69,17 @@ import { ListAttributeGroupsCommandInput, ListAttributeGroupsCommandOutput, } from "./commands/ListAttributeGroupsCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; import { UpdateApplicationCommand, UpdateApplicationCommandInput, @@ -538,6 +549,97 @@ export class ServiceCatalogAppRegistry extends ServiceCatalogAppRegistryClient { } } + /** + *

                          Lists all of the tags on the resource.

                          + */ + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTagsForResourceCommandOutput) => void), + cb?: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): Promise | void { + const command = new ListTagsForResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                          Assigns one or more tags (key-value pairs) to the specified resource.

                          + *

                          Each tag consists of a key and an optional value. If a tag with the same key is already associated with the resource, this action updates its value.

                          + */ + public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + public tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + public tagResource( + args: TagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: TagResourceCommandOutput) => void), + cb?: (err: any, data?: TagResourceCommandOutput) => void + ): Promise | void { + const command = new TagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                          Removes tags from a resource.

                          + */ + public untagResource( + args: UntagResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public untagResource( + args: UntagResourceCommandInput, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UntagResourceCommandOutput) => void), + cb?: (err: any, data?: UntagResourceCommandOutput) => void + ): Promise | void { + const command = new UntagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Updates an existing application with new attributes.

                          */ diff --git a/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistryClient.ts b/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistryClient.ts index 3918b08f4a8ea..5e8a543199cc8 100644 --- a/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistryClient.ts +++ b/clients/client-service-catalog-appregistry/ServiceCatalogAppRegistryClient.ts @@ -36,6 +36,12 @@ import { ListAttributeGroupsCommandInput, ListAttributeGroupsCommandOutput, } from "./commands/ListAttributeGroupsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateApplicationCommandInput, UpdateApplicationCommandOutput } from "./commands/UpdateApplicationCommand"; import { UpdateAttributeGroupCommandInput, @@ -105,6 +111,9 @@ export type ServiceInputTypes = | ListAssociatedAttributeGroupsCommandInput | ListAssociatedResourcesCommandInput | ListAttributeGroupsCommandInput + | ListTagsForResourceCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput | UpdateApplicationCommandInput | UpdateAttributeGroupCommandInput; @@ -123,6 +132,9 @@ export type ServiceOutputTypes = | ListAssociatedAttributeGroupsCommandOutput | ListAssociatedResourcesCommandOutput | ListAttributeGroupsCommandOutput + | ListTagsForResourceCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput | UpdateApplicationCommandOutput | UpdateAttributeGroupCommandOutput; diff --git a/clients/client-service-catalog-appregistry/commands/ListTagsForResourceCommand.ts b/clients/client-service-catalog-appregistry/commands/ListTagsForResourceCommand.ts new file mode 100644 index 0000000000000..f9779f049f23d --- /dev/null +++ b/clients/client-service-catalog-appregistry/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,92 @@ +import { + ServiceCatalogAppRegistryClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ServiceCatalogAppRegistryClient"; +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListTagsForResourceCommand, + serializeAws_restJson1ListTagsForResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListTagsForResourceCommandInput = ListTagsForResourceRequest; +export type ListTagsForResourceCommandOutput = ListTagsForResourceResponse & __MetadataBearer; + +/** + *

                          Lists all of the tags on the resource.

                          + */ +export class ListTagsForResourceCommand extends $Command< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + ServiceCatalogAppRegistryClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTagsForResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ServiceCatalogAppRegistryClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ServiceCatalogAppRegistryClient"; + const commandName = "ListTagsForResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTagsForResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTagsForResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTagsForResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListTagsForResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListTagsForResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-service-catalog-appregistry/commands/TagResourceCommand.ts b/clients/client-service-catalog-appregistry/commands/TagResourceCommand.ts new file mode 100644 index 0000000000000..7c38bcd4c10fe --- /dev/null +++ b/clients/client-service-catalog-appregistry/commands/TagResourceCommand.ts @@ -0,0 +1,93 @@ +import { + ServiceCatalogAppRegistryClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ServiceCatalogAppRegistryClient"; +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1TagResourceCommand, + serializeAws_restJson1TagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type TagResourceCommandInput = TagResourceRequest; +export type TagResourceCommandOutput = TagResourceResponse & __MetadataBearer; + +/** + *

                          Assigns one or more tags (key-value pairs) to the specified resource.

                          + *

                          Each tag consists of a key and an optional value. If a tag with the same key is already associated with the resource, this action updates its value.

                          + */ +export class TagResourceCommand extends $Command< + TagResourceCommandInput, + TagResourceCommandOutput, + ServiceCatalogAppRegistryClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: TagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ServiceCatalogAppRegistryClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ServiceCatalogAppRegistryClient"; + const commandName = "TagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: TagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: TagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: TagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1TagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1TagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-service-catalog-appregistry/commands/UntagResourceCommand.ts b/clients/client-service-catalog-appregistry/commands/UntagResourceCommand.ts new file mode 100644 index 0000000000000..ecd1f4ac87cb6 --- /dev/null +++ b/clients/client-service-catalog-appregistry/commands/UntagResourceCommand.ts @@ -0,0 +1,92 @@ +import { + ServiceCatalogAppRegistryClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ServiceCatalogAppRegistryClient"; +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UntagResourceCommand, + serializeAws_restJson1UntagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UntagResourceCommandInput = UntagResourceRequest; +export type UntagResourceCommandOutput = UntagResourceResponse & __MetadataBearer; + +/** + *

                          Removes tags from a resource.

                          + */ +export class UntagResourceCommand extends $Command< + UntagResourceCommandInput, + UntagResourceCommandOutput, + ServiceCatalogAppRegistryClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UntagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ServiceCatalogAppRegistryClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ServiceCatalogAppRegistryClient"; + const commandName = "UntagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UntagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: UntagResourceResponse.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UntagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UntagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UntagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-service-catalog-appregistry/index.ts b/clients/client-service-catalog-appregistry/index.ts index 3b5aea4dd8c8d..76e4c182179d6 100644 --- a/clients/client-service-catalog-appregistry/index.ts +++ b/clients/client-service-catalog-appregistry/index.ts @@ -18,6 +18,9 @@ export * from "./commands/ListAssociatedResourcesCommand"; export * from "./pagination/ListAssociatedResourcesPaginator"; export * from "./commands/ListAttributeGroupsCommand"; export * from "./pagination/ListAttributeGroupsPaginator"; +export * from "./commands/ListTagsForResourceCommand"; +export * from "./commands/TagResourceCommand"; +export * from "./commands/UntagResourceCommand"; export * from "./commands/UpdateApplicationCommand"; export * from "./commands/UpdateAttributeGroupCommand"; export * from "./pagination/Interfaces"; diff --git a/clients/client-service-catalog-appregistry/models/models_0.ts b/clients/client-service-catalog-appregistry/models/models_0.ts index 1d9916866a5fe..7bb9d61ec1abe 100644 --- a/clients/client-service-catalog-appregistry/models/models_0.ts +++ b/clients/client-service-catalog-appregistry/models/models_0.ts @@ -852,6 +852,84 @@ export namespace ListAttributeGroupsResponse { }); } +export interface ListTagsForResourceRequest { + /** + *

                          The Amazon resource name (ARN) that specifies the resource.

                          + */ + resourceArn: string | undefined; +} + +export namespace ListTagsForResourceRequest { + export const filterSensitiveLog = (obj: ListTagsForResourceRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceResponse { + /** + *

                          The tags on the resource.

                          + */ + tags?: { [key: string]: string }; +} + +export namespace ListTagsForResourceResponse { + export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ + ...obj, + }); +} + +export interface TagResourceRequest { + /** + *

                          The Amazon resource name (ARN) that specifies the resource.

                          + */ + resourceArn: string | undefined; + + /** + *

                          The new or modified tags for the resource.

                          + */ + tags: { [key: string]: string } | undefined; +} + +export namespace TagResourceRequest { + export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceResponse {} + +export namespace TagResourceResponse { + export const filterSensitiveLog = (obj: TagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UntagResourceRequest { + /** + *

                          The Amazon resource name (ARN) that specifies the resource.

                          + */ + resourceArn: string | undefined; + + /** + *

                          A list of the tag keys to remove from the specified resource.

                          + */ + tagKeys: string[] | undefined; +} + +export namespace UntagResourceRequest { + export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ + ...obj, + }); +} + +export interface UntagResourceResponse {} + +export namespace UntagResourceResponse { + export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({ + ...obj, + }); +} + export interface UpdateApplicationRequest { /** *

                          The name or ID of the application that will be updated.

                          diff --git a/clients/client-service-catalog-appregistry/protocols/Aws_restJson1.ts b/clients/client-service-catalog-appregistry/protocols/Aws_restJson1.ts index c6fcd63e187c7..1e0a1f94d2c11 100644 --- a/clients/client-service-catalog-appregistry/protocols/Aws_restJson1.ts +++ b/clients/client-service-catalog-appregistry/protocols/Aws_restJson1.ts @@ -36,6 +36,12 @@ import { ListAttributeGroupsCommandInput, ListAttributeGroupsCommandOutput, } from "../commands/ListAttributeGroupsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateApplicationCommandInput, UpdateApplicationCommandOutput } from "../commands/UpdateApplicationCommand"; import { UpdateAttributeGroupCommandInput, @@ -537,6 +543,103 @@ export const serializeAws_restJson1ListAttributeGroupsCommand = async ( }); }; +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "application/json", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.tags !== undefined && { tags: serializeAws_restJson1Tags(input.tags, context) }), + }); + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: any = { + "Content-Type": "", + }; + let resolvedPath = "/tags/{resourceArn}"; + if (input.resourceArn !== undefined) { + const labelValue: string = input.resourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: resourceArn."); + } + resolvedPath = resolvedPath.replace("{resourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: resourceArn."); + } + const query: any = { + ...(input.tagKeys !== undefined && { tagKeys: (input.tagKeys || []).map((_entry) => _entry) }), + }; + let body: any; + const { hostname, protocol = "https", port } = await context.endpoint(); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + export const serializeAws_restJson1UpdateApplicationCommand = async ( input: UpdateApplicationCommandInput, context: __SerdeContext @@ -1688,6 +1791,211 @@ const deserializeAws_restJson1ListAttributeGroupsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + tags: undefined, + }; + const data: any = await parseBody(output.body, context); + if (data.tags !== undefined && data.tags !== null) { + contents.tags = deserializeAws_restJson1Tags(data.tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.servicecatalogappregistry#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.servicecatalogappregistry#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.servicecatalogappregistry#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.servicecatalogappregistry#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.servicecatalogappregistry#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.servicecatalogappregistry#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1UpdateApplicationCommand = async ( output: __HttpResponse, context: __SerdeContext diff --git a/clients/client-ssm/SSM.ts b/clients/client-ssm/SSM.ts index a2c95f052d1f4..46551ce3458ee 100644 --- a/clients/client-ssm/SSM.ts +++ b/clients/client-ssm/SSM.ts @@ -44,6 +44,11 @@ import { CreateOpsItemCommandInput, CreateOpsItemCommandOutput, } from "./commands/CreateOpsItemCommand"; +import { + CreateOpsMetadataCommand, + CreateOpsMetadataCommandInput, + CreateOpsMetadataCommandOutput, +} from "./commands/CreateOpsMetadataCommand"; import { CreatePatchBaselineCommand, CreatePatchBaselineCommandInput, @@ -79,6 +84,11 @@ import { DeleteMaintenanceWindowCommandInput, DeleteMaintenanceWindowCommandOutput, } from "./commands/DeleteMaintenanceWindowCommand"; +import { + DeleteOpsMetadataCommand, + DeleteOpsMetadataCommandInput, + DeleteOpsMetadataCommandOutput, +} from "./commands/DeleteOpsMetadataCommand"; import { DeleteParameterCommand, DeleteParameterCommandInput, @@ -346,6 +356,11 @@ import { GetMaintenanceWindowTaskCommandOutput, } from "./commands/GetMaintenanceWindowTaskCommand"; import { GetOpsItemCommand, GetOpsItemCommandInput, GetOpsItemCommandOutput } from "./commands/GetOpsItemCommand"; +import { + GetOpsMetadataCommand, + GetOpsMetadataCommandInput, + GetOpsMetadataCommandOutput, +} from "./commands/GetOpsMetadataCommand"; import { GetOpsSummaryCommand, GetOpsSummaryCommandInput, @@ -436,6 +451,11 @@ import { ListInventoryEntriesCommandInput, ListInventoryEntriesCommandOutput, } from "./commands/ListInventoryEntriesCommand"; +import { + ListOpsMetadataCommand, + ListOpsMetadataCommandInput, + ListOpsMetadataCommandOutput, +} from "./commands/ListOpsMetadataCommand"; import { ListResourceComplianceSummariesCommand, ListResourceComplianceSummariesCommandInput, @@ -582,6 +602,11 @@ import { UpdateOpsItemCommandInput, UpdateOpsItemCommandOutput, } from "./commands/UpdateOpsItemCommand"; +import { + UpdateOpsMetadataCommand, + UpdateOpsMetadataCommandInput, + UpdateOpsMetadataCommandOutput, +} from "./commands/UpdateOpsMetadataCommand"; import { UpdatePatchBaselineCommand, UpdatePatchBaselineCommandInput, @@ -962,6 +987,39 @@ export class SSM extends SSMClient { } } + /** + *

                          If you create a new application in AppManager, Systems Manager calls this API action to specify + * information about the new application, including the application type.

                          + */ + public createOpsMetadata( + args: CreateOpsMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createOpsMetadata( + args: CreateOpsMetadataCommandInput, + cb: (err: any, data?: CreateOpsMetadataCommandOutput) => void + ): void; + public createOpsMetadata( + args: CreateOpsMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateOpsMetadataCommandOutput) => void + ): void; + public createOpsMetadata( + args: CreateOpsMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateOpsMetadataCommandOutput) => void), + cb?: (err: any, data?: CreateOpsMetadataCommandOutput) => void + ): Promise | void { + const command = new CreateOpsMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Creates a patch baseline.

                          * @@ -1221,6 +1279,38 @@ export class SSM extends SSMClient { } } + /** + *

                          Delete OpsMetadata related to an application.

                          + */ + public deleteOpsMetadata( + args: DeleteOpsMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteOpsMetadata( + args: DeleteOpsMetadataCommandInput, + cb: (err: any, data?: DeleteOpsMetadataCommandOutput) => void + ): void; + public deleteOpsMetadata( + args: DeleteOpsMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteOpsMetadataCommandOutput) => void + ): void; + public deleteOpsMetadata( + args: DeleteOpsMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteOpsMetadataCommandOutput) => void), + cb?: (err: any, data?: DeleteOpsMetadataCommandOutput) => void + ): Promise | void { + const command = new DeleteOpsMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Delete a parameter from the system.

                          */ @@ -2515,6 +2605,10 @@ export class SSM extends SSMClient { *
                          *

                          Valid properties: PRODUCT, PRIORITY

                          *
                          + *
                          MACOS
                          + *
                          + *

                          Valid properties: PRODUCT, CLASSIFICATION

                          + *
                          *
                          ORACLE_LINUX
                          *
                          *

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          @@ -3092,6 +3186,38 @@ export class SSM extends SSMClient { } } + /** + *

                          View operational metadata related to an application in AppManager.

                          + */ + public getOpsMetadata( + args: GetOpsMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getOpsMetadata( + args: GetOpsMetadataCommandInput, + cb: (err: any, data?: GetOpsMetadataCommandOutput) => void + ): void; + public getOpsMetadata( + args: GetOpsMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetOpsMetadataCommandOutput) => void + ): void; + public getOpsMetadata( + args: GetOpsMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetOpsMetadataCommandOutput) => void), + cb?: (err: any, data?: GetOpsMetadataCommandOutput) => void + ): Promise | void { + const command = new GetOpsMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          View a summary of OpsItems based on specified filters and aggregators.

                          */ @@ -3730,6 +3856,39 @@ export class SSM extends SSMClient { } } + /** + *

                          Systems Manager calls this API action when displaying all AppManager OpsMetadata objects or + * blobs.

                          + */ + public listOpsMetadata( + args: ListOpsMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listOpsMetadata( + args: ListOpsMetadataCommandInput, + cb: (err: any, data?: ListOpsMetadataCommandOutput) => void + ): void; + public listOpsMetadata( + args: ListOpsMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListOpsMetadataCommandOutput) => void + ): void; + public listOpsMetadata( + args: ListOpsMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListOpsMetadataCommandOutput) => void), + cb?: (err: any, data?: ListOpsMetadataCommandOutput) => void + ): Promise | void { + const command = new ListOpsMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Returns a resource-level summary count. The summary includes information about compliant and * non-compliant statuses and detailed compliance-item severity counts, according to the filter @@ -4868,6 +5027,38 @@ export class SSM extends SSMClient { } } + /** + *

                          Systems Manager calls this API action when you edit OpsMetadata in AppManager.

                          + */ + public updateOpsMetadata( + args: UpdateOpsMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateOpsMetadata( + args: UpdateOpsMetadataCommandInput, + cb: (err: any, data?: UpdateOpsMetadataCommandOutput) => void + ): void; + public updateOpsMetadata( + args: UpdateOpsMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateOpsMetadataCommandOutput) => void + ): void; + public updateOpsMetadata( + args: UpdateOpsMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateOpsMetadataCommandOutput) => void), + cb?: (err: any, data?: UpdateOpsMetadataCommandOutput) => void + ): Promise | void { + const command = new UpdateOpsMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Modifies an existing patch baseline. Fields not specified in the request are left * unchanged.

                          diff --git a/clients/client-ssm/SSMClient.ts b/clients/client-ssm/SSMClient.ts index 5826f167d23bb..06d959fc915c8 100644 --- a/clients/client-ssm/SSMClient.ts +++ b/clients/client-ssm/SSMClient.ts @@ -16,6 +16,7 @@ import { CreateMaintenanceWindowCommandOutput, } from "./commands/CreateMaintenanceWindowCommand"; import { CreateOpsItemCommandInput, CreateOpsItemCommandOutput } from "./commands/CreateOpsItemCommand"; +import { CreateOpsMetadataCommandInput, CreateOpsMetadataCommandOutput } from "./commands/CreateOpsMetadataCommand"; import { CreatePatchBaselineCommandInput, CreatePatchBaselineCommandOutput, @@ -32,6 +33,7 @@ import { DeleteMaintenanceWindowCommandInput, DeleteMaintenanceWindowCommandOutput, } from "./commands/DeleteMaintenanceWindowCommand"; +import { DeleteOpsMetadataCommandInput, DeleteOpsMetadataCommandOutput } from "./commands/DeleteOpsMetadataCommand"; import { DeleteParameterCommandInput, DeleteParameterCommandOutput } from "./commands/DeleteParameterCommand"; import { DeleteParametersCommandInput, DeleteParametersCommandOutput } from "./commands/DeleteParametersCommand"; import { @@ -219,6 +221,7 @@ import { GetMaintenanceWindowTaskCommandOutput, } from "./commands/GetMaintenanceWindowTaskCommand"; import { GetOpsItemCommandInput, GetOpsItemCommandOutput } from "./commands/GetOpsItemCommand"; +import { GetOpsMetadataCommandInput, GetOpsMetadataCommandOutput } from "./commands/GetOpsMetadataCommand"; import { GetOpsSummaryCommandInput, GetOpsSummaryCommandOutput } from "./commands/GetOpsSummaryCommand"; import { GetParameterCommandInput, GetParameterCommandOutput } from "./commands/GetParameterCommand"; import { @@ -267,6 +270,7 @@ import { ListInventoryEntriesCommandInput, ListInventoryEntriesCommandOutput, } from "./commands/ListInventoryEntriesCommand"; +import { ListOpsMetadataCommandInput, ListOpsMetadataCommandOutput } from "./commands/ListOpsMetadataCommand"; import { ListResourceComplianceSummariesCommandInput, ListResourceComplianceSummariesCommandOutput, @@ -357,6 +361,7 @@ import { UpdateManagedInstanceRoleCommandOutput, } from "./commands/UpdateManagedInstanceRoleCommand"; import { UpdateOpsItemCommandInput, UpdateOpsItemCommandOutput } from "./commands/UpdateOpsItemCommand"; +import { UpdateOpsMetadataCommandInput, UpdateOpsMetadataCommandOutput } from "./commands/UpdateOpsMetadataCommand"; import { UpdatePatchBaselineCommandInput, UpdatePatchBaselineCommandOutput, @@ -428,6 +433,7 @@ export type ServiceInputTypes = | CreateDocumentCommandInput | CreateMaintenanceWindowCommandInput | CreateOpsItemCommandInput + | CreateOpsMetadataCommandInput | CreatePatchBaselineCommandInput | CreateResourceDataSyncCommandInput | DeleteActivationCommandInput @@ -435,6 +441,7 @@ export type ServiceInputTypes = | DeleteDocumentCommandInput | DeleteInventoryCommandInput | DeleteMaintenanceWindowCommandInput + | DeleteOpsMetadataCommandInput | DeleteParameterCommandInput | DeleteParametersCommandInput | DeletePatchBaselineCommandInput @@ -490,6 +497,7 @@ export type ServiceInputTypes = | GetMaintenanceWindowExecutionTaskInvocationCommandInput | GetMaintenanceWindowTaskCommandInput | GetOpsItemCommandInput + | GetOpsMetadataCommandInput | GetOpsSummaryCommandInput | GetParameterCommandInput | GetParameterHistoryCommandInput @@ -508,6 +516,7 @@ export type ServiceInputTypes = | ListDocumentVersionsCommandInput | ListDocumentsCommandInput | ListInventoryEntriesCommandInput + | ListOpsMetadataCommandInput | ListResourceComplianceSummariesCommandInput | ListResourceDataSyncCommandInput | ListTagsForResourceCommandInput @@ -538,6 +547,7 @@ export type ServiceInputTypes = | UpdateMaintenanceWindowTaskCommandInput | UpdateManagedInstanceRoleCommandInput | UpdateOpsItemCommandInput + | UpdateOpsMetadataCommandInput | UpdatePatchBaselineCommandInput | UpdateResourceDataSyncCommandInput | UpdateServiceSettingCommandInput; @@ -552,6 +562,7 @@ export type ServiceOutputTypes = | CreateDocumentCommandOutput | CreateMaintenanceWindowCommandOutput | CreateOpsItemCommandOutput + | CreateOpsMetadataCommandOutput | CreatePatchBaselineCommandOutput | CreateResourceDataSyncCommandOutput | DeleteActivationCommandOutput @@ -559,6 +570,7 @@ export type ServiceOutputTypes = | DeleteDocumentCommandOutput | DeleteInventoryCommandOutput | DeleteMaintenanceWindowCommandOutput + | DeleteOpsMetadataCommandOutput | DeleteParameterCommandOutput | DeleteParametersCommandOutput | DeletePatchBaselineCommandOutput @@ -614,6 +626,7 @@ export type ServiceOutputTypes = | GetMaintenanceWindowExecutionTaskInvocationCommandOutput | GetMaintenanceWindowTaskCommandOutput | GetOpsItemCommandOutput + | GetOpsMetadataCommandOutput | GetOpsSummaryCommandOutput | GetParameterCommandOutput | GetParameterHistoryCommandOutput @@ -632,6 +645,7 @@ export type ServiceOutputTypes = | ListDocumentVersionsCommandOutput | ListDocumentsCommandOutput | ListInventoryEntriesCommandOutput + | ListOpsMetadataCommandOutput | ListResourceComplianceSummariesCommandOutput | ListResourceDataSyncCommandOutput | ListTagsForResourceCommandOutput @@ -662,6 +676,7 @@ export type ServiceOutputTypes = | UpdateMaintenanceWindowTaskCommandOutput | UpdateManagedInstanceRoleCommandOutput | UpdateOpsItemCommandOutput + | UpdateOpsMetadataCommandOutput | UpdatePatchBaselineCommandOutput | UpdateResourceDataSyncCommandOutput | UpdateServiceSettingCommandOutput; diff --git a/clients/client-ssm/commands/CreateOpsMetadataCommand.ts b/clients/client-ssm/commands/CreateOpsMetadataCommand.ts new file mode 100644 index 0000000000000..e6f99439a5dd4 --- /dev/null +++ b/clients/client-ssm/commands/CreateOpsMetadataCommand.ts @@ -0,0 +1,89 @@ +import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; +import { CreateOpsMetadataRequest, CreateOpsMetadataResult } from "../models/models_0"; +import { + deserializeAws_json1_1CreateOpsMetadataCommand, + serializeAws_json1_1CreateOpsMetadataCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type CreateOpsMetadataCommandInput = CreateOpsMetadataRequest; +export type CreateOpsMetadataCommandOutput = CreateOpsMetadataResult & __MetadataBearer; + +/** + *

                          If you create a new application in AppManager, Systems Manager calls this API action to specify + * information about the new application, including the application type.

                          + */ +export class CreateOpsMetadataCommand extends $Command< + CreateOpsMetadataCommandInput, + CreateOpsMetadataCommandOutput, + SSMClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateOpsMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SSMClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SSMClient"; + const commandName = "CreateOpsMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateOpsMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateOpsMetadataResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateOpsMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateOpsMetadataCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateOpsMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ssm/commands/DeleteOpsMetadataCommand.ts b/clients/client-ssm/commands/DeleteOpsMetadataCommand.ts new file mode 100644 index 0000000000000..e4d0d6495e087 --- /dev/null +++ b/clients/client-ssm/commands/DeleteOpsMetadataCommand.ts @@ -0,0 +1,88 @@ +import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; +import { DeleteOpsMetadataRequest, DeleteOpsMetadataResult } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteOpsMetadataCommand, + serializeAws_json1_1DeleteOpsMetadataCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type DeleteOpsMetadataCommandInput = DeleteOpsMetadataRequest; +export type DeleteOpsMetadataCommandOutput = DeleteOpsMetadataResult & __MetadataBearer; + +/** + *

                          Delete OpsMetadata related to an application.

                          + */ +export class DeleteOpsMetadataCommand extends $Command< + DeleteOpsMetadataCommandInput, + DeleteOpsMetadataCommandOutput, + SSMClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteOpsMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SSMClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SSMClient"; + const commandName = "DeleteOpsMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteOpsMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteOpsMetadataResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteOpsMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteOpsMetadataCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteOpsMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ssm/commands/DescribePatchGroupStateCommand.ts b/clients/client-ssm/commands/DescribePatchGroupStateCommand.ts index d8fe84346ca06..0eb712c01ea6a 100644 --- a/clients/client-ssm/commands/DescribePatchGroupStateCommand.ts +++ b/clients/client-ssm/commands/DescribePatchGroupStateCommand.ts @@ -1,5 +1,6 @@ import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; -import { DescribePatchGroupStateRequest, DescribePatchGroupStateResult } from "../models/models_0"; +import { DescribePatchGroupStateRequest } from "../models/models_0"; +import { DescribePatchGroupStateResult } from "../models/models_1"; import { deserializeAws_json1_1DescribePatchGroupStateCommand, serializeAws_json1_1DescribePatchGroupStateCommand, diff --git a/clients/client-ssm/commands/DescribePatchPropertiesCommand.ts b/clients/client-ssm/commands/DescribePatchPropertiesCommand.ts index 6914f6a3844b3..cc9cd0ac59311 100644 --- a/clients/client-ssm/commands/DescribePatchPropertiesCommand.ts +++ b/clients/client-ssm/commands/DescribePatchPropertiesCommand.ts @@ -1,5 +1,5 @@ import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; -import { DescribePatchPropertiesRequest, DescribePatchPropertiesResult } from "../models/models_0"; +import { DescribePatchPropertiesRequest, DescribePatchPropertiesResult } from "../models/models_1"; import { deserializeAws_json1_1DescribePatchPropertiesCommand, serializeAws_json1_1DescribePatchPropertiesCommand, @@ -43,6 +43,10 @@ export type DescribePatchPropertiesCommandOutput = DescribePatchPropertiesResult *
                          *

                          Valid properties: PRODUCT, PRIORITY

                          *
                          + *
                          MACOS
                          + *
                          + *

                          Valid properties: PRODUCT, CLASSIFICATION

                          + *
                          *
                          ORACLE_LINUX
                          *
                          *

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          diff --git a/clients/client-ssm/commands/DescribeSessionsCommand.ts b/clients/client-ssm/commands/DescribeSessionsCommand.ts index 2c0ace4079108..3de8dcefdbcf5 100644 --- a/clients/client-ssm/commands/DescribeSessionsCommand.ts +++ b/clients/client-ssm/commands/DescribeSessionsCommand.ts @@ -1,6 +1,5 @@ import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; -import { DescribeSessionsRequest } from "../models/models_0"; -import { DescribeSessionsResponse } from "../models/models_1"; +import { DescribeSessionsRequest, DescribeSessionsResponse } from "../models/models_1"; import { deserializeAws_json1_1DescribeSessionsCommand, serializeAws_json1_1DescribeSessionsCommand, diff --git a/clients/client-ssm/commands/GetOpsMetadataCommand.ts b/clients/client-ssm/commands/GetOpsMetadataCommand.ts new file mode 100644 index 0000000000000..851718f7d2ae5 --- /dev/null +++ b/clients/client-ssm/commands/GetOpsMetadataCommand.ts @@ -0,0 +1,88 @@ +import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; +import { GetOpsMetadataRequest, GetOpsMetadataResult } from "../models/models_1"; +import { + deserializeAws_json1_1GetOpsMetadataCommand, + serializeAws_json1_1GetOpsMetadataCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type GetOpsMetadataCommandInput = GetOpsMetadataRequest; +export type GetOpsMetadataCommandOutput = GetOpsMetadataResult & __MetadataBearer; + +/** + *

                          View operational metadata related to an application in AppManager.

                          + */ +export class GetOpsMetadataCommand extends $Command< + GetOpsMetadataCommandInput, + GetOpsMetadataCommandOutput, + SSMClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetOpsMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SSMClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SSMClient"; + const commandName = "GetOpsMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetOpsMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetOpsMetadataResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetOpsMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1GetOpsMetadataCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1GetOpsMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ssm/commands/ListOpsMetadataCommand.ts b/clients/client-ssm/commands/ListOpsMetadataCommand.ts new file mode 100644 index 0000000000000..be3021eb2ec82 --- /dev/null +++ b/clients/client-ssm/commands/ListOpsMetadataCommand.ts @@ -0,0 +1,89 @@ +import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; +import { ListOpsMetadataRequest, ListOpsMetadataResult } from "../models/models_1"; +import { + deserializeAws_json1_1ListOpsMetadataCommand, + serializeAws_json1_1ListOpsMetadataCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type ListOpsMetadataCommandInput = ListOpsMetadataRequest; +export type ListOpsMetadataCommandOutput = ListOpsMetadataResult & __MetadataBearer; + +/** + *

                          Systems Manager calls this API action when displaying all AppManager OpsMetadata objects or + * blobs.

                          + */ +export class ListOpsMetadataCommand extends $Command< + ListOpsMetadataCommandInput, + ListOpsMetadataCommandOutput, + SSMClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListOpsMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SSMClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SSMClient"; + const commandName = "ListOpsMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListOpsMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListOpsMetadataResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListOpsMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListOpsMetadataCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListOpsMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ssm/commands/UpdateOpsMetadataCommand.ts b/clients/client-ssm/commands/UpdateOpsMetadataCommand.ts new file mode 100644 index 0000000000000..02a9dfc338e5d --- /dev/null +++ b/clients/client-ssm/commands/UpdateOpsMetadataCommand.ts @@ -0,0 +1,88 @@ +import { SSMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SSMClient"; +import { UpdateOpsMetadataRequest, UpdateOpsMetadataResult } from "../models/models_1"; +import { + deserializeAws_json1_1UpdateOpsMetadataCommand, + serializeAws_json1_1UpdateOpsMetadataCommand, +} from "../protocols/Aws_json1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +export type UpdateOpsMetadataCommandInput = UpdateOpsMetadataRequest; +export type UpdateOpsMetadataCommandOutput = UpdateOpsMetadataResult & __MetadataBearer; + +/** + *

                          Systems Manager calls this API action when you edit OpsMetadata in AppManager.

                          + */ +export class UpdateOpsMetadataCommand extends $Command< + UpdateOpsMetadataCommandInput, + UpdateOpsMetadataCommandOutput, + SSMClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateOpsMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SSMClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SSMClient"; + const commandName = "UpdateOpsMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateOpsMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateOpsMetadataResult.filterSensitiveLog, + }; + + if (typeof logger.info === "function") { + logger.info({ + clientName, + commandName, + }); + } + + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateOpsMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateOpsMetadataCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateOpsMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-ssm/index.ts b/clients/client-ssm/index.ts index ef543871d9788..01499a0462d17 100644 --- a/clients/client-ssm/index.ts +++ b/clients/client-ssm/index.ts @@ -9,6 +9,7 @@ export * from "./commands/CreateAssociationBatchCommand"; export * from "./commands/CreateDocumentCommand"; export * from "./commands/CreateMaintenanceWindowCommand"; export * from "./commands/CreateOpsItemCommand"; +export * from "./commands/CreateOpsMetadataCommand"; export * from "./commands/CreatePatchBaselineCommand"; export * from "./commands/CreateResourceDataSyncCommand"; export * from "./commands/DeleteActivationCommand"; @@ -16,6 +17,7 @@ export * from "./commands/DeleteAssociationCommand"; export * from "./commands/DeleteDocumentCommand"; export * from "./commands/DeleteInventoryCommand"; export * from "./commands/DeleteMaintenanceWindowCommand"; +export * from "./commands/DeleteOpsMetadataCommand"; export * from "./commands/DeleteParameterCommand"; export * from "./commands/DeleteParametersCommand"; export * from "./commands/DeletePatchBaselineCommand"; @@ -101,6 +103,7 @@ export * from "./commands/GetMaintenanceWindowExecutionTaskCommand"; export * from "./commands/GetMaintenanceWindowExecutionTaskInvocationCommand"; export * from "./commands/GetMaintenanceWindowTaskCommand"; export * from "./commands/GetOpsItemCommand"; +export * from "./commands/GetOpsMetadataCommand"; export * from "./commands/GetOpsSummaryCommand"; export * from "./pagination/GetOpsSummaryPaginator"; export * from "./commands/GetParameterCommand"; @@ -130,6 +133,7 @@ export * from "./pagination/ListDocumentsPaginator"; export * from "./commands/ListDocumentVersionsCommand"; export * from "./pagination/ListDocumentVersionsPaginator"; export * from "./commands/ListInventoryEntriesCommand"; +export * from "./commands/ListOpsMetadataCommand"; export * from "./commands/ListResourceComplianceSummariesCommand"; export * from "./pagination/ListResourceComplianceSummariesPaginator"; export * from "./commands/ListResourceDataSyncCommand"; @@ -162,6 +166,7 @@ export * from "./commands/UpdateMaintenanceWindowTargetCommand"; export * from "./commands/UpdateMaintenanceWindowTaskCommand"; export * from "./commands/UpdateManagedInstanceRoleCommand"; export * from "./commands/UpdateOpsItemCommand"; +export * from "./commands/UpdateOpsMetadataCommand"; export * from "./commands/UpdatePatchBaselineCommand"; export * from "./commands/UpdateResourceDataSyncCommand"; export * from "./commands/UpdateServiceSettingCommand"; diff --git a/clients/client-ssm/models/models_0.ts b/clients/client-ssm/models/models_0.ts index 14e6c2e5f11e1..5f8bfd4e9c6cd 100644 --- a/clients/client-ssm/models/models_0.ts +++ b/clients/client-ssm/models/models_0.ts @@ -808,7 +808,8 @@ export interface CreateAssociationRequest { /** *

                          By default, when you create a new associations, the system runs it immediately after it is * created and then according to the schedule you specified. Specify this option if you don't want - * an association to run immediately after you create it.

                          + * an association to run immediately after you create it. This parameter is not supported for rate + * expressions.

                          */ ApplyOnlyAtCronInterval?: boolean; } @@ -1021,7 +1022,8 @@ export interface AssociationDescription { /** *

                          By default, when you create a new associations, the system runs it immediately after it is * created and then according to the schedule you specified. Specify this option if you don't want - * an association to run immediately after you create it.

                          + * an association to run immediately after you create it. This parameter is not supported for rate + * expressions.

                          */ ApplyOnlyAtCronInterval?: boolean; } @@ -1271,7 +1273,8 @@ export interface CreateAssociationBatchRequestEntry { /** *

                          By default, when you create a new associations, the system runs it immediately after it is * created and then according to the schedule you specified. Specify this option if you don't want - * an association to run immediately after you create it.

                          + * an association to run immediately after you create it. This parameter is not supported for rate + * expressions.

                          */ ApplyOnlyAtCronInterval?: boolean; } @@ -2253,6 +2256,115 @@ export namespace OpsItemLimitExceededException { }); } +/** + *

                          Metadata to assign to an AppManager application.

                          + */ +export interface MetadataValue { + /** + *

                          Metadata value to assign to an AppManager application.

                          + */ + Value?: string; +} + +export namespace MetadataValue { + export const filterSensitiveLog = (obj: MetadataValue): any => ({ + ...obj, + }); +} + +export interface CreateOpsMetadataRequest { + /** + *

                          A resource ID for a new AppManager application.

                          + */ + ResourceId: string | undefined; + + /** + *

                          Metadata for a new AppManager application.

                          + */ + Metadata?: { [key: string]: MetadataValue }; +} + +export namespace CreateOpsMetadataRequest { + export const filterSensitiveLog = (obj: CreateOpsMetadataRequest): any => ({ + ...obj, + }); +} + +export interface CreateOpsMetadataResult { + /** + *

                          The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created by the call.

                          + */ + OpsMetadataArn?: string; +} + +export namespace CreateOpsMetadataResult { + export const filterSensitiveLog = (obj: CreateOpsMetadataResult): any => ({ + ...obj, + }); +} + +/** + *

                          An OpsMetadata object already exists for the selected resource.

                          + */ +export interface OpsMetadataAlreadyExistsException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataAlreadyExistsException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataAlreadyExistsException { + export const filterSensitiveLog = (obj: OpsMetadataAlreadyExistsException): any => ({ + ...obj, + }); +} + +/** + *

                          One of the arguments passed is invalid.

                          + */ +export interface OpsMetadataInvalidArgumentException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataInvalidArgumentException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataInvalidArgumentException { + export const filterSensitiveLog = (obj: OpsMetadataInvalidArgumentException): any => ({ + ...obj, + }); +} + +/** + *

                          Your account reached the maximum number of OpsMetadata objects allowed by AppManager. The + * maximum is 200 OpsMetadata objects. Delete one or more OpsMetadata object and try again.

                          + */ +export interface OpsMetadataLimitExceededException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataLimitExceededException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataLimitExceededException { + export const filterSensitiveLog = (obj: OpsMetadataLimitExceededException): any => ({ + ...obj, + }); +} + +/** + *

                          The system is processing too many concurrent updates. Wait a few moments and try + * again.

                          + */ +export interface OpsMetadataTooManyUpdatesException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataTooManyUpdatesException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataTooManyUpdatesException { + export const filterSensitiveLog = (obj: OpsMetadataTooManyUpdatesException): any => ({ + ...obj, + }); +} + export enum PatchComplianceLevel { Critical = "CRITICAL", High = "HIGH", @@ -2399,6 +2511,7 @@ export enum OperatingSystem { AmazonLinux2 = "AMAZON_LINUX_2", CentOS = "CENTOS", Debian = "DEBIAN", + MacOS = "MACOS", OracleLinux = "ORACLE_LINUX", RedhatEnterpriseLinux = "REDHAT_ENTERPRISE_LINUX", Suse = "SUSE", @@ -3196,6 +3309,42 @@ export namespace DeleteMaintenanceWindowResult { }); } +export interface DeleteOpsMetadataRequest { + /** + *

                          The Amazon Resource Name (ARN) of an OpsMetadata Object to delete.

                          + */ + OpsMetadataArn: string | undefined; +} + +export namespace DeleteOpsMetadataRequest { + export const filterSensitiveLog = (obj: DeleteOpsMetadataRequest): any => ({ + ...obj, + }); +} + +export interface DeleteOpsMetadataResult {} + +export namespace DeleteOpsMetadataResult { + export const filterSensitiveLog = (obj: DeleteOpsMetadataResult): any => ({ + ...obj, + }); +} + +/** + *

                          The OpsMetadata object does not exist.

                          + */ +export interface OpsMetadataNotFoundException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataNotFoundException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataNotFoundException { + export const filterSensitiveLog = (obj: OpsMetadataNotFoundException): any => ({ + ...obj, + }); +} + export interface DeleteParameterRequest { /** *

                          The name of the parameter to delete.

                          @@ -4691,7 +4840,7 @@ export interface Patch { /** *

                          The Common Vulnerabilities and Exposures (CVE) ID of the patch. For example, - * CVE-1999-0067. Applies to Linux-based instances only.

                          + * CVE-2011-3192. Applies to Linux-based instances only.

                          */ CVEIds?: string[]; @@ -7667,262 +7816,3 @@ export namespace DescribePatchGroupStateRequest { ...obj, }); } - -export interface DescribePatchGroupStateResult { - /** - *

                          The number of instances in the patch group.

                          - */ - Instances?: number; - - /** - *

                          The number of instances with installed patches.

                          - */ - InstancesWithInstalledPatches?: number; - - /** - *

                          The number of instances with patches installed that aren't defined in the patch - * baseline.

                          - */ - InstancesWithInstalledOtherPatches?: number; - - /** - *

                          The number of instances with patches installed by Patch Manager that have not been rebooted - * after the patch installation. The status of these instances is NON_COMPLIANT.

                          - */ - InstancesWithInstalledPendingRebootPatches?: number; - - /** - *

                          The number of instances with patches installed that are specified in a RejectedPatches list. - * Patches with a status of INSTALLED_REJECTED were typically installed before - * they were added to a RejectedPatches list.

                          - * - *

                          If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of - * InstancesWithInstalledRejectedPatches will always be 0 (zero).

                          - *
                          - */ - InstancesWithInstalledRejectedPatches?: number; - - /** - *

                          The number of instances with missing patches from the patch baseline.

                          - */ - InstancesWithMissingPatches?: number; - - /** - *

                          The number of instances with patches from the patch baseline that failed to install.

                          - */ - InstancesWithFailedPatches?: number; - - /** - *

                          The number of instances with patches that aren't applicable.

                          - */ - InstancesWithNotApplicablePatches?: number; - - /** - *

                          The number of instances with NotApplicable patches beyond the supported limit, - * which are not reported by name to Systems Manager Inventory.

                          - */ - InstancesWithUnreportedNotApplicablePatches?: number; -} - -export namespace DescribePatchGroupStateResult { - export const filterSensitiveLog = (obj: DescribePatchGroupStateResult): any => ({ - ...obj, - }); -} - -export enum PatchSet { - Application = "APPLICATION", - Os = "OS", -} - -export enum PatchProperty { - PatchClassification = "CLASSIFICATION", - PatchMsrcSeverity = "MSRC_SEVERITY", - PatchPriority = "PRIORITY", - PatchProductFamily = "PRODUCT_FAMILY", - PatchSeverity = "SEVERITY", - Product = "PRODUCT", -} - -export interface DescribePatchPropertiesRequest { - /** - *

                          The operating system type for which to list patches.

                          - */ - OperatingSystem: OperatingSystem | string | undefined; - - /** - *

                          The patch property for which you want to view patch details.

                          - */ - Property: PatchProperty | string | undefined; - - /** - *

                          Indicates whether to list patches for the Windows operating system or for Microsoft - * applications. Not applicable for Linux operating systems.

                          - */ - PatchSet?: PatchSet | string; - - /** - *

                          The maximum number of items to return for this call. The call also returns a token that you - * can specify in a subsequent call to get the next set of results.

                          - */ - MaxResults?: number; - - /** - *

                          The token for the next set of items to return. (You received this token from a previous - * call.)

                          - */ - NextToken?: string; -} - -export namespace DescribePatchPropertiesRequest { - export const filterSensitiveLog = (obj: DescribePatchPropertiesRequest): any => ({ - ...obj, - }); -} - -export interface DescribePatchPropertiesResult { - /** - *

                          A list of the properties for patches matching the filter request parameters.

                          - */ - Properties?: { [key: string]: string }[]; - - /** - *

                          The token for the next set of items to return. (You use this token in the next call.)

                          - */ - NextToken?: string; -} - -export namespace DescribePatchPropertiesResult { - export const filterSensitiveLog = (obj: DescribePatchPropertiesResult): any => ({ - ...obj, - }); -} - -export enum SessionFilterKey { - INVOKED_AFTER = "InvokedAfter", - INVOKED_BEFORE = "InvokedBefore", - OWNER = "Owner", - SESSION_ID = "SessionId", - STATUS = "Status", - TARGET_ID = "Target", -} - -/** - *

                          Describes a filter for Session Manager information.

                          - */ -export interface SessionFilter { - /** - *

                          The name of the filter.

                          - */ - key: SessionFilterKey | string | undefined; - - /** - *

                          The filter value. Valid values for each filter key are as follows:

                          - *
                            - *
                          • - *

                            InvokedAfter: Specify a timestamp to limit your results. For example, specify - * 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.

                            - *
                          • - *
                          • - *

                            InvokedBefore: Specify a timestamp to limit your results. For example, specify - * 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.

                            - *
                          • - *
                          • - *

                            Target: Specify an instance to which session connections have been made.

                            - *
                          • - *
                          • - *

                            Owner: Specify an AWS user account to see a list of sessions started by that user.

                            - *
                          • - *
                          • - *

                            Status: Specify a valid session status to see a list of all sessions with that status. - * Status values you can specify include:

                            - *
                              - *
                            • - *

                              Connected

                              - *
                            • - *
                            • - *

                              Connecting

                              - *
                            • - *
                            • - *

                              Disconnected

                              - *
                            • - *
                            • - *

                              Terminated

                              - *
                            • - *
                            • - *

                              Terminating

                              - *
                            • - *
                            • - *

                              Failed

                              - *
                            • - *
                            - *
                          • - *
                          • - *

                            SessionId: Specify a session ID to return details about the session.

                            - *
                          • - *
                          - */ - value: string | undefined; -} - -export namespace SessionFilter { - export const filterSensitiveLog = (obj: SessionFilter): any => ({ - ...obj, - }); -} - -export enum SessionState { - ACTIVE = "Active", - HISTORY = "History", -} - -export interface DescribeSessionsRequest { - /** - *

                          The session status to retrieve a list of sessions for. For example, "Active".

                          - */ - State: SessionState | string | undefined; - - /** - *

                          The maximum number of items to return for this call. The call also returns a token that you - * can specify in a subsequent call to get the next set of results.

                          - */ - MaxResults?: number; - - /** - *

                          The token for the next set of items to return. (You received this token from a previous - * call.)

                          - */ - NextToken?: string; - - /** - *

                          One or more filters to limit the type of sessions returned by the request.

                          - */ - Filters?: SessionFilter[]; -} - -export namespace DescribeSessionsRequest { - export const filterSensitiveLog = (obj: DescribeSessionsRequest): any => ({ - ...obj, - }); -} - -/** - *

                          Reserved for future use.

                          - */ -export interface SessionManagerOutputUrl { - /** - *

                          Reserved for future use.

                          - */ - S3OutputUrl?: string; - - /** - *

                          Reserved for future use.

                          - */ - CloudWatchOutputUrl?: string; -} - -export namespace SessionManagerOutputUrl { - export const filterSensitiveLog = (obj: SessionManagerOutputUrl): any => ({ - ...obj, - }); -} diff --git a/clients/client-ssm/models/models_1.ts b/clients/client-ssm/models/models_1.ts index 54a503a60fca9..83d64c94aa2ab 100644 --- a/clients/client-ssm/models/models_1.ts +++ b/clients/client-ssm/models/models_1.ts @@ -20,6 +20,7 @@ import { MaintenanceWindowResourceType, MaintenanceWindowTaskParameterValueExpression, MaintenanceWindowTaskType, + MetadataValue, OperatingSystem, OpsItemDataValue, OpsItemNotification, @@ -40,7 +41,6 @@ import { ResourceDataSyncS3Destination, ResourceDataSyncSource, ResourceTypeForTagging, - SessionManagerOutputUrl, StepExecution, Tag, Target, @@ -49,6 +49,265 @@ import { import { SENSITIVE_STRING, SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; +export interface DescribePatchGroupStateResult { + /** + *

                          The number of instances in the patch group.

                          + */ + Instances?: number; + + /** + *

                          The number of instances with installed patches.

                          + */ + InstancesWithInstalledPatches?: number; + + /** + *

                          The number of instances with patches installed that aren't defined in the patch + * baseline.

                          + */ + InstancesWithInstalledOtherPatches?: number; + + /** + *

                          The number of instances with patches installed by Patch Manager that have not been rebooted + * after the patch installation. The status of these instances is NON_COMPLIANT.

                          + */ + InstancesWithInstalledPendingRebootPatches?: number; + + /** + *

                          The number of instances with patches installed that are specified in a RejectedPatches list. + * Patches with a status of INSTALLED_REJECTED were typically installed before + * they were added to a RejectedPatches list.

                          + * + *

                          If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of + * InstancesWithInstalledRejectedPatches will always be 0 (zero).

                          + *
                          + */ + InstancesWithInstalledRejectedPatches?: number; + + /** + *

                          The number of instances with missing patches from the patch baseline.

                          + */ + InstancesWithMissingPatches?: number; + + /** + *

                          The number of instances with patches from the patch baseline that failed to install.

                          + */ + InstancesWithFailedPatches?: number; + + /** + *

                          The number of instances with patches that aren't applicable.

                          + */ + InstancesWithNotApplicablePatches?: number; + + /** + *

                          The number of instances with NotApplicable patches beyond the supported limit, + * which are not reported by name to Systems Manager Inventory.

                          + */ + InstancesWithUnreportedNotApplicablePatches?: number; +} + +export namespace DescribePatchGroupStateResult { + export const filterSensitiveLog = (obj: DescribePatchGroupStateResult): any => ({ + ...obj, + }); +} + +export enum PatchSet { + Application = "APPLICATION", + Os = "OS", +} + +export enum PatchProperty { + PatchClassification = "CLASSIFICATION", + PatchMsrcSeverity = "MSRC_SEVERITY", + PatchPriority = "PRIORITY", + PatchProductFamily = "PRODUCT_FAMILY", + PatchSeverity = "SEVERITY", + Product = "PRODUCT", +} + +export interface DescribePatchPropertiesRequest { + /** + *

                          The operating system type for which to list patches.

                          + */ + OperatingSystem: OperatingSystem | string | undefined; + + /** + *

                          The patch property for which you want to view patch details.

                          + */ + Property: PatchProperty | string | undefined; + + /** + *

                          Indicates whether to list patches for the Windows operating system or for Microsoft + * applications. Not applicable for the Linux or macOS operating systems.

                          + */ + PatchSet?: PatchSet | string; + + /** + *

                          The maximum number of items to return for this call. The call also returns a token that you + * can specify in a subsequent call to get the next set of results.

                          + */ + MaxResults?: number; + + /** + *

                          The token for the next set of items to return. (You received this token from a previous + * call.)

                          + */ + NextToken?: string; +} + +export namespace DescribePatchPropertiesRequest { + export const filterSensitiveLog = (obj: DescribePatchPropertiesRequest): any => ({ + ...obj, + }); +} + +export interface DescribePatchPropertiesResult { + /** + *

                          A list of the properties for patches matching the filter request parameters.

                          + */ + Properties?: { [key: string]: string }[]; + + /** + *

                          The token for the next set of items to return. (You use this token in the next call.)

                          + */ + NextToken?: string; +} + +export namespace DescribePatchPropertiesResult { + export const filterSensitiveLog = (obj: DescribePatchPropertiesResult): any => ({ + ...obj, + }); +} + +export enum SessionFilterKey { + INVOKED_AFTER = "InvokedAfter", + INVOKED_BEFORE = "InvokedBefore", + OWNER = "Owner", + SESSION_ID = "SessionId", + STATUS = "Status", + TARGET_ID = "Target", +} + +/** + *

                          Describes a filter for Session Manager information.

                          + */ +export interface SessionFilter { + /** + *

                          The name of the filter.

                          + */ + key: SessionFilterKey | string | undefined; + + /** + *

                          The filter value. Valid values for each filter key are as follows:

                          + *
                            + *
                          • + *

                            InvokedAfter: Specify a timestamp to limit your results. For example, specify + * 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.

                            + *
                          • + *
                          • + *

                            InvokedBefore: Specify a timestamp to limit your results. For example, specify + * 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.

                            + *
                          • + *
                          • + *

                            Target: Specify an instance to which session connections have been made.

                            + *
                          • + *
                          • + *

                            Owner: Specify an AWS user account to see a list of sessions started by that user.

                            + *
                          • + *
                          • + *

                            Status: Specify a valid session status to see a list of all sessions with that status. + * Status values you can specify include:

                            + *
                              + *
                            • + *

                              Connected

                              + *
                            • + *
                            • + *

                              Connecting

                              + *
                            • + *
                            • + *

                              Disconnected

                              + *
                            • + *
                            • + *

                              Terminated

                              + *
                            • + *
                            • + *

                              Terminating

                              + *
                            • + *
                            • + *

                              Failed

                              + *
                            • + *
                            + *
                          • + *
                          • + *

                            SessionId: Specify a session ID to return details about the session.

                            + *
                          • + *
                          + */ + value: string | undefined; +} + +export namespace SessionFilter { + export const filterSensitiveLog = (obj: SessionFilter): any => ({ + ...obj, + }); +} + +export enum SessionState { + ACTIVE = "Active", + HISTORY = "History", +} + +export interface DescribeSessionsRequest { + /** + *

                          The session status to retrieve a list of sessions for. For example, "Active".

                          + */ + State: SessionState | string | undefined; + + /** + *

                          The maximum number of items to return for this call. The call also returns a token that you + * can specify in a subsequent call to get the next set of results.

                          + */ + MaxResults?: number; + + /** + *

                          The token for the next set of items to return. (You received this token from a previous + * call.)

                          + */ + NextToken?: string; + + /** + *

                          One or more filters to limit the type of sessions returned by the request.

                          + */ + Filters?: SessionFilter[]; +} + +export namespace DescribeSessionsRequest { + export const filterSensitiveLog = (obj: DescribeSessionsRequest): any => ({ + ...obj, + }); +} + +/** + *

                          Reserved for future use.

                          + */ +export interface SessionManagerOutputUrl { + /** + *

                          Reserved for future use.

                          + */ + S3OutputUrl?: string; + + /** + *

                          Reserved for future use.

                          + */ + CloudWatchOutputUrl?: string; +} + +export namespace SessionManagerOutputUrl { + export const filterSensitiveLog = (obj: SessionManagerOutputUrl): any => ({ + ...obj, + }); +} + export enum SessionStatus { CONNECTED = "Connected", CONNECTING = "Connecting", @@ -2222,6 +2481,54 @@ export namespace OpsItemNotFoundException { }); } +export interface GetOpsMetadataRequest { + /** + *

                          The Amazon Resource Name (ARN) of an OpsMetadata Object to view.

                          + */ + OpsMetadataArn: string | undefined; + + /** + *

                          The maximum number of items to return for this call. The call also returns a token that you + * can specify in a subsequent call to get the next set of results.

                          + */ + MaxResults?: number; + + /** + *

                          A token to start the list. Use this token to get the next set of results.

                          + */ + NextToken?: string; +} + +export namespace GetOpsMetadataRequest { + export const filterSensitiveLog = (obj: GetOpsMetadataRequest): any => ({ + ...obj, + }); +} + +export interface GetOpsMetadataResult { + /** + *

                          The resource ID of the AppManager application.

                          + */ + ResourceId?: string; + + /** + *

                          OpsMetadata for an AppManager application.

                          + */ + Metadata?: { [key: string]: MetadataValue }; + + /** + *

                          The token for the next set of items to return. Use this token to get the next set of + * results.

                          + */ + NextToken?: string; +} + +export namespace GetOpsMetadataResult { + export const filterSensitiveLog = (obj: GetOpsMetadataResult): any => ({ + ...obj, + }); +} + export enum OpsFilterOperatorType { BEGIN_WITH = "BeginWith", EQUAL = "Equal", @@ -3067,7 +3374,10 @@ export interface ListAssociationsRequest { /** *

                          One or more filters. Use a filter to return a more specific list of results.

                          * - *

                          Filtering associations using the InstanceID attribute only returns legacy associations created using the InstanceID attribute. Associations targeting the instance that are part of the Target Attributes ResourceGroup or Tags are not returned.

                          + *

                          Filtering associations using the InstanceID attribute only returns legacy + * associations created using the InstanceID attribute. Associations targeting the + * instance that are part of the Target Attributes ResourceGroup or Tags + * are not returned.

                          *
                          */ AssociationFilterList?: AssociationFilter[]; @@ -3300,7 +3610,8 @@ export interface AssociationVersionInfo { /** *

                          By default, when you create a new associations, the system runs it immediately after it is * created and then according to the schedule you specified. Specify this option if you don't want - * an association to run immediately after you create it.

                          + * an association to run immediately after you create it. This parameter is not supported for rate + * expressions.

                          */ ApplyOnlyAtCronInterval?: boolean; } @@ -4864,6 +5175,107 @@ export namespace ListInventoryEntriesResult { }); } +/** + *

                          A filter to limit the number of OpsMetadata objects displayed.

                          + */ +export interface OpsMetadataFilter { + /** + *

                          A filter key.

                          + */ + Key: string | undefined; + + /** + *

                          A filter value.

                          + */ + Values: string[] | undefined; +} + +export namespace OpsMetadataFilter { + export const filterSensitiveLog = (obj: OpsMetadataFilter): any => ({ + ...obj, + }); +} + +export interface ListOpsMetadataRequest { + /** + *

                          One or more filters to limit the number of OpsMetadata objects returned by the + * call.

                          + */ + Filters?: OpsMetadataFilter[]; + + /** + *

                          The maximum number of items to return for this call. The call also returns a token that you + * can specify in a subsequent call to get the next set of results.

                          + */ + MaxResults?: number; + + /** + *

                          A token to start the list. Use this token to get the next set of results.

                          + */ + NextToken?: string; +} + +export namespace ListOpsMetadataRequest { + export const filterSensitiveLog = (obj: ListOpsMetadataRequest): any => ({ + ...obj, + }); +} + +/** + *

                          Operational metadata for an application in AppManager.

                          + */ +export interface OpsMetadata { + /** + *

                          The ID of the AppManager application.

                          + */ + ResourceId?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the OpsMetadata Object or blob.

                          + */ + OpsMetadataArn?: string; + + /** + *

                          The date the OpsMetadata object was last updated.

                          + */ + LastModifiedDate?: Date; + + /** + *

                          The user name who last updated the OpsMetadata object.

                          + */ + LastModifiedUser?: string; + + /** + *

                          The date the OpsMetadata objects was created.

                          + */ + CreationDate?: Date; +} + +export namespace OpsMetadata { + export const filterSensitiveLog = (obj: OpsMetadata): any => ({ + ...obj, + }); +} + +export interface ListOpsMetadataResult { + /** + *

                          Returns a list of OpsMetadata objects.

                          + */ + OpsMetadataList?: OpsMetadata[]; + + /** + *

                          The token for the next set of items to return. Use this token to get the next set of + * results.

                          + */ + NextToken?: string; +} + +export namespace ListOpsMetadataResult { + export const filterSensitiveLog = (obj: ListOpsMetadataResult): any => ({ + ...obj, + }); +} + export interface ListResourceComplianceSummariesRequest { /** *

                          One or more filters. Use a filter to return a more specific list of results.

                          @@ -7347,7 +7759,8 @@ export interface UpdateAssociationRequest { /** *

                          By default, when you update an association, the system runs it immediately after it is * updated and then according to the schedule you specified. Specify this option if you don't want - * an association to run immediately after you update it.

                          + * an association to run immediately after you update it. This parameter is not supported for rate + * expressions.

                          *

                          Also, if you specified this option when you created the association, you can reset it. To do * so, specify the no-apply-only-at-cron-interval parameter when you update the * association from the command line. This parameter forces the association to run immediately after @@ -8205,6 +8618,57 @@ export namespace UpdateOpsItemResponse { }); } +/** + *

                          The OpsMetadata object exceeds the maximum number of OpsMetadata keys that you can assign to an application in AppManager.

                          + */ +export interface OpsMetadataKeyLimitExceededException extends __SmithyException, $MetadataBearer { + name: "OpsMetadataKeyLimitExceededException"; + $fault: "client"; + message?: string; +} + +export namespace OpsMetadataKeyLimitExceededException { + export const filterSensitiveLog = (obj: OpsMetadataKeyLimitExceededException): any => ({ + ...obj, + }); +} + +export interface UpdateOpsMetadataRequest { + /** + *

                          The Amazon Resoure Name (ARN) of the OpsMetadata Object to update.

                          + */ + OpsMetadataArn: string | undefined; + + /** + *

                          Metadata to add to an OpsMetadata object.

                          + */ + MetadataToUpdate?: { [key: string]: MetadataValue }; + + /** + *

                          The metadata keys to delete from the OpsMetadata object.

                          + */ + KeysToDelete?: string[]; +} + +export namespace UpdateOpsMetadataRequest { + export const filterSensitiveLog = (obj: UpdateOpsMetadataRequest): any => ({ + ...obj, + }); +} + +export interface UpdateOpsMetadataResult { + /** + *

                          The Amazon Resource Name (ARN) of the OpsMetadata Object that was updated.

                          + */ + OpsMetadataArn?: string; +} + +export namespace UpdateOpsMetadataResult { + export const filterSensitiveLog = (obj: UpdateOpsMetadataResult): any => ({ + ...obj, + }); +} + export interface UpdatePatchBaselineRequest { /** *

                          The ID of the patch baseline to update.

                          diff --git a/clients/client-ssm/protocols/Aws_json1_1.ts b/clients/client-ssm/protocols/Aws_json1_1.ts index a2aa67a34b21a..17a3464f6791b 100644 --- a/clients/client-ssm/protocols/Aws_json1_1.ts +++ b/clients/client-ssm/protocols/Aws_json1_1.ts @@ -16,6 +16,7 @@ import { CreateMaintenanceWindowCommandOutput, } from "../commands/CreateMaintenanceWindowCommand"; import { CreateOpsItemCommandInput, CreateOpsItemCommandOutput } from "../commands/CreateOpsItemCommand"; +import { CreateOpsMetadataCommandInput, CreateOpsMetadataCommandOutput } from "../commands/CreateOpsMetadataCommand"; import { CreatePatchBaselineCommandInput, CreatePatchBaselineCommandOutput, @@ -32,6 +33,7 @@ import { DeleteMaintenanceWindowCommandInput, DeleteMaintenanceWindowCommandOutput, } from "../commands/DeleteMaintenanceWindowCommand"; +import { DeleteOpsMetadataCommandInput, DeleteOpsMetadataCommandOutput } from "../commands/DeleteOpsMetadataCommand"; import { DeleteParameterCommandInput, DeleteParameterCommandOutput } from "../commands/DeleteParameterCommand"; import { DeleteParametersCommandInput, DeleteParametersCommandOutput } from "../commands/DeleteParametersCommand"; import { @@ -219,6 +221,7 @@ import { GetMaintenanceWindowTaskCommandOutput, } from "../commands/GetMaintenanceWindowTaskCommand"; import { GetOpsItemCommandInput, GetOpsItemCommandOutput } from "../commands/GetOpsItemCommand"; +import { GetOpsMetadataCommandInput, GetOpsMetadataCommandOutput } from "../commands/GetOpsMetadataCommand"; import { GetOpsSummaryCommandInput, GetOpsSummaryCommandOutput } from "../commands/GetOpsSummaryCommand"; import { GetParameterCommandInput, GetParameterCommandOutput } from "../commands/GetParameterCommand"; import { @@ -267,6 +270,7 @@ import { ListInventoryEntriesCommandInput, ListInventoryEntriesCommandOutput, } from "../commands/ListInventoryEntriesCommand"; +import { ListOpsMetadataCommandInput, ListOpsMetadataCommandOutput } from "../commands/ListOpsMetadataCommand"; import { ListResourceComplianceSummariesCommandInput, ListResourceComplianceSummariesCommandOutput, @@ -357,6 +361,7 @@ import { UpdateManagedInstanceRoleCommandOutput, } from "../commands/UpdateManagedInstanceRoleCommand"; import { UpdateOpsItemCommandInput, UpdateOpsItemCommandOutput } from "../commands/UpdateOpsItemCommand"; +import { UpdateOpsMetadataCommandInput, UpdateOpsMetadataCommandOutput } from "../commands/UpdateOpsMetadataCommand"; import { UpdatePatchBaselineCommandInput, UpdatePatchBaselineCommandOutput, @@ -409,6 +414,8 @@ import { CreateMaintenanceWindowResult, CreateOpsItemRequest, CreateOpsItemResponse, + CreateOpsMetadataRequest, + CreateOpsMetadataResult, CreatePatchBaselineRequest, CreatePatchBaselineResult, CreateResourceDataSyncRequest, @@ -423,6 +430,8 @@ import { DeleteInventoryResult, DeleteMaintenanceWindowRequest, DeleteMaintenanceWindowResult, + DeleteOpsMetadataRequest, + DeleteOpsMetadataResult, DeleteParameterRequest, DeleteParameterResult, DeleteParametersRequest, @@ -497,12 +506,8 @@ import { DescribePatchBaselinesRequest, DescribePatchBaselinesResult, DescribePatchGroupStateRequest, - DescribePatchGroupStateResult, DescribePatchGroupsRequest, DescribePatchGroupsResult, - DescribePatchPropertiesRequest, - DescribePatchPropertiesResult, - DescribeSessionsRequest, DocumentAlreadyExists, DocumentDescription, DocumentLimitExceeded, @@ -567,6 +572,7 @@ import { MaintenanceWindowTask, MaintenanceWindowTaskParameterValueExpression, MaxDocumentSizeExceeded, + MetadataValue, OpsItemAlreadyExistsException, OpsItemDataValue, OpsItemFilter, @@ -574,6 +580,11 @@ import { OpsItemLimitExceededException, OpsItemNotification, OpsItemSummary, + OpsMetadataAlreadyExistsException, + OpsMetadataInvalidArgumentException, + OpsMetadataLimitExceededException, + OpsMetadataNotFoundException, + OpsMetadataTooManyUpdatesException, OutputSource, ParameterInlinePolicy, ParameterMetadata, @@ -608,8 +619,6 @@ import { S3OutputLocation, S3OutputUrl, ScheduledWindowExecution, - SessionFilter, - SessionManagerOutputUrl, StepExecution, StepExecutionFilter, Tag, @@ -645,6 +654,10 @@ import { ComplianceTypeCountLimitExceededException, CompliantSummary, CustomSchemaCountLimitExceededException, + DescribePatchGroupStateResult, + DescribePatchPropertiesRequest, + DescribePatchPropertiesResult, + DescribeSessionsRequest, DescribeSessionsResponse, DocumentDefaultVersionDescription, DocumentFilter, @@ -686,6 +699,8 @@ import { GetMaintenanceWindowTaskResult, GetOpsItemRequest, GetOpsItemResponse, + GetOpsMetadataRequest, + GetOpsMetadataResult, GetOpsSummaryRequest, GetOpsSummaryResult, GetParameterHistoryRequest, @@ -755,6 +770,8 @@ import { ListDocumentsResult, ListInventoryEntriesRequest, ListInventoryEntriesResult, + ListOpsMetadataRequest, + ListOpsMetadataResult, ListResourceComplianceSummariesRequest, ListResourceComplianceSummariesResult, ListResourceDataSyncRequest, @@ -777,6 +794,9 @@ import { OpsFilter, OpsItem, OpsItemNotFoundException, + OpsMetadata, + OpsMetadataFilter, + OpsMetadataKeyLimitExceededException, OpsResultAttribute, Parameter, ParameterAlreadyExists, @@ -820,6 +840,8 @@ import { ServiceSetting, ServiceSettingNotFound, Session, + SessionFilter, + SessionManagerOutputUrl, SeveritySummary, StartAssociationsOnceRequest, StartAssociationsOnceResult, @@ -858,6 +880,8 @@ import { UpdateManagedInstanceRoleResult, UpdateOpsItemRequest, UpdateOpsItemResponse, + UpdateOpsMetadataRequest, + UpdateOpsMetadataResult, UpdatePatchBaselineRequest, UpdatePatchBaselineResult, UpdateResourceDataSyncRequest, @@ -993,6 +1017,19 @@ export const serializeAws_json1_1CreateOpsItemCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateOpsMetadataCommand = async ( + input: CreateOpsMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonSSM.CreateOpsMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateOpsMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreatePatchBaselineCommand = async ( input: CreatePatchBaselineCommandInput, context: __SerdeContext @@ -1084,6 +1121,19 @@ export const serializeAws_json1_1DeleteMaintenanceWindowCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteOpsMetadataCommand = async ( + input: DeleteOpsMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonSSM.DeleteOpsMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteOpsMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteParameterCommand = async ( input: DeleteParameterCommandInput, context: __SerdeContext @@ -1799,6 +1849,19 @@ export const serializeAws_json1_1GetOpsItemCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1GetOpsMetadataCommand = async ( + input: GetOpsMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonSSM.GetOpsMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1GetOpsMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1GetOpsSummaryCommand = async ( input: GetOpsSummaryCommandInput, context: __SerdeContext @@ -2033,6 +2096,19 @@ export const serializeAws_json1_1ListInventoryEntriesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListOpsMetadataCommand = async ( + input: ListOpsMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonSSM.ListOpsMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListOpsMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListResourceComplianceSummariesCommand = async ( input: ListResourceComplianceSummariesCommandInput, context: __SerdeContext @@ -2423,6 +2499,19 @@ export const serializeAws_json1_1UpdateOpsItemCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1UpdateOpsMetadataCommand = async ( + input: UpdateOpsMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "Content-Type": "application/x-amz-json-1.1", + "X-Amz-Target": "AmazonSSM.UpdateOpsMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateOpsMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1UpdatePatchBaselineCommand = async ( input: UpdatePatchBaselineCommandInput, context: __SerdeContext @@ -3261,6 +3350,93 @@ const deserializeAws_json1_1CreateOpsItemCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1CreateOpsMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateOpsMetadataCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateOpsMetadataResult(data, context); + const response: CreateOpsMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateOpsMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.ssm#InternalServerError": + response = { + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataAlreadyExistsException": + case "com.amazonaws.ssm#OpsMetadataAlreadyExistsException": + response = { + ...(await deserializeAws_json1_1OpsMetadataAlreadyExistsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataInvalidArgumentException": + case "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": + response = { + ...(await deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataLimitExceededException": + case "com.amazonaws.ssm#OpsMetadataLimitExceededException": + response = { + ...(await deserializeAws_json1_1OpsMetadataLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataTooManyUpdatesException": + case "com.amazonaws.ssm#OpsMetadataTooManyUpdatesException": + response = { + ...(await deserializeAws_json1_1OpsMetadataTooManyUpdatesExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1CreatePatchBaselineCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -3798,6 +3974,77 @@ const deserializeAws_json1_1DeleteMaintenanceWindowCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteOpsMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteOpsMetadataCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DeleteOpsMetadataResult(data, context); + const response: DeleteOpsMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteOpsMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.ssm#InternalServerError": + response = { + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataInvalidArgumentException": + case "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": + response = { + ...(await deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataNotFoundException": + case "com.amazonaws.ssm#OpsMetadataNotFoundException": + response = { + ...(await deserializeAws_json1_1OpsMetadataNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteParameterCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7527,6 +7774,77 @@ const deserializeAws_json1_1GetOpsItemCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1GetOpsMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1GetOpsMetadataCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1GetOpsMetadataResult(data, context); + const response: GetOpsMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1GetOpsMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.ssm#InternalServerError": + response = { + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataInvalidArgumentException": + case "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": + response = { + ...(await deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataNotFoundException": + case "com.amazonaws.ssm#OpsMetadataNotFoundException": + response = { + ...(await deserializeAws_json1_1OpsMetadataNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1GetOpsSummaryCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -8909,6 +9227,69 @@ const deserializeAws_json1_1ListInventoryEntriesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1ListOpsMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListOpsMetadataCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListOpsMetadataResult(data, context); + const response: ListOpsMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListOpsMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.ssm#InternalServerError": + response = { + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsMetadataInvalidArgumentException": + case "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": + response = { + ...(await deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1ListResourceComplianceSummariesCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -11410,15 +11791,102 @@ const deserializeAws_json1_1UpdateManagedInstanceRoleCommandError = async ( case "InternalServerError": case "com.amazonaws.ssm#InternalServerError": response = { - ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidInstanceId": + case "com.amazonaws.ssm#InvalidInstanceId": + response = { + ...(await deserializeAws_json1_1InvalidInstanceIdResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1UpdateOpsItemCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1UpdateOpsItemCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateOpsItemResponse(data, context); + const response: UpdateOpsItemCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1UpdateOpsItemCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode: string = "UnknownError"; + const errorTypeParts: String = parsedOutput.body["__type"].split("#"); + errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.ssm#InternalServerError": + response = { + ...(await deserializeAws_json1_1InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsItemAlreadyExistsException": + case "com.amazonaws.ssm#OpsItemAlreadyExistsException": + response = { + ...(await deserializeAws_json1_1OpsItemAlreadyExistsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsItemInvalidParameterException": + case "com.amazonaws.ssm#OpsItemInvalidParameterException": + response = { + ...(await deserializeAws_json1_1OpsItemInvalidParameterExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "InvalidInstanceId": - case "com.amazonaws.ssm#InvalidInstanceId": + case "OpsItemLimitExceededException": + case "com.amazonaws.ssm#OpsItemLimitExceededException": response = { - ...(await deserializeAws_json1_1InvalidInstanceIdResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1OpsItemLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OpsItemNotFoundException": + case "com.amazonaws.ssm#OpsItemNotFoundException": + response = { + ...(await deserializeAws_json1_1OpsItemNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -11440,27 +11908,27 @@ const deserializeAws_json1_1UpdateManagedInstanceRoleCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1UpdateOpsItemCommand = async ( +export const deserializeAws_json1_1UpdateOpsMetadataCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateOpsItemCommandError(output, context); + return deserializeAws_json1_1UpdateOpsMetadataCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateOpsItemResponse(data, context); - const response: UpdateOpsItemCommandOutput = { + contents = deserializeAws_json1_1UpdateOpsMetadataResult(data, context); + const response: UpdateOpsMetadataCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateOpsItemCommandError = async ( +const deserializeAws_json1_1UpdateOpsMetadataCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -11478,34 +11946,34 @@ const deserializeAws_json1_1UpdateOpsItemCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "OpsItemAlreadyExistsException": - case "com.amazonaws.ssm#OpsItemAlreadyExistsException": + case "OpsMetadataInvalidArgumentException": + case "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": response = { - ...(await deserializeAws_json1_1OpsItemAlreadyExistsExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "OpsItemInvalidParameterException": - case "com.amazonaws.ssm#OpsItemInvalidParameterException": + case "OpsMetadataKeyLimitExceededException": + case "com.amazonaws.ssm#OpsMetadataKeyLimitExceededException": response = { - ...(await deserializeAws_json1_1OpsItemInvalidParameterExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1OpsMetadataKeyLimitExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "OpsItemLimitExceededException": - case "com.amazonaws.ssm#OpsItemLimitExceededException": + case "OpsMetadataNotFoundException": + case "com.amazonaws.ssm#OpsMetadataNotFoundException": response = { - ...(await deserializeAws_json1_1OpsItemLimitExceededExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1OpsMetadataNotFoundExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "OpsItemNotFoundException": - case "com.amazonaws.ssm#OpsItemNotFoundException": + case "OpsMetadataTooManyUpdatesException": + case "com.amazonaws.ssm#OpsMetadataTooManyUpdatesException": response = { - ...(await deserializeAws_json1_1OpsItemNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1OpsMetadataTooManyUpdatesExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -12985,6 +13453,96 @@ const deserializeAws_json1_1OpsItemNotFoundExceptionResponse = async ( return contents; }; +const deserializeAws_json1_1OpsMetadataAlreadyExistsExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataAlreadyExistsException(body, context); + const contents: OpsMetadataAlreadyExistsException = { + name: "OpsMetadataAlreadyExistsException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1OpsMetadataInvalidArgumentExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataInvalidArgumentException(body, context); + const contents: OpsMetadataInvalidArgumentException = { + name: "OpsMetadataInvalidArgumentException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1OpsMetadataKeyLimitExceededExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataKeyLimitExceededException(body, context); + const contents: OpsMetadataKeyLimitExceededException = { + name: "OpsMetadataKeyLimitExceededException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1OpsMetadataLimitExceededExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataLimitExceededException(body, context); + const contents: OpsMetadataLimitExceededException = { + name: "OpsMetadataLimitExceededException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1OpsMetadataNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataNotFoundException(body, context); + const contents: OpsMetadataNotFoundException = { + name: "OpsMetadataNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + +const deserializeAws_json1_1OpsMetadataTooManyUpdatesExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = deserializeAws_json1_1OpsMetadataTooManyUpdatesException(body, context); + const contents: OpsMetadataTooManyUpdatesException = { + name: "OpsMetadataTooManyUpdatesException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }; + return contents; +}; + const deserializeAws_json1_1ParameterAlreadyExistsResponse = async ( parsedOutput: any, context: __SerdeContext @@ -13813,6 +14371,16 @@ const serializeAws_json1_1CreateOpsItemRequest = (input: CreateOpsItemRequest, c }; }; +const serializeAws_json1_1CreateOpsMetadataRequest = ( + input: CreateOpsMetadataRequest, + context: __SerdeContext +): any => { + return { + ...(input.Metadata !== undefined && { Metadata: serializeAws_json1_1MetadataMap(input.Metadata, context) }), + ...(input.ResourceId !== undefined && { ResourceId: input.ResourceId }), + }; +}; + const serializeAws_json1_1CreatePatchBaselineRequest = ( input: CreatePatchBaselineRequest, context: __SerdeContext @@ -13906,6 +14474,15 @@ const serializeAws_json1_1DeleteMaintenanceWindowRequest = ( }; }; +const serializeAws_json1_1DeleteOpsMetadataRequest = ( + input: DeleteOpsMetadataRequest, + context: __SerdeContext +): any => { + return { + ...(input.OpsMetadataArn !== undefined && { OpsMetadataArn: input.OpsMetadataArn }), + }; +}; + const serializeAws_json1_1DeleteParameterRequest = (input: DeleteParameterRequest, context: __SerdeContext): any => { return { ...(input.Name !== undefined && { Name: input.Name }), @@ -14596,6 +15173,14 @@ const serializeAws_json1_1GetOpsItemRequest = (input: GetOpsItemRequest, context }; }; +const serializeAws_json1_1GetOpsMetadataRequest = (input: GetOpsMetadataRequest, context: __SerdeContext): any => { + return { + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + ...(input.OpsMetadataArn !== undefined && { OpsMetadataArn: input.OpsMetadataArn }), + }; +}; + const serializeAws_json1_1GetOpsSummaryRequest = (input: GetOpsSummaryRequest, context: __SerdeContext): any => { return { ...(input.Aggregators !== undefined && { @@ -14976,6 +15561,14 @@ const serializeAws_json1_1ListInventoryEntriesRequest = ( }; }; +const serializeAws_json1_1ListOpsMetadataRequest = (input: ListOpsMetadataRequest, context: __SerdeContext): any => { + return { + ...(input.Filters !== undefined && { Filters: serializeAws_json1_1OpsMetadataFilterList(input.Filters, context) }), + ...(input.MaxResults !== undefined && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListResourceComplianceSummariesRequest = ( input: ListResourceComplianceSummariesRequest, context: __SerdeContext @@ -15142,6 +15735,26 @@ const serializeAws_json1_1MaintenanceWindowTaskParameterValueList = (input: stri return input.map((entry) => entry); }; +const serializeAws_json1_1MetadataKeysToDeleteList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + +const serializeAws_json1_1MetadataMap = (input: { [key: string]: MetadataValue }, context: __SerdeContext): any => { + return Object.entries(input).reduce( + (acc: { [key: string]: MetadataValue }, [key, value]: [string, any]) => ({ + ...acc, + [key]: serializeAws_json1_1MetadataValue(value, context), + }), + {} + ); +}; + +const serializeAws_json1_1MetadataValue = (input: MetadataValue, context: __SerdeContext): any => { + return { + ...(input.Value !== undefined && { Value: input.Value }), + }; +}; + const serializeAws_json1_1ModifyDocumentPermissionRequest = ( input: ModifyDocumentPermissionRequest, context: __SerdeContext @@ -15269,6 +15882,23 @@ const serializeAws_json1_1OpsItemOpsDataKeysList = (input: string[], context: __ return input.map((entry) => entry); }; +const serializeAws_json1_1OpsMetadataFilter = (input: OpsMetadataFilter, context: __SerdeContext): any => { + return { + ...(input.Key !== undefined && { Key: input.Key }), + ...(input.Values !== undefined && { + Values: serializeAws_json1_1OpsMetadataFilterValueList(input.Values, context), + }), + }; +}; + +const serializeAws_json1_1OpsMetadataFilterList = (input: OpsMetadataFilter[], context: __SerdeContext): any => { + return input.map((entry) => serializeAws_json1_1OpsMetadataFilter(entry, context)); +}; + +const serializeAws_json1_1OpsMetadataFilterValueList = (input: string[], context: __SerdeContext): any => { + return input.map((entry) => entry); +}; + const serializeAws_json1_1OpsResultAttribute = (input: OpsResultAttribute, context: __SerdeContext): any => { return { ...(input.TypeName !== undefined && { TypeName: input.TypeName }), @@ -16042,6 +16672,21 @@ const serializeAws_json1_1UpdateOpsItemRequest = (input: UpdateOpsItemRequest, c }; }; +const serializeAws_json1_1UpdateOpsMetadataRequest = ( + input: UpdateOpsMetadataRequest, + context: __SerdeContext +): any => { + return { + ...(input.KeysToDelete !== undefined && { + KeysToDelete: serializeAws_json1_1MetadataKeysToDeleteList(input.KeysToDelete, context), + }), + ...(input.MetadataToUpdate !== undefined && { + MetadataToUpdate: serializeAws_json1_1MetadataMap(input.MetadataToUpdate, context), + }), + ...(input.OpsMetadataArn !== undefined && { OpsMetadataArn: input.OpsMetadataArn }), + }; +}; + const serializeAws_json1_1UpdatePatchBaselineRequest = ( input: UpdatePatchBaselineRequest, context: __SerdeContext @@ -17113,6 +17758,16 @@ const deserializeAws_json1_1CreateOpsItemResponse = (output: any, context: __Ser } as any; }; +const deserializeAws_json1_1CreateOpsMetadataResult = ( + output: any, + context: __SerdeContext +): CreateOpsMetadataResult => { + return { + OpsMetadataArn: + output.OpsMetadataArn !== undefined && output.OpsMetadataArn !== null ? output.OpsMetadataArn : undefined, + } as any; +}; + const deserializeAws_json1_1CreatePatchBaselineResult = ( output: any, context: __SerdeContext @@ -17173,6 +17828,13 @@ const deserializeAws_json1_1DeleteMaintenanceWindowResult = ( } as any; }; +const deserializeAws_json1_1DeleteOpsMetadataResult = ( + output: any, + context: __SerdeContext +): DeleteOpsMetadataResult => { + return {} as any; +}; + const deserializeAws_json1_1DeleteParameterResult = (output: any, context: __SerdeContext): DeleteParameterResult => { return {} as any; }; @@ -18294,6 +18956,17 @@ const deserializeAws_json1_1GetOpsItemResponse = (output: any, context: __SerdeC } as any; }; +const deserializeAws_json1_1GetOpsMetadataResult = (output: any, context: __SerdeContext): GetOpsMetadataResult => { + return { + Metadata: + output.Metadata !== undefined && output.Metadata !== null + ? deserializeAws_json1_1MetadataMap(output.Metadata, context) + : undefined, + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + ResourceId: output.ResourceId !== undefined && output.ResourceId !== null ? output.ResourceId : undefined, + } as any; +}; + const deserializeAws_json1_1GetOpsSummaryResult = (output: any, context: __SerdeContext): GetOpsSummaryResult => { return { Entities: @@ -19341,6 +20014,16 @@ const deserializeAws_json1_1ListInventoryEntriesResult = ( } as any; }; +const deserializeAws_json1_1ListOpsMetadataResult = (output: any, context: __SerdeContext): ListOpsMetadataResult => { + return { + NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, + OpsMetadataList: + output.OpsMetadataList !== undefined && output.OpsMetadataList !== null + ? deserializeAws_json1_1OpsMetadataList(output.OpsMetadataList, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ListResourceComplianceSummariesResult = ( output: any, context: __SerdeContext @@ -19753,6 +20436,22 @@ const deserializeAws_json1_1MaxDocumentSizeExceeded = ( } as any; }; +const deserializeAws_json1_1MetadataMap = (output: any, context: __SerdeContext): { [key: string]: MetadataValue } => { + return Object.entries(output).reduce( + (acc: { [key: string]: MetadataValue }, [key, value]: [string, any]) => ({ + ...acc, + [key]: deserializeAws_json1_1MetadataValue(value, context), + }), + {} + ); +}; + +const deserializeAws_json1_1MetadataValue = (output: any, context: __SerdeContext): MetadataValue => { + return { + Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined, + } as any; +}; + const deserializeAws_json1_1ModifyDocumentPermissionResponse = ( output: any, context: __SerdeContext @@ -20006,6 +20705,82 @@ const deserializeAws_json1_1OpsItemSummary = (output: any, context: __SerdeConte } as any; }; +const deserializeAws_json1_1OpsMetadata = (output: any, context: __SerdeContext): OpsMetadata => { + return { + CreationDate: + output.CreationDate !== undefined && output.CreationDate !== null + ? new Date(Math.round(output.CreationDate * 1000)) + : undefined, + LastModifiedDate: + output.LastModifiedDate !== undefined && output.LastModifiedDate !== null + ? new Date(Math.round(output.LastModifiedDate * 1000)) + : undefined, + LastModifiedUser: + output.LastModifiedUser !== undefined && output.LastModifiedUser !== null ? output.LastModifiedUser : undefined, + OpsMetadataArn: + output.OpsMetadataArn !== undefined && output.OpsMetadataArn !== null ? output.OpsMetadataArn : undefined, + ResourceId: output.ResourceId !== undefined && output.ResourceId !== null ? output.ResourceId : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataAlreadyExistsException = ( + output: any, + context: __SerdeContext +): OpsMetadataAlreadyExistsException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataInvalidArgumentException = ( + output: any, + context: __SerdeContext +): OpsMetadataInvalidArgumentException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataKeyLimitExceededException = ( + output: any, + context: __SerdeContext +): OpsMetadataKeyLimitExceededException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataLimitExceededException = ( + output: any, + context: __SerdeContext +): OpsMetadataLimitExceededException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataList = (output: any, context: __SerdeContext): OpsMetadata[] => { + return (output || []).map((entry: any) => deserializeAws_json1_1OpsMetadata(entry, context)); +}; + +const deserializeAws_json1_1OpsMetadataNotFoundException = ( + output: any, + context: __SerdeContext +): OpsMetadataNotFoundException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + +const deserializeAws_json1_1OpsMetadataTooManyUpdatesException = ( + output: any, + context: __SerdeContext +): OpsMetadataTooManyUpdatesException => { + return { + message: output.message !== undefined && output.message !== null ? output.message : undefined, + } as any; +}; + const deserializeAws_json1_1OutputSource = (output: any, context: __SerdeContext): OutputSource => { return { OutputSourceId: @@ -21343,6 +22118,16 @@ const deserializeAws_json1_1UpdateOpsItemResponse = (output: any, context: __Ser return {} as any; }; +const deserializeAws_json1_1UpdateOpsMetadataResult = ( + output: any, + context: __SerdeContext +): UpdateOpsMetadataResult => { + return { + OpsMetadataArn: + output.OpsMetadataArn !== undefined && output.OpsMetadataArn !== null ? output.OpsMetadataArn : undefined, + } as any; +}; + const deserializeAws_json1_1UpdatePatchBaselineResult = ( output: any, context: __SerdeContext diff --git a/clients/client-workspaces/WorkSpaces.ts b/clients/client-workspaces/WorkSpaces.ts index 95dec0854c45b..cd46006a5dece 100644 --- a/clients/client-workspaces/WorkSpaces.ts +++ b/clients/client-workspaces/WorkSpaces.ts @@ -360,6 +360,13 @@ export class WorkSpaces extends WorkSpacesClient { * * Copy a Custom WorkSpaces Image.

                          * + * + *

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          + * + *

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, + * contact AWS Support.

                          + *
                          + * * *

                          Before copying a shared image, be sure to verify that it has been shared from the * correct AWS account. To determine if an image has been shared and to see the AWS @@ -675,6 +682,20 @@ export class WorkSpaces extends WorkSpacesClient { *

                          Deregisters the specified directory. This operation is asynchronous * and returns before the WorkSpace directory is deregistered. If any WorkSpaces are * registered to this directory, you must remove them before you can deregister the directory.

                          + * + * + *

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. + * If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 + * consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, + * and you will be charged for this directory as per the + * AWS Directory Services pricing terms.

                          + * + *

                          To delete empty directories, see + * + * Delete the Directory for Your WorkSpaces. If you delete your + * Simple AD or AD Connector directory, you can always create a new one when you want to start using + * WorkSpaces again.

                          + *
                          */ public deregisterWorkspaceDirectory( args: DeregisterWorkspaceDirectoryCommandInput, @@ -1854,6 +1875,20 @@ export class WorkSpaces extends WorkSpacesClient { * * DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has * been successfully terminated.

                          + * + * + *

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. + * If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 + * consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, + * and you will be charged for this directory as per the + * AWS Directory Services pricing terms.

                          + * + *

                          To delete empty directories, see + * + * Delete the Directory for Your WorkSpaces. If you delete your + * Simple AD or AD Connector directory, you can always create a new one when you want to start using + * WorkSpaces again.

                          + *
                          */ public terminateWorkspaces( args: TerminateWorkspacesCommandInput, @@ -1969,9 +2004,20 @@ export class WorkSpaces extends WorkSpacesClient { } /** - *

                          Shares or unshares an image with one account by specifying whether that account has permission to copy - * the image. If the copy image permission is granted, the image is shared with that account. If the copy image - * permission is revoked, the image is unshared with the account. For more information about sharing images, see + *

                          Shares or unshares an image with one account in the same AWS Region by specifying whether that account has + * permission to copy the image. If the copy image permission is granted, the image is shared with that account. + * If the copy image permission is revoked, the image is unshared with the account.

                          + * + *

                          After an image has been shared, the recipient account can copy the image to other AWS Regions as needed.

                          + * + * + *

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          + * + *

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, + * contact AWS Support.

                          + *
                          + * + *

                          For more information about sharing images, see * * Share or Unshare a Custom WorkSpaces Image.

                          * diff --git a/clients/client-workspaces/commands/CopyWorkspaceImageCommand.ts b/clients/client-workspaces/commands/CopyWorkspaceImageCommand.ts index 2b0b50f49161b..8deda3a39d02b 100644 --- a/clients/client-workspaces/commands/CopyWorkspaceImageCommand.ts +++ b/clients/client-workspaces/commands/CopyWorkspaceImageCommand.ts @@ -26,6 +26,13 @@ export type CopyWorkspaceImageCommandOutput = CopyWorkspaceImageResult & __Metad * * Copy a Custom WorkSpaces Image.

                          * + * + *

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          + * + *

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, + * contact AWS Support.

                          + *
                          + * * *

                          Before copying a shared image, be sure to verify that it has been shared from the * correct AWS account. To determine if an image has been shared and to see the AWS diff --git a/clients/client-workspaces/commands/DeregisterWorkspaceDirectoryCommand.ts b/clients/client-workspaces/commands/DeregisterWorkspaceDirectoryCommand.ts index 8a2dfbf4ec279..b0535a218d9ea 100644 --- a/clients/client-workspaces/commands/DeregisterWorkspaceDirectoryCommand.ts +++ b/clients/client-workspaces/commands/DeregisterWorkspaceDirectoryCommand.ts @@ -24,6 +24,20 @@ export type DeregisterWorkspaceDirectoryCommandOutput = DeregisterWorkspaceDirec *

                          Deregisters the specified directory. This operation is asynchronous * and returns before the WorkSpace directory is deregistered. If any WorkSpaces are * registered to this directory, you must remove them before you can deregister the directory.

                          + * + * + *

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. + * If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 + * consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, + * and you will be charged for this directory as per the + * AWS Directory Services pricing terms.

                          + * + *

                          To delete empty directories, see + * + * Delete the Directory for Your WorkSpaces. If you delete your + * Simple AD or AD Connector directory, you can always create a new one when you want to start using + * WorkSpaces again.

                          + *
                          */ export class DeregisterWorkspaceDirectoryCommand extends $Command< DeregisterWorkspaceDirectoryCommandInput, diff --git a/clients/client-workspaces/commands/TerminateWorkspacesCommand.ts b/clients/client-workspaces/commands/TerminateWorkspacesCommand.ts index 803b1ca6e6039..5eadba9695e69 100644 --- a/clients/client-workspaces/commands/TerminateWorkspacesCommand.ts +++ b/clients/client-workspaces/commands/TerminateWorkspacesCommand.ts @@ -37,6 +37,20 @@ export type TerminateWorkspacesCommandOutput = TerminateWorkspacesResult & __Met * * DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has * been successfully terminated.

                          + * + * + *

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. + * If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 + * consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, + * and you will be charged for this directory as per the + * AWS Directory Services pricing terms.

                          + * + *

                          To delete empty directories, see + * + * Delete the Directory for Your WorkSpaces. If you delete your + * Simple AD or AD Connector directory, you can always create a new one when you want to start using + * WorkSpaces again.

                          + *
                          */ export class TerminateWorkspacesCommand extends $Command< TerminateWorkspacesCommandInput, diff --git a/clients/client-workspaces/commands/UpdateWorkspaceImagePermissionCommand.ts b/clients/client-workspaces/commands/UpdateWorkspaceImagePermissionCommand.ts index 0f385b9dc37a5..3389be5b7ece9 100644 --- a/clients/client-workspaces/commands/UpdateWorkspaceImagePermissionCommand.ts +++ b/clients/client-workspaces/commands/UpdateWorkspaceImagePermissionCommand.ts @@ -21,9 +21,20 @@ export type UpdateWorkspaceImagePermissionCommandInput = UpdateWorkspaceImagePer export type UpdateWorkspaceImagePermissionCommandOutput = UpdateWorkspaceImagePermissionResult & __MetadataBearer; /** - *

                          Shares or unshares an image with one account by specifying whether that account has permission to copy - * the image. If the copy image permission is granted, the image is shared with that account. If the copy image - * permission is revoked, the image is unshared with the account. For more information about sharing images, see + *

                          Shares or unshares an image with one account in the same AWS Region by specifying whether that account has + * permission to copy the image. If the copy image permission is granted, the image is shared with that account. + * If the copy image permission is revoked, the image is unshared with the account.

                          + * + *

                          After an image has been shared, the recipient account can copy the image to other AWS Regions as needed.

                          + * + * + *

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          + * + *

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, + * contact AWS Support.

                          + *
                          + * + *

                          For more information about sharing images, see * * Share or Unshare a Custom WorkSpaces Image.

                          * diff --git a/clients/client-workspaces/models/models_0.ts b/clients/client-workspaces/models/models_0.ts index 38c0d6ca251d3..61f1bc4a8856f 100644 --- a/clients/client-workspaces/models/models_0.ts +++ b/clients/client-workspaces/models/models_0.ts @@ -37,15 +37,21 @@ export enum DedicatedTenancyModificationStateEnum { * specified account.

                          */ export interface AccountModification { + /** + *

                          The state of the modification to the configuration of BYOL.

                          + */ + ModificationState?: DedicatedTenancyModificationStateEnum | string; + /** *

                          The status of BYOL (whether BYOL is being enabled or disabled).

                          */ DedicatedTenancySupport?: DedicatedTenancySupportResultEnum | string; /** - *

                          The error code that is returned if the configuration of BYOL cannot be modified.

                          + *

                          The IP address range, specified as an IPv4 CIDR block, for the management network + * interface used for the account.

                          */ - ErrorCode?: string; + DedicatedTenancyManagementCidrRange?: string; /** *

                          The timestamp when the modification of the BYOL configuration was started.

                          @@ -53,21 +59,15 @@ export interface AccountModification { StartTime?: Date; /** - *

                          The text of the error message that is returned if the configuration of BYOL cannot be - * modified.

                          - */ - ErrorMessage?: string; - - /** - *

                          The IP address range, specified as an IPv4 CIDR block, for the management network - * interface used for the account.

                          + *

                          The error code that is returned if the configuration of BYOL cannot be modified.

                          */ - DedicatedTenancyManagementCidrRange?: string; + ErrorCode?: string; /** - *

                          The state of the modification to the configuration of BYOL.

                          + *

                          The text of the error message that is returned if the configuration of BYOL cannot be + * modified.

                          */ - ModificationState?: DedicatedTenancyModificationStateEnum | string; + ErrorMessage?: string; } export namespace AccountModification { @@ -361,25 +361,20 @@ export namespace UserStorage { */ export interface WorkspaceBundle { /** - *

                          The size of the root volume.

                          - */ - RootStorage?: RootStorage; - - /** - *

                          The owner of the bundle. This is the account identifier of the owner, or - * AMAZON if the bundle is provided by AWS.

                          + *

                          The bundle identifier.

                          */ - Owner?: string; + BundleId?: string; /** - *

                          The size of the user storage.

                          + *

                          The name of the bundle.

                          */ - UserStorage?: UserStorage; + Name?: string; /** - *

                          The compute type. For more information, see Amazon WorkSpaces Bundles.

                          + *

                          The owner of the bundle. This is the account identifier of the owner, or + * AMAZON if the bundle is provided by AWS.

                          */ - ComputeType?: ComputeType; + Owner?: string; /** *

                          A description.

                          @@ -392,14 +387,19 @@ export interface WorkspaceBundle { ImageId?: string; /** - *

                          The bundle identifier.

                          + *

                          The size of the root volume.

                          */ - BundleId?: string; + RootStorage?: RootStorage; /** - *

                          The name of the bundle.

                          + *

                          The size of the user storage.

                          */ - Name?: string; + UserStorage?: UserStorage; + + /** + *

                          The compute type. For more information, see Amazon WorkSpaces Bundles.

                          + */ + ComputeType?: ComputeType; /** *

                          The last time that the bundle was updated.

                          @@ -469,14 +469,14 @@ export interface ConnectionAliasAssociation { AssociationStatus?: AssociationStatus | string; /** - *

                          The identifier of the directory associated with a connection alias.

                          + *

                          The identifier of the AWS account that associated the connection alias with a directory.

                          */ - ResourceId?: string; + AssociatedAccountId?: string; /** - *

                          The identifier of the AWS account that associated the connection alias with a directory.

                          + *

                          The identifier of the directory associated with a connection alias.

                          */ - AssociatedAccountId?: string; + ResourceId?: string; /** *

                          The identifier of the connection alias association. You use the connection identifier in the DNS TXT record when @@ -504,9 +504,10 @@ export enum ConnectionAliasState { */ export interface ConnectionAlias { /** - *

                          The association status of the connection alias.

                          + *

                          The connection string specified for the connection alias. The connection string must be in the form of + * a fully qualified domain name (FQDN), such as www.example.com.

                          */ - Associations?: ConnectionAliasAssociation[]; + ConnectionString?: string; /** *

                          The identifier of the connection alias.

                          @@ -514,20 +515,19 @@ export interface ConnectionAlias { AliasId?: string; /** - *

                          The identifier of the AWS account that owns the connection alias.

                          + *

                          The current state of the connection alias.

                          */ - OwnerAccountId?: string; + State?: ConnectionAliasState | string; /** - *

                          The connection string specified for the connection alias. The connection string must be in the form of - * a fully qualified domain name (FQDN), such as www.example.com.

                          + *

                          The identifier of the AWS account that owns the connection alias.

                          */ - ConnectionString?: string; + OwnerAccountId?: string; /** - *

                          The current state of the connection alias.

                          + *

                          The association status of the connection alias.

                          */ - State?: ConnectionAliasState | string; + Associations?: ConnectionAliasAssociation[]; } export namespace ConnectionAlias { @@ -588,9 +588,14 @@ export namespace Tag { export interface CopyWorkspaceImageRequest { /** - *

                          The identifier of the source Region.

                          + *

                          The name of the image.

                          */ - SourceRegion: string | undefined; + Name: string | undefined; + + /** + *

                          A description of the image.

                          + */ + Description?: string; /** *

                          The identifier of the source image.

                          @@ -598,19 +603,14 @@ export interface CopyWorkspaceImageRequest { SourceImageId: string | undefined; /** - *

                          The name of the image.

                          + *

                          The identifier of the source Region.

                          */ - Name: string | undefined; + SourceRegion: string | undefined; /** *

                          The tags for the image.

                          */ Tags?: Tag[]; - - /** - *

                          A description of the image.

                          - */ - Description?: string; } export namespace CopyWorkspaceImageRequest { @@ -709,9 +709,9 @@ export namespace CreateConnectionAliasResult { export interface CreateIpGroupRequest { /** - *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          + *

                          The name of the group.

                          */ - Tags?: Tag[]; + GroupName: string | undefined; /** *

                          The description of the group.

                          @@ -724,9 +724,9 @@ export interface CreateIpGroupRequest { UserRules?: IpRuleItem[]; /** - *

                          The name of the group.

                          + *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          */ - GroupName: string | undefined; + Tags?: Tag[]; } export namespace CreateIpGroupRequest { @@ -764,16 +764,16 @@ export namespace ResourceCreationFailedException { } export interface CreateTagsRequest { - /** - *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          - */ - Tags: Tag[] | undefined; - /** *

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces, * registered directories, images, custom bundles, IP access control groups, and connection aliases.

                          */ ResourceId: string | undefined; + + /** + *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          + */ + Tags: Tag[] | undefined; } export namespace CreateTagsRequest { @@ -800,33 +800,33 @@ export enum RunningMode { */ export interface WorkspaceProperties { /** - *

                          The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals.

                          + *

                          The running mode. For more information, see Manage the WorkSpace Running + * Mode.

                          */ - RunningModeAutoStopTimeoutInMinutes?: number; + RunningMode?: RunningMode | string; /** - *

                          The compute type. For more information, see Amazon WorkSpaces - * Bundles.

                          + *

                          The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals.

                          */ - ComputeTypeName?: Compute | string; + RunningModeAutoStopTimeoutInMinutes?: number; /** - *

                          The size of the user storage. For important information about how to modify the size of the root and user volumes, see + *

                          The size of the root volume. For important information about how to modify the size of the root and user volumes, see * Modify a WorkSpace.

                          */ - UserVolumeSizeGib?: number; + RootVolumeSizeGib?: number; /** - *

                          The size of the root volume. For important information about how to modify the size of the root and user volumes, see + *

                          The size of the user storage. For important information about how to modify the size of the root and user volumes, see * Modify a WorkSpace.

                          */ - RootVolumeSizeGib?: number; + UserVolumeSizeGib?: number; /** - *

                          The running mode. For more information, see Manage the WorkSpace Running - * Mode.

                          + *

                          The compute type. For more information, see Amazon WorkSpaces + * Bundles.

                          */ - RunningMode?: RunningMode | string; + ComputeTypeName?: Compute | string; } export namespace WorkspaceProperties { @@ -840,14 +840,16 @@ export namespace WorkspaceProperties { */ export interface WorkspaceRequest { /** - *

                          The WorkSpace properties.

                          + *

                          The identifier of the AWS Directory Service directory for the WorkSpace. You can use + * DescribeWorkspaceDirectories to list the available directories.

                          */ - WorkspaceProperties?: WorkspaceProperties; + DirectoryId: string | undefined; /** - *

                          The tags for the WorkSpace.

                          + *

                          The user name of the user for the WorkSpace. This user name must exist in the AWS + * Directory Service directory for the WorkSpace.

                          */ - Tags?: Tag[]; + UserName: string | undefined; /** *

                          The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles to list the available bundles.

                          @@ -855,10 +857,10 @@ export interface WorkspaceRequest { BundleId: string | undefined; /** - *

                          The user name of the user for the WorkSpace. This user name must exist in the AWS - * Directory Service directory for the WorkSpace.

                          + *

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. + * Amazon WorkSpaces does not support asymmetric CMKs.

                          */ - UserName: string | undefined; + VolumeEncryptionKey?: string; /** *

                          Indicates whether the data stored on the user volume is encrypted.

                          @@ -871,16 +873,14 @@ export interface WorkspaceRequest { RootVolumeEncryptionEnabled?: boolean; /** - *

                          The identifier of the AWS Directory Service directory for the WorkSpace. You can use - * DescribeWorkspaceDirectories to list the available directories.

                          + *

                          The WorkSpace properties.

                          */ - DirectoryId: string | undefined; + WorkspaceProperties?: WorkspaceProperties; /** - *

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. - * Amazon WorkSpaces does not support asymmetric CMKs.

                          + *

                          The tags for the WorkSpace.

                          */ - VolumeEncryptionKey?: string; + Tags?: Tag[]; } export namespace WorkspaceRequest { @@ -906,6 +906,11 @@ export namespace CreateWorkspacesRequest { *

                          Describes a WorkSpace that cannot be created.

                          */ export interface FailedCreateWorkspaceRequest { + /** + *

                          Information about the WorkSpace.

                          + */ + WorkspaceRequest?: WorkspaceRequest; + /** *

                          The error code that is returned if the WorkSpace cannot be created.

                          */ @@ -916,11 +921,6 @@ export interface FailedCreateWorkspaceRequest { * created.

                          */ ErrorMessage?: string; - - /** - *

                          Information about the WorkSpace.

                          - */ - WorkspaceRequest?: WorkspaceRequest; } export namespace FailedCreateWorkspaceRequest { @@ -945,14 +945,14 @@ export enum ModificationStateEnum { */ export interface ModificationState { /** - *

                          The modification state.

                          + *

                          The resource.

                          */ - State?: ModificationStateEnum | string; + Resource?: ModificationResourceEnum | string; /** - *

                          The resource.

                          + *

                          The modification state.

                          */ - Resource?: ModificationResourceEnum | string; + State?: ModificationStateEnum | string; } export namespace ModificationState { @@ -986,15 +986,24 @@ export enum WorkspaceState { */ export interface Workspace { /** - *

                          The text of the error message that is returned if the WorkSpace cannot be - * created.

                          + *

                          The identifier of the WorkSpace.

                          */ - ErrorMessage?: string; + WorkspaceId?: string; /** - *

                          Indicates whether the data stored on the user volume is encrypted.

                          + *

                          The identifier of the AWS Directory Service directory for the WorkSpace.

                          */ - UserVolumeEncryptionEnabled?: boolean; + DirectoryId?: string; + + /** + *

                          The user for the WorkSpace.

                          + */ + UserName?: string; + + /** + *

                          The IP address of the WorkSpace.

                          + */ + IpAddress?: string; /** *

                          The operational state of the WorkSpace.

                          @@ -1010,46 +1019,26 @@ export interface Workspace { */ State?: WorkspaceState | string; - /** - *

                          The properties of the WorkSpace.

                          - */ - WorkspaceProperties?: WorkspaceProperties; - /** *

                          The identifier of the bundle used to create the WorkSpace.

                          */ BundleId?: string; - /** - *

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. - * Amazon WorkSpaces does not support asymmetric CMKs.

                          - */ - VolumeEncryptionKey?: string; - - /** - *

                          The identifier of the AWS Directory Service directory for the WorkSpace.

                          - */ - DirectoryId?: string; - - /** - *

                          The modification states of the WorkSpace.

                          - */ - ModificationStates?: ModificationState[]; - /** *

                          The identifier of the subnet for the WorkSpace.

                          */ SubnetId?: string; /** - *

                          The error code that is returned if the WorkSpace cannot be created.

                          + *

                          The text of the error message that is returned if the WorkSpace cannot be + * created.

                          */ - ErrorCode?: string; + ErrorMessage?: string; /** - *

                          The IP address of the WorkSpace.

                          + *

                          The error code that is returned if the WorkSpace cannot be created.

                          */ - IpAddress?: string; + ErrorCode?: string; /** *

                          The name of the WorkSpace, as seen by the operating system. The format of this name varies. @@ -1059,9 +1048,15 @@ export interface Workspace { ComputerName?: string; /** - *

                          The user for the WorkSpace.

                          + *

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. + * Amazon WorkSpaces does not support asymmetric CMKs.

                          */ - UserName?: string; + VolumeEncryptionKey?: string; + + /** + *

                          Indicates whether the data stored on the user volume is encrypted.

                          + */ + UserVolumeEncryptionEnabled?: boolean; /** *

                          Indicates whether the data stored on the root volume is encrypted.

                          @@ -1069,9 +1064,14 @@ export interface Workspace { RootVolumeEncryptionEnabled?: boolean; /** - *

                          The identifier of the WorkSpace.

                          + *

                          The properties of the WorkSpace.

                          */ - WorkspaceId?: string; + WorkspaceProperties?: WorkspaceProperties; + + /** + *

                          The modification states of the WorkSpace.

                          + */ + ModificationStates?: ModificationState[]; } export namespace Workspace { @@ -1081,6 +1081,11 @@ export namespace Workspace { } export interface CreateWorkspacesResult { + /** + *

                          Information about the WorkSpaces that could not be created.

                          + */ + FailedRequests?: FailedCreateWorkspaceRequest[]; + /** *

                          Information about the WorkSpaces that were created.

                          *

                          Because this operation is asynchronous, the identifier returned is not immediately @@ -1088,11 +1093,6 @@ export interface CreateWorkspacesResult { * can be incomplete.

                          */ PendingRequests?: Workspace[]; - - /** - *

                          Information about the WorkSpaces that could not be created.

                          - */ - FailedRequests?: FailedCreateWorkspaceRequest[]; } export namespace CreateWorkspacesResult { @@ -1109,16 +1109,6 @@ export enum DedicatedTenancySupportEnum { *

                          Describes the default values that are used to create WorkSpaces. For more information, see Update Directory Details for Your WorkSpaces.

                          */ export interface DefaultWorkspaceCreationProperties { - /** - *

                          Specifies whether WorkSpace users are local administrators on their WorkSpaces.

                          - */ - UserEnabledAsLocalAdministrator?: boolean; - - /** - *

                          The organizational unit (OU) in the directory for the WorkSpace machine accounts.

                          - */ - DefaultOu?: string; - /** *

                          Specifies whether the directory is enabled for Amazon WorkDocs.

                          */ @@ -1136,6 +1126,11 @@ export interface DefaultWorkspaceCreationProperties { */ EnableInternetAccess?: boolean; + /** + *

                          The organizational unit (OU) in the directory for the WorkSpace machine accounts.

                          + */ + DefaultOu?: string; + /** *

                          The identifier of the default security group to apply to WorkSpaces when they are created. * For more information, see @@ -1144,6 +1139,11 @@ export interface DefaultWorkspaceCreationProperties { */ CustomSecurityGroupId?: string; + /** + *

                          Specifies whether WorkSpace users are local administrators on their WorkSpaces.

                          + */ + UserEnabledAsLocalAdministrator?: boolean; + /** *

                          Specifies whether maintenance mode is enabled for WorkSpaces. For more information, see * WorkSpace @@ -1201,16 +1201,16 @@ export namespace DeleteIpGroupResult { } export interface DeleteTagsRequest { - /** - *

                          The tag keys.

                          - */ - TagKeys: string[] | undefined; - /** *

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces, * registered directories, images, custom bundles, IP access control groups, and connection aliases.

                          */ ResourceId: string | undefined; + + /** + *

                          The tag keys.

                          + */ + TagKeys: string[] | undefined; } export namespace DeleteTagsRequest { @@ -1280,6 +1280,11 @@ export namespace DescribeAccountRequest { } export interface DescribeAccountResult { + /** + *

                          The status of BYOL (whether BYOL is enabled or disabled).

                          + */ + DedicatedTenancySupport?: DedicatedTenancySupportResultEnum | string; + /** *

                          The IP address range, specified as an IPv4 CIDR block, used for the management network * interface.

                          @@ -1288,11 +1293,6 @@ export interface DescribeAccountResult { * clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

                          */ DedicatedTenancyManagementCidrRange?: string; - - /** - *

                          The status of BYOL (whether BYOL is enabled or disabled).

                          - */ - DedicatedTenancySupport?: DedicatedTenancySupportResultEnum | string; } export namespace DescribeAccountResult { @@ -1317,15 +1317,15 @@ export namespace DescribeAccountModificationsRequest { export interface DescribeAccountModificationsResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          + *

                          The list of modifications to the configuration of BYOL.

                          */ - NextToken?: string; + AccountModifications?: AccountModification[]; /** - *

                          The list of modifications to the configuration of BYOL.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          */ - AccountModifications?: AccountModification[]; + NextToken?: string; } export namespace DescribeAccountModificationsResult { @@ -1362,9 +1362,9 @@ export namespace DescribeClientPropertiesResult { export interface DescribeConnectionAliasesRequest { /** - *

                          The maximum number of connection aliases to return.

                          + *

                          The identifiers of the connection aliases to describe.

                          */ - Limit?: number; + AliasIds?: string[]; /** *

                          The identifier of the directory associated with the connection alias.

                          @@ -1372,15 +1372,15 @@ export interface DescribeConnectionAliasesRequest { ResourceId?: string; /** - *

                          If you received a NextToken from a previous call that was paginated, provide this token to receive the - * next set of results.

                          + *

                          The maximum number of connection aliases to return.

                          */ - NextToken?: string; + Limit?: number; /** - *

                          The identifiers of the connection aliases to describe.

                          + *

                          If you received a NextToken from a previous call that was paginated, provide this token to receive the + * next set of results.

                          */ - AliasIds?: string[]; + NextToken?: string; } export namespace DescribeConnectionAliasesRequest { @@ -1391,14 +1391,14 @@ export namespace DescribeConnectionAliasesRequest { export interface DescribeConnectionAliasesResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          + *

                          Information about the specified connection aliases.

                          */ - NextToken?: string; + ConnectionAliases?: ConnectionAlias[]; /** - *

                          Information about the specified connection aliases.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          */ - ConnectionAliases?: ConnectionAlias[]; + NextToken?: string; } export namespace DescribeConnectionAliasesResult { @@ -1408,6 +1408,11 @@ export namespace DescribeConnectionAliasesResult { } export interface DescribeConnectionAliasPermissionsRequest { + /** + *

                          The identifier of the connection alias.

                          + */ + AliasId: string | undefined; + /** *

                          If you received a NextToken from a previous call that was paginated, provide this token to receive the * next set of results.

                          @@ -1418,11 +1423,6 @@ export interface DescribeConnectionAliasPermissionsRequest { *

                          The maximum number of results to return.

                          */ MaxResults?: number; - - /** - *

                          The identifier of the connection alias.

                          - */ - AliasId: string | undefined; } export namespace DescribeConnectionAliasPermissionsRequest { @@ -1432,11 +1432,6 @@ export namespace DescribeConnectionAliasPermissionsRequest { } export interface DescribeConnectionAliasPermissionsResult { - /** - *

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          - */ - NextToken?: string; - /** *

                          The identifier of the connection alias.

                          */ @@ -1446,6 +1441,11 @@ export interface DescribeConnectionAliasPermissionsResult { *

                          The permissions associated with a connection alias.

                          */ ConnectionAliasPermissions?: ConnectionAliasPermission[]; + + /** + *

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          + */ + NextToken?: string; } export namespace DescribeConnectionAliasPermissionsResult { @@ -1456,15 +1456,15 @@ export namespace DescribeConnectionAliasPermissionsResult { export interface DescribeIpGroupsRequest { /** - *

                          If you received a NextToken from a previous call that was paginated, - * provide this token to receive the next set of results.

                          + *

                          The identifiers of one or more IP access control groups.

                          */ - NextToken?: string; + GroupIds?: string[]; /** - *

                          The identifiers of one or more IP access control groups.

                          + *

                          If you received a NextToken from a previous call that was paginated, + * provide this token to receive the next set of results.

                          */ - GroupIds?: string[]; + NextToken?: string; /** *

                          The maximum number of items to return.

                          @@ -1483,9 +1483,9 @@ export namespace DescribeIpGroupsRequest { */ export interface WorkspacesIpGroup { /** - *

                          The rules.

                          + *

                          The identifier of the group.

                          */ - userRules?: IpRuleItem[]; + groupId?: string; /** *

                          The name of the group.

                          @@ -1498,9 +1498,9 @@ export interface WorkspacesIpGroup { groupDesc?: string; /** - *

                          The identifier of the group.

                          + *

                          The rules.

                          */ - groupId?: string; + userRules?: IpRuleItem[]; } export namespace WorkspacesIpGroup { @@ -1511,15 +1511,15 @@ export namespace WorkspacesIpGroup { export interface DescribeIpGroupsResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          + *

                          Information about the IP access control groups.

                          */ - NextToken?: string; + Result?: WorkspacesIpGroup[]; /** - *

                          Information about the IP access control groups.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          */ - Result?: WorkspacesIpGroup[]; + NextToken?: string; } export namespace DescribeIpGroupsResult { @@ -1556,11 +1556,6 @@ export namespace DescribeTagsResult { } export interface DescribeWorkspaceBundlesRequest { - /** - *

                          The token for the next set of results. (You received this token from a previous call.)

                          - */ - NextToken?: string; - /** *

                          The identifiers of the bundles. You cannot combine this parameter with any other filter.

                          */ @@ -1572,6 +1567,11 @@ export interface DescribeWorkspaceBundlesRequest { * to describe the bundles that belong to your account.

                          */ Owner?: string; + + /** + *

                          The token for the next set of results. (You received this token from a previous call.)

                          + */ + NextToken?: string; } export namespace DescribeWorkspaceBundlesRequest { @@ -1601,10 +1601,10 @@ export namespace DescribeWorkspaceBundlesResult { export interface DescribeWorkspaceDirectoriesRequest { /** - *

                          If you received a NextToken from a previous call that was paginated, - * provide this token to receive the next set of results.

                          + *

                          The identifiers of the directories. If the value is null, all directories are + * retrieved.

                          */ - NextToken?: string; + DirectoryIds?: string[]; /** *

                          The maximum number of directories to return.

                          @@ -1612,10 +1612,10 @@ export interface DescribeWorkspaceDirectoriesRequest { Limit?: number; /** - *

                          The identifiers of the directories. If the value is null, all directories are - * retrieved.

                          + *

                          If you received a NextToken from a previous call that was paginated, + * provide this token to receive the next set of results.

                          */ - DirectoryIds?: string[]; + NextToken?: string; } export namespace DescribeWorkspaceDirectoriesRequest { @@ -1634,16 +1634,15 @@ export enum WorkspaceDirectoryType { */ export interface SelfservicePermissions { /** - *

                          Specifies whether users can increase the volume size of the drives on their - * WorkSpace.

                          + *

                          Specifies whether users can restart their WorkSpace.

                          */ - IncreaseVolumeSize?: ReconnectEnum | string; + RestartWorkspace?: ReconnectEnum | string; /** - *

                          Specifies whether users can rebuild the operating system of a WorkSpace to its original - * state.

                          + *

                          Specifies whether users can increase the volume size of the drives on their + * WorkSpace.

                          */ - RebuildWorkspace?: ReconnectEnum | string; + IncreaseVolumeSize?: ReconnectEnum | string; /** *

                          Specifies whether users can change the compute type (bundle) for their WorkSpace.

                          @@ -1656,9 +1655,10 @@ export interface SelfservicePermissions { SwitchRunningMode?: ReconnectEnum | string; /** - *

                          Specifies whether users can restart their WorkSpace.

                          + *

                          Specifies whether users can rebuild the operating system of a WorkSpace to its original + * state.

                          */ - RestartWorkspace?: ReconnectEnum | string; + RebuildWorkspace?: ReconnectEnum | string; } export namespace SelfservicePermissions { @@ -1695,14 +1695,17 @@ export interface WorkspaceAccessProperties { DeviceTypeWindows?: AccessPropertyValue | string; /** - *

                          Indicates whether users can use zero client devices to access their WorkSpaces.

                          + *

                          Indicates whether users can use macOS clients to access their WorkSpaces. To restrict + * WorkSpaces access to trusted devices (also known as managed devices) with valid + * certificates, specify a value of TRUST. For more information, see Restrict + * WorkSpaces Access to Trusted Devices.

                          */ - DeviceTypeZeroClient?: AccessPropertyValue | string; + DeviceTypeOsx?: AccessPropertyValue | string; /** - *

                          Indicates whether users can use Chromebooks to access their WorkSpaces.

                          + *

                          Indicates whether users can access their WorkSpaces through a web browser.

                          */ - DeviceTypeChromeOs?: AccessPropertyValue | string; + DeviceTypeWeb?: AccessPropertyValue | string; /** *

                          Indicates whether users can use iOS devices to access their WorkSpaces.

                          @@ -1715,17 +1718,14 @@ export interface WorkspaceAccessProperties { DeviceTypeAndroid?: AccessPropertyValue | string; /** - *

                          Indicates whether users can access their WorkSpaces through a web browser.

                          + *

                          Indicates whether users can use Chromebooks to access their WorkSpaces.

                          */ - DeviceTypeWeb?: AccessPropertyValue | string; + DeviceTypeChromeOs?: AccessPropertyValue | string; /** - *

                          Indicates whether users can use macOS clients to access their WorkSpaces. To restrict - * WorkSpaces access to trusted devices (also known as managed devices) with valid - * certificates, specify a value of TRUST. For more information, see Restrict - * WorkSpaces Access to Trusted Devices.

                          + *

                          Indicates whether users can use zero client devices to access their WorkSpaces.

                          */ - DeviceTypeOsx?: AccessPropertyValue | string; + DeviceTypeZeroClient?: AccessPropertyValue | string; } export namespace WorkspaceAccessProperties { @@ -1744,31 +1744,25 @@ export interface WorkspaceDirectory { DirectoryId?: string; /** - *

                          The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make - * calls to other services, such as Amazon EC2, on your behalf.

                          + *

                          The directory alias.

                          */ - IamRoleId?: string; + Alias?: string; /** - *

                          The state of the directory's registration with Amazon WorkSpaces. After a directory is - * deregistered, the DEREGISTERED state is returned very briefly before the directory - * metadata is cleaned up, so this state is rarely returned. To confirm that a directory is deregistered, - * check for the directory ID by using - * - * DescribeWorkspaceDirectories. If the directory ID isn't returned, then the directory has been - * successfully deregistered.

                          + *

                          The name of the directory.

                          */ - State?: WorkspaceDirectoryState | string; + DirectoryName?: string; /** - *

                          The name of the directory.

                          + *

                          The registration code for the directory. This is the code that users enter in their + * Amazon WorkSpaces client application to connect to the directory.

                          */ - DirectoryName?: string; + RegistrationCode?: string; /** - *

                          The devices and operating systems that users can use to access WorkSpaces.

                          + *

                          The identifiers of the subnets used with the directory.

                          */ - WorkspaceAccessProperties?: WorkspaceAccessProperties; + SubnetIds?: string[]; /** *

                          The IP addresses of the DNS servers for the directory.

                          @@ -1776,52 +1770,58 @@ export interface WorkspaceDirectory { DnsIpAddresses?: string[]; /** - *

                          The registration code for the directory. This is the code that users enter in their - * Amazon WorkSpaces client application to connect to the directory.

                          + *

                          The user name for the service account.

                          */ - RegistrationCode?: string; + CustomerUserName?: string; /** - *

                          The identifier of the security group that is assigned to new WorkSpaces.

                          + *

                          The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make + * calls to other services, such as Amazon EC2, on your behalf.

                          */ - WorkspaceSecurityGroupId?: string; + IamRoleId?: string; /** - *

                          Specifies whether the directory is dedicated or shared. To use Bring Your Own License - * (BYOL), this value must be set to DEDICATED. For more information, see Bring - * Your Own Windows Desktop Images.

                          + *

                          The directory type.

                          */ - Tenancy?: Tenancy | string; + DirectoryType?: WorkspaceDirectoryType | string; /** - *

                          The default creation properties for all WorkSpaces in the directory.

                          + *

                          The identifier of the security group that is assigned to new WorkSpaces.

                          */ - WorkspaceCreationProperties?: DefaultWorkspaceCreationProperties; + WorkspaceSecurityGroupId?: string; /** - *

                          The directory type.

                          + *

                          The state of the directory's registration with Amazon WorkSpaces. After a directory is + * deregistered, the DEREGISTERED state is returned very briefly before the directory + * metadata is cleaned up, so this state is rarely returned. To confirm that a directory is deregistered, + * check for the directory ID by using + * + * DescribeWorkspaceDirectories. If the directory ID isn't returned, then the directory has been + * successfully deregistered.

                          */ - DirectoryType?: WorkspaceDirectoryType | string; + State?: WorkspaceDirectoryState | string; /** - *

                          The identifiers of the subnets used with the directory.

                          + *

                          The default creation properties for all WorkSpaces in the directory.

                          */ - SubnetIds?: string[]; + WorkspaceCreationProperties?: DefaultWorkspaceCreationProperties; /** - *

                          The user name for the service account.

                          + *

                          The identifiers of the IP access control groups associated with the directory.

                          */ - CustomerUserName?: string; + ipGroupIds?: string[]; /** - *

                          The identifiers of the IP access control groups associated with the directory.

                          + *

                          The devices and operating systems that users can use to access WorkSpaces.

                          */ - ipGroupIds?: string[]; + WorkspaceAccessProperties?: WorkspaceAccessProperties; /** - *

                          The directory alias.

                          + *

                          Specifies whether the directory is dedicated or shared. To use Bring Your Own License + * (BYOL), this value must be set to DEDICATED. For more information, see Bring + * Your Own Windows Desktop Images.

                          */ - Alias?: string; + Tenancy?: Tenancy | string; /** *

                          The default self-service permissions for WorkSpaces in the directory.

                          @@ -1837,15 +1837,15 @@ export namespace WorkspaceDirectory { export interface DescribeWorkspaceDirectoriesResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          + *

                          Information about the directories.

                          */ - NextToken?: string; + Directories?: WorkspaceDirectory[]; /** - *

                          Information about the directories.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          */ - Directories?: WorkspaceDirectory[]; + NextToken?: string; } export namespace DescribeWorkspaceDirectoriesResult { @@ -1855,6 +1855,11 @@ export namespace DescribeWorkspaceDirectoriesResult { } export interface DescribeWorkspaceImagePermissionsRequest { + /** + *

                          The identifier of the image.

                          + */ + ImageId: string | undefined; + /** *

                          If you received a NextToken from a previous call that was paginated, * provide this token to receive the next set of results.

                          @@ -1865,11 +1870,6 @@ export interface DescribeWorkspaceImagePermissionsRequest { *

                          The maximum number of items to return.

                          */ MaxResults?: number; - - /** - *

                          The identifier of the image.

                          - */ - ImageId: string | undefined; } export namespace DescribeWorkspaceImagePermissionsRequest { @@ -1928,25 +1928,25 @@ export enum ImageType { export interface DescribeWorkspaceImagesRequest { /** - *

                          If you received a NextToken from a previous call that was paginated, - * provide this token to receive the next set of results.

                          + *

                          The identifier of the image.

                          */ - NextToken?: string; + ImageIds?: string[]; /** - *

                          The identifier of the image.

                          + *

                          The type (owned or shared) of the image.

                          */ - ImageIds?: string[]; + ImageType?: ImageType | string; /** - *

                          The maximum number of items to return.

                          + *

                          If you received a NextToken from a previous call that was paginated, + * provide this token to receive the next set of results.

                          */ - MaxResults?: number; + NextToken?: string; /** - *

                          The type (owned or shared) of the image.

                          + *

                          The maximum number of items to return.

                          */ - ImageType?: ImageType | string; + MaxResults?: number; } export namespace DescribeWorkspaceImagesRequest { @@ -1992,25 +1992,29 @@ export enum WorkspaceImageState { */ export interface WorkspaceImage { /** - *

                          The operating system that the image is running.

                          + *

                          The identifier of the image.

                          */ - OperatingSystem?: OperatingSystem; + ImageId?: string; /** - *

                          The date when the image was created. If the image has been shared, the AWS account - * that the image has been shared with sees the original creation date of the image.

                          + *

                          The name of the image.

                          */ - Created?: Date; + Name?: string; /** - *

                          The identifier of the AWS account that owns the image.

                          + *

                          The description of the image.

                          */ - OwnerAccountId?: string; + Description?: string; /** - *

                          The description of the image.

                          + *

                          The operating system that the image is running.

                          */ - Description?: string; + OperatingSystem?: OperatingSystem; + + /** + *

                          The status of the image.

                          + */ + State?: WorkspaceImageState | string; /** *

                          Specifies whether the image is running on dedicated hardware. When Bring Your Own @@ -2021,14 +2025,9 @@ export interface WorkspaceImage { RequiredTenancy?: WorkspaceImageRequiredTenancy | string; /** - *

                          The name of the image.

                          - */ - Name?: string; - - /** - *

                          The status of the image.

                          + *

                          The error code that is returned for the image.

                          */ - State?: WorkspaceImageState | string; + ErrorCode?: string; /** *

                          The text of the error message that is returned for the image.

                          @@ -2036,14 +2035,15 @@ export interface WorkspaceImage { ErrorMessage?: string; /** - *

                          The error code that is returned for the image.

                          + *

                          The date when the image was created. If the image has been shared, the AWS account + * that the image has been shared with sees the original creation date of the image.

                          */ - ErrorCode?: string; + Created?: Date; /** - *

                          The identifier of the image.

                          + *

                          The identifier of the AWS account that owns the image.

                          */ - ImageId?: string; + OwnerAccountId?: string; } export namespace WorkspaceImage { @@ -2052,17 +2052,17 @@ export namespace WorkspaceImage { }); } -export interface DescribeWorkspaceImagesResult { +export interface DescribeWorkspaceImagesResult { + /** + *

                          Information about the images.

                          + */ + Images?: WorkspaceImage[]; + /** *

                          The token to use to retrieve the next set of results, or null if no more results are * available.

                          */ NextToken?: string; - - /** - *

                          Information about the images.

                          - */ - Images?: WorkspaceImage[]; } export namespace DescribeWorkspaceImagesResult { @@ -2073,10 +2073,19 @@ export namespace DescribeWorkspaceImagesResult { export interface DescribeWorkspacesRequest { /** - *

                          The identifier of the bundle. All WorkSpaces that are created from this bundle are - * retrieved. You cannot combine this parameter with any other filter.

                          + *

                          The identifiers of the WorkSpaces. You cannot combine this parameter with any other + * filter.

                          + *

                          Because the CreateWorkspaces operation is asynchronous, the identifier + * it returns is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information is returned.

                          */ - BundleId?: string; + WorkspaceIds?: string[]; + + /** + *

                          The identifier of the directory. In addition, you can optionally specify a specific + * directory user (see UserName). You cannot combine this parameter with any + * other filter.

                          + */ + DirectoryId?: string; /** *

                          The name of the directory user. You must specify this parameter with @@ -2085,25 +2094,16 @@ export interface DescribeWorkspacesRequest { UserName?: string; /** - *

                          The identifier of the directory. In addition, you can optionally specify a specific - * directory user (see UserName). You cannot combine this parameter with any - * other filter.

                          + *

                          The identifier of the bundle. All WorkSpaces that are created from this bundle are + * retrieved. You cannot combine this parameter with any other filter.

                          */ - DirectoryId?: string; + BundleId?: string; /** *

                          The maximum number of items to return.

                          */ Limit?: number; - /** - *

                          The identifiers of the WorkSpaces. You cannot combine this parameter with any other - * filter.

                          - *

                          Because the CreateWorkspaces operation is asynchronous, the identifier - * it returns is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information is returned.

                          - */ - WorkspaceIds?: string[]; - /** *

                          If you received a NextToken from a previous call that was paginated, * provide this token to receive the next set of results.

                          @@ -2118,18 +2118,18 @@ export namespace DescribeWorkspacesRequest { } export interface DescribeWorkspacesResult { - /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          - */ - NextToken?: string; - /** *

                          Information about the WorkSpaces.

                          *

                          Because CreateWorkspaces is an asynchronous operation, some of the * returned information could be incomplete.

                          */ Workspaces?: Workspace[]; + + /** + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          + */ + NextToken?: string; } export namespace DescribeWorkspacesResult { @@ -2140,15 +2140,15 @@ export namespace DescribeWorkspacesResult { export interface DescribeWorkspacesConnectionStatusRequest { /** - *

                          If you received a NextToken from a previous call that was paginated, - * provide this token to receive the next set of results.

                          + *

                          The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.

                          */ - NextToken?: string; + WorkspaceIds?: string[]; /** - *

                          The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.

                          + *

                          If you received a NextToken from a previous call that was paginated, + * provide this token to receive the next set of results.

                          */ - WorkspaceIds?: string[]; + NextToken?: string; } export namespace DescribeWorkspacesConnectionStatusRequest { @@ -2162,15 +2162,15 @@ export namespace DescribeWorkspacesConnectionStatusRequest { */ export interface WorkspaceConnectionStatus { /** - *

                          The connection state of the WorkSpace. The connection state is unknown if the WorkSpace - * is stopped.

                          + *

                          The identifier of the WorkSpace.

                          */ - ConnectionState?: ConnectionState | string; + WorkspaceId?: string; /** - *

                          The identifier of the WorkSpace.

                          + *

                          The connection state of the WorkSpace. The connection state is unknown if the WorkSpace + * is stopped.

                          */ - WorkspaceId?: string; + ConnectionState?: ConnectionState | string; /** *

                          The timestamp of the connection status check.

                          @@ -2191,15 +2191,15 @@ export namespace WorkspaceConnectionStatus { export interface DescribeWorkspacesConnectionStatusResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          + *

                          Information about the connection status of the WorkSpace.

                          */ - NextToken?: string; + WorkspacesConnectionStatus?: WorkspaceConnectionStatus[]; /** - *

                          Information about the connection status of the WorkSpace.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          */ - WorkspacesConnectionStatus?: WorkspaceConnectionStatus[]; + NextToken?: string; } export namespace DescribeWorkspacesConnectionStatusResult { @@ -2238,17 +2238,17 @@ export namespace Snapshot { } export interface DescribeWorkspaceSnapshotsResult { - /** - *

                          Information about the snapshots that can be used to restore a WorkSpace. These snapshots - * include both the root volume and the user volume.

                          - */ - RestoreSnapshots?: Snapshot[]; - /** *

                          Information about the snapshots that can be used to rebuild a WorkSpace. These snapshots include * the user volume.

                          */ RebuildSnapshots?: Snapshot[]; + + /** + *

                          Information about the snapshots that can be used to restore a WorkSpace. These snapshots + * include both the root volume and the user volume.

                          + */ + RestoreSnapshots?: Snapshot[]; } export namespace DescribeWorkspaceSnapshotsResult { @@ -2337,18 +2337,30 @@ export enum WorkspaceImageIngestionProcess { BYOL_GRAPHICS = "BYOL_GRAPHICS", BYOL_GRAPHICSPRO = "BYOL_GRAPHICSPRO", BYOL_REGULAR = "BYOL_REGULAR", + BYOL_REGULAR_WSP = "BYOL_REGULAR_WSP", } export interface ImportWorkspaceImageRequest { /** - *

                          The name of the WorkSpace image.

                          + *

                          The identifier of the EC2 image.

                          */ - ImageName: string | undefined; + Ec2ImageId: string | undefined; /** - *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          + *

                          The ingestion process to be used when importing the image, depending on which protocol + * you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces Streaming Protocol + * (WSP). To use WSP, specify a value that ends in _WSP. To use PCoIP, specify a value + * that does not end in _WSP.

                          + * + *

                          For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify + * BYOL_REGULAR or BYOL_REGULAR_WSP, depending on the protocol.

                          */ - Tags?: Tag[]; + IngestionProcess: WorkspaceImageIngestionProcess | string | undefined; + + /** + *

                          The name of the WorkSpace image.

                          + */ + ImageName: string | undefined; /** *

                          The description of the WorkSpace image.

                          @@ -2356,9 +2368,9 @@ export interface ImportWorkspaceImageRequest { ImageDescription: string | undefined; /** - *

                          The identifier of the EC2 image.

                          + *

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          */ - Ec2ImageId: string | undefined; + Tags?: Tag[]; /** *

                          If specified, the version of Microsoft Office to subscribe to. Valid only for Windows 10 @@ -2371,12 +2383,6 @@ export interface ImportWorkspaceImageRequest { * */ Applications?: (Application | string)[]; - - /** - *

                          The ingestion process to be used when importing the image. For non-GPU-enabled bundles - * (bundles other than Graphics or GraphicsPro), specify BYOL_REGULAR.

                          - */ - IngestionProcess: WorkspaceImageIngestionProcess | string | undefined; } export namespace ImportWorkspaceImageRequest { @@ -2425,15 +2431,15 @@ export namespace ListAvailableManagementCidrRangesRequest { export interface ListAvailableManagementCidrRangesResult { /** - *

                          The token to use to retrieve the next set of results, or null if no more results are - * available.

                          + *

                          The list of available IP address ranges, specified as IPv4 CIDR blocks.

                          */ - NextToken?: string; + ManagementCidrRanges?: string[]; /** - *

                          The list of available IP address ranges, specified as IPv4 CIDR blocks.

                          + *

                          The token to use to retrieve the next set of results, or null if no more results are + * available.

                          */ - ManagementCidrRanges?: string[]; + NextToken?: string; } export namespace ListAvailableManagementCidrRangesResult { @@ -2495,6 +2501,11 @@ export namespace OperationInProgressException { } export interface ModifyAccountRequest { + /** + *

                          The status of BYOL.

                          + */ + DedicatedTenancySupport?: DedicatedTenancySupportEnum | string; + /** *

                          The IP address range, specified as an IPv4 CIDR block, for the management network * interface. Specify an IP address range that is compatible with your network and in CIDR @@ -2503,11 +2514,6 @@ export interface ModifyAccountRequest { * ListAvailableManagementCidrRanges operation.

                          */ DedicatedTenancyManagementCidrRange?: string; - - /** - *

                          The status of BYOL.

                          - */ - DedicatedTenancySupport?: DedicatedTenancySupportEnum | string; } export namespace ModifyAccountRequest { @@ -2526,14 +2532,14 @@ export namespace ModifyAccountResult { export interface ModifyClientPropertiesRequest { /** - *

                          Information about the Amazon WorkSpaces client.

                          + *

                          The resource identifiers, in the form of directory IDs.

                          */ - ClientProperties: ClientProperties | undefined; + ResourceId: string | undefined; /** - *

                          The resource identifiers, in the form of directory IDs.

                          + *

                          Information about the Amazon WorkSpaces client.

                          */ - ResourceId: string | undefined; + ClientProperties: ClientProperties | undefined; } export namespace ModifyClientPropertiesRequest { @@ -2552,14 +2558,14 @@ export namespace ModifyClientPropertiesResult { export interface ModifySelfservicePermissionsRequest { /** - *

                          The permissions to enable or disable self-service capabilities.

                          + *

                          The identifier of the directory.

                          */ - SelfservicePermissions: SelfservicePermissions | undefined; + ResourceId: string | undefined; /** - *

                          The identifier of the directory.

                          + *

                          The permissions to enable or disable self-service capabilities.

                          */ - ResourceId: string | undefined; + SelfservicePermissions: SelfservicePermissions | undefined; } export namespace ModifySelfservicePermissionsRequest { @@ -2578,14 +2584,14 @@ export namespace ModifySelfservicePermissionsResult { export interface ModifyWorkspaceAccessPropertiesRequest { /** - *

                          The device types and operating systems to enable or disable for access.

                          + *

                          The identifier of the directory.

                          */ - WorkspaceAccessProperties: WorkspaceAccessProperties | undefined; + ResourceId: string | undefined; /** - *

                          The identifier of the directory.

                          + *

                          The device types and operating systems to enable or disable for access.

                          */ - ResourceId: string | undefined; + WorkspaceAccessProperties: WorkspaceAccessProperties | undefined; } export namespace ModifyWorkspaceAccessPropertiesRequest { @@ -2608,28 +2614,6 @@ export namespace ModifyWorkspaceAccessPropertiesResult { * Details for Your WorkSpaces.

                          */ export interface WorkspaceCreationProperties { - /** - *

                          Indicates whether users are local administrators of their WorkSpaces.

                          - */ - UserEnabledAsLocalAdministrator?: boolean; - - /** - *

                          Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, - * see WorkSpace - * Maintenance.

                          - */ - EnableMaintenanceMode?: boolean; - - /** - *

                          The identifier of your custom security group.

                          - */ - CustomSecurityGroupId?: string; - - /** - *

                          Indicates whether internet access is enabled for your WorkSpaces.

                          - */ - EnableInternetAccess?: boolean; - /** *

                          Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.

                          * @@ -2648,6 +2632,11 @@ export interface WorkspaceCreationProperties { */ EnableWorkDocs?: boolean; + /** + *

                          Indicates whether internet access is enabled for your WorkSpaces.

                          + */ + EnableInternetAccess?: boolean; + /** *

                          The default organizational unit (OU) for your WorkSpaces directories. This string must be the full Lightweight * Directory Access Protocol (LDAP) distinguished name for the target domain and OU. It must be in the form @@ -2669,6 +2658,23 @@ export interface WorkspaceCreationProperties { * */ DefaultOu?: string; + + /** + *

                          The identifier of your custom security group.

                          + */ + CustomSecurityGroupId?: string; + + /** + *

                          Indicates whether users are local administrators of their WorkSpaces.

                          + */ + UserEnabledAsLocalAdministrator?: boolean; + + /** + *

                          Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, + * see WorkSpace + * Maintenance.

                          + */ + EnableMaintenanceMode?: boolean; } export namespace WorkspaceCreationProperties { @@ -2679,14 +2685,14 @@ export namespace WorkspaceCreationProperties { export interface ModifyWorkspaceCreationPropertiesRequest { /** - *

                          The default properties for creating WorkSpaces.

                          + *

                          The identifier of the directory.

                          */ - WorkspaceCreationProperties: WorkspaceCreationProperties | undefined; + ResourceId: string | undefined; /** - *

                          The identifier of the directory.

                          + *

                          The default properties for creating WorkSpaces.

                          */ - ResourceId: string | undefined; + WorkspaceCreationProperties: WorkspaceCreationProperties | undefined; } export namespace ModifyWorkspaceCreationPropertiesRequest { @@ -2862,13 +2868,6 @@ export namespace RebuildWorkspacesResult { } export interface RegisterWorkspaceDirectoryRequest { - /** - *

                          Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and - * WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set - * EnableWorkDocs to disabled, and try again.

                          - */ - EnableWorkDocs: boolean | undefined; - /** *

                          The identifier of the directory. You cannot register a directory if it does not have a status * of Active. If the directory does not have a status of Active, you will receive an @@ -2879,21 +2878,23 @@ export interface RegisterWorkspaceDirectoryRequest { DirectoryId: string | undefined; /** - *

                          Indicates whether self-service capabilities are enabled or disabled.

                          + *

                          The identifiers of the subnets for your virtual private cloud (VPC). Make sure that the subnets + * are in supported Availability Zones. The subnets must also be in separate Availability Zones. If these + * conditions are not met, you will receive an OperationNotSupportedException error.

                          */ - EnableSelfService?: boolean; + SubnetIds?: string[]; /** - *

                          The tags associated with the directory.

                          + *

                          Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and + * WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set + * EnableWorkDocs to disabled, and try again.

                          */ - Tags?: Tag[]; + EnableWorkDocs: boolean | undefined; /** - *

                          The identifiers of the subnets for your virtual private cloud (VPC). Make sure that the subnets - * are in supported Availability Zones. The subnets must also be in separate Availability Zones. If these - * conditions are not met, you will receive an OperationNotSupportedException error.

                          + *

                          Indicates whether self-service capabilities are enabled or disabled.

                          */ - SubnetIds?: string[]; + EnableSelfService?: boolean; /** *

                          Indicates whether your WorkSpace directory is dedicated or shared. To use Bring Your Own @@ -2903,6 +2904,11 @@ export interface RegisterWorkspaceDirectoryRequest { * Bring Your Own Windows Desktop Images.

                          */ Tenancy?: Tenancy | string; + + /** + *

                          The tags associated with the directory.

                          + */ + Tags?: Tag[]; } export namespace RegisterWorkspaceDirectoryRequest { @@ -3154,14 +3160,14 @@ export namespace UpdateConnectionAliasPermissionResult { export interface UpdateRulesOfIpGroupRequest { /** - *

                          One or more rules.

                          + *

                          The identifier of the group.

                          */ - UserRules: IpRuleItem[] | undefined; + GroupId: string | undefined; /** - *

                          The identifier of the group.

                          + *

                          One or more rules.

                          */ - GroupId: string | undefined; + UserRules: IpRuleItem[] | undefined; } export namespace UpdateRulesOfIpGroupRequest { @@ -3179,6 +3185,11 @@ export namespace UpdateRulesOfIpGroupResult { } export interface UpdateWorkspaceImagePermissionRequest { + /** + *

                          The identifier of the image.

                          + */ + ImageId: string | undefined; + /** *

                          The permission to copy the image. This permission can be revoked only after an image * has been shared.

                          @@ -3193,11 +3204,6 @@ export interface UpdateWorkspaceImagePermissionRequest { *
                          */ SharedAccountId: string | undefined; - - /** - *

                          The identifier of the image.

                          - */ - ImageId: string | undefined; } export namespace UpdateWorkspaceImagePermissionRequest { diff --git a/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json b/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json index e0482830cd759..2fab24dbc3784 100644 --- a/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json +++ b/codegen/sdk-codegen/aws-models/amplifybackend.2020-08-11.json @@ -165,21 +165,21 @@ "CognitoUserPoolId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The Amazon Cognito user pool id, if Amazon Cognito was used as an authentication setting to access your data models.

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

                          The Amazon Cognito user pool ID, if Amazon Cognito is used as an authentication setting to access your data models.

                          ", "smithy.api#jsonName": "cognitoUserPoolId" } }, "Description": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The api key description for API_KEY, if it was used as an authentication mechanism to access your data models.

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

                          The API key description for API_KEY, if it is used as an authentication mechanism to access your data models.

                          ", "smithy.api#jsonName": "description" } }, "ExpirationTime": { "target": "com.amazonaws.amplifybackend#__double", "traits": { - "smithy.api#documentation": "

                          The api key expiration time for API_KEY, if it was used as an authentication mechanism to access your data models.

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

                          The API key expiration time for API_KEY, if it is used as an authentication mechanism to access your data models.

                          ", "smithy.api#jsonName": "expirationTime" } }, @@ -193,7 +193,7 @@ "OpenIDClientId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The clientID for openID, if openID was used as an authentication setting to access your data models.

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

                          The clientID for openID, if openID is used as an authentication setting to access your data models.

                          ", "smithy.api#jsonName": "openIDClientId" } }, @@ -207,14 +207,14 @@ "OpenIDIssueURL": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The openID issuer URL, if openID was used as an authentication setting to access your data models.

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

                          The openID issuer URL, if openID is used as an authentication setting to access your data models.

                          ", "smithy.api#jsonName": "openIDIssueURL" } }, "OpenIDProviderName": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The open id provider name, if openID was used as an authentication mechanism to access your data models.

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

                          The openID provider name, if openID is used as an authentication mechanism to access your data models.

                          ", "smithy.api#jsonName": "openIDProviderName" } } @@ -257,7 +257,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes the conflict resolution configuration for your data model configured in your Amplify project.

                          " + "smithy.api#documentation": "

                          Describes the conflict resolution configuration for the data model configured in your Amplify project.

                          " } }, "com.amazonaws.amplifybackend#BackendAPIResourceConfig": { @@ -266,28 +266,28 @@ "AdditionalAuthTypes": { "target": "com.amazonaws.amplifybackend#ListOfBackendAPIAuthType", "traits": { - "smithy.api#documentation": "

                          Addition authentication methods used to interact with your data models.

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

                          Additional authentication methods used to interact with your data models.

                          ", "smithy.api#jsonName": "additionalAuthTypes" } }, "ApiName": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The API name used to interact with the data model, configured as a part of the amplify project.

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

                          The API name used to interact with the data model, configured as a part of the Amplify project.

                          ", "smithy.api#jsonName": "apiName" } }, "ConflictResolution": { "target": "com.amazonaws.amplifybackend#BackendAPIConflictResolution", "traits": { - "smithy.api#documentation": "

                          The conflict resoultion strategy for your data stored in the data models.

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

                          The conflict resolution strategy for your data stored in the data models.

                          ", "smithy.api#jsonName": "conflictResolution" } }, "DefaultAuthType": { "target": "com.amazonaws.amplifybackend#BackendAPIAuthType", "traits": { - "smithy.api#documentation": "

                          The default authentication type for interacting with the configured data models in your amplify project.

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

                          The default authentication type for interacting with the configured data models in your Amplify project.

                          ", "smithy.api#jsonName": "defaultAuthType" } }, @@ -301,13 +301,13 @@ "TransformSchema": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The definition of the data model in the annotated transform of the graphql schema.

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

                          The definition of the data model in the annotated transform of the GraphQL schema.

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

                          The resource config for the data model,configured as a part of the Amplify project.

                          " + "smithy.api#documentation": "

                          The resource configuration for the data model, configured as a part of the Amplify project.

                          " } }, "com.amazonaws.amplifybackend#BackendAuthSocialProviderConfig": { @@ -316,20 +316,20 @@ "ClientId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Describes the client_id which can be obtained from the third party social federation provider.

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

                          Describes the client_id that can be obtained from the third-party social federation provider.

                          ", "smithy.api#jsonName": "client_id" } }, "ClientSecret": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Describes the client_secret which can be obtained from third party social federation providers.

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

                          Describes the client_secret that can be obtained from third-party social federation providers.

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

                          Describes third party social federation configurations for allowing your app users to sign in using OAuth.

                          " + "smithy.api#documentation": "

                          Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

                          " } }, "com.amazonaws.amplifybackend#BackendJobRespObj": { @@ -404,7 +404,7 @@ "Message": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          An error message to inform that the request has failed.

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

                          An error message to inform that the request failed.

                          ", "smithy.api#jsonName": "message" } } @@ -711,7 +711,7 @@ "DeliveryMethod": { "target": "com.amazonaws.amplifybackend#DeliveryMethod", "traits": { - "smithy.api#documentation": "

                          Describes which mode to use (either SMS or email) to deliver messages to app users that want to recover their password.

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

                          Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.

                          ", "smithy.api#jsonName": "deliveryMethod", "smithy.api#required": {} } @@ -732,7 +732,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes the forgot password policy for authenticating into the Amlify app.

                          " + "smithy.api#documentation": "

                          Describes the forgot password policy for authenticating into the Amplify app.

                          " } }, "com.amazonaws.amplifybackend#CreateBackendAuthIdentityPoolConfig": { @@ -756,7 +756,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes authorization configurations for the auth resources, configures as a part of your Amplify project.

                          " + "smithy.api#documentation": "

                          Describes authorization configurations for the auth resources, configured as a part of your Amplify project.

                          " } }, "com.amazonaws.amplifybackend#CreateBackendAuthMFAConfig": { @@ -765,7 +765,7 @@ "MFAMode": { "target": "com.amazonaws.amplifybackend#MFAMode", "traits": { - "smithy.api#documentation": "

                          Describes whether MFA should be [ON, OFF, OPTIONAL] for authentication in your Amplify project.

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

                          Describes whether MFA should be [ON, OFF, or OPTIONAL] for authentication in your Amplify project.

                          ", "smithy.api#required": {} } }, @@ -778,7 +778,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

                          " + "smithy.api#documentation": "

                          Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

                          " } }, "com.amazonaws.amplifybackend#CreateBackendAuthOAuthConfig": { @@ -794,7 +794,7 @@ "OAuthGrantType": { "target": "com.amazonaws.amplifybackend#OAuthGrantType", "traits": { - "smithy.api#documentation": "

                          The OAuth grant type which you use to allow app users to authenticate from your Amplify app.

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

                          The OAuth grant type that you use to allow app users to authenticate from your Amplify app.

                          ", "smithy.api#jsonName": "oAuthGrantType", "smithy.api#required": {} } @@ -802,7 +802,7 @@ "OAuthScopes": { "target": "com.amazonaws.amplifybackend#ListOfOAuthScopesElement", "traits": { - "smithy.api#documentation": "

                          List of OAuth related flows which use to allow your app users to authenticate from your Amplify app.

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

                          List of OAuth-related flows that allow your app users to authenticate from your Amplify app.

                          ", "smithy.api#jsonName": "oAuthScopes", "smithy.api#required": {} } @@ -810,7 +810,7 @@ "RedirectSignInURIs": { "target": "com.amazonaws.amplifybackend#ListOf__string", "traits": { - "smithy.api#documentation": "

                          The redirected URI for sigining into your Amplify app.

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

                          The redirected URI for signing in to your Amplify app.

                          ", "smithy.api#jsonName": "redirectSignInURIs", "smithy.api#required": {} } @@ -818,7 +818,7 @@ "RedirectSignOutURIs": { "target": "com.amazonaws.amplifybackend#ListOf__string", "traits": { - "smithy.api#documentation": "

                          Redirect URLs used by OAuth when a user signs out of an Amplify app.

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

                          Redirect URLs that OAuth uses when a user signs out of an Amplify app.

                          ", "smithy.api#jsonName": "redirectSignOutURIs", "smithy.api#required": {} } @@ -826,7 +826,7 @@ "SocialProviderSettings": { "target": "com.amazonaws.amplifybackend#SocialProviderSettings", "traits": { - "smithy.api#documentation": "

                          The settings for using the social providers for access to your Amplify app.

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

                          The settings for using social identity providers for access to your Amplify app.

                          ", "smithy.api#jsonName": "socialProviderSettings" } } @@ -841,21 +841,21 @@ "AdditionalConstraints": { "target": "com.amazonaws.amplifybackend#ListOfAdditionalConstraintsElement", "traits": { - "smithy.api#documentation": "

                          Additional constraints for the pasword used to access the backend of your Amplify project.

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

                          Additional constraints for the password used to access the backend of your Amplify project.

                          ", "smithy.api#jsonName": "additionalConstraints" } }, "MinimumLength": { "target": "com.amazonaws.amplifybackend#__double", "traits": { - "smithy.api#documentation": "

                          The minimum length of password used to access the backend of your Amplify project.

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

                          The minimum length of the password used to access the backend of your Amplify project.

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

                          The password policy configuration for the backend to your Amplify project.

                          " + "smithy.api#documentation": "

                          The password policy configuration for the backend of your Amplify project.

                          " } }, "com.amazonaws.amplifybackend#CreateBackendAuthRequest": { @@ -912,7 +912,7 @@ "IdentityPoolConfigs": { "target": "com.amazonaws.amplifybackend#CreateBackendAuthIdentityPoolConfig", "traits": { - "smithy.api#documentation": "

                          Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.

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

                          Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.

                          ", "smithy.api#jsonName": "identityPoolConfigs" } }, @@ -927,7 +927,7 @@ "UserPoolConfigs": { "target": "com.amazonaws.amplifybackend#CreateBackendAuthUserPoolConfig", "traits": { - "smithy.api#documentation": "

                          Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.

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

                          Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.

                          ", "smithy.api#jsonName": "userPoolConfigs", "smithy.api#required": {} } @@ -997,7 +997,7 @@ "Mfa": { "target": "com.amazonaws.amplifybackend#CreateBackendAuthMFAConfig", "traits": { - "smithy.api#documentation": "

                          Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

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

                          Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

                          ", "smithy.api#jsonName": "mfa" } }, @@ -1018,7 +1018,7 @@ "RequiredSignUpAttributes": { "target": "com.amazonaws.amplifybackend#ListOfRequiredSignUpAttributesElement", "traits": { - "smithy.api#documentation": "

                          The required attributes to sign up new users in the user pool.

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

                          The required attributes to sign up new users in the Amazon Cognito user pool.

                          ", "smithy.api#jsonName": "requiredSignUpAttributes", "smithy.api#required": {} } @@ -1026,7 +1026,7 @@ "SignInMethod": { "target": "com.amazonaws.amplifybackend#SignInMethod", "traits": { - "smithy.api#documentation": "

                          Describes the sign-in methods that your Amplify app users to login using the Amazon Cognito user pool, configured as a part of your Amplify project.

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

                          Describes the sign-in methods that your Amplify app users to log in using the Amazon Cognito user pool that's configured as a part of your Amplify project.

                          ", "smithy.api#jsonName": "signInMethod", "smithy.api#required": {} } @@ -1161,7 +1161,7 @@ "ResourceConfig": { "target": "com.amazonaws.amplifybackend#ResourceConfig", "traits": { - "smithy.api#documentation": "

                          The resource configuration for the create backend request.

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

                          The resource configuration for the backend creation request.

                          ", "smithy.api#jsonName": "resourceConfig" } }, @@ -1247,7 +1247,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Generates a one time challenge code to authenticate a user into your Amplify Admin UI.

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

                          Generates a one-time challenge code to authenticate a user into your Amplify Admin UI.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/challenge", @@ -1281,21 +1281,21 @@ "ChallengeCode": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          One time challenge code for authenticating into Amplify Admin UI.

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

                          One-time challenge code for authenticating into the Amplify Admin UI.

                          ", "smithy.api#jsonName": "challengeCode" } }, "SessionId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          A unique identifier provided when creating a new challenge token.

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

                          A unique ID provided when creating a new challenge token.

                          ", "smithy.api#jsonName": "sessionId" } }, "Ttl": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The expiry time for the one time generated token code.

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

                          The expiry time for the one-time generated token code.

                          ", "smithy.api#jsonName": "ttl" } } @@ -1324,7 +1324,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Removes an existing environment from your Ampify project.

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

                          Removes an existing environment from your Amplify project.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/environments/{BackendEnvironmentName}/remove", @@ -1672,7 +1672,7 @@ "SessionId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The session Id.

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

                          The session ID.

                          ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1734,7 +1734,7 @@ "Message": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          An error message to inform that the request has failed.

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

                          An error message to inform that the request failed.

                          ", "smithy.api#jsonName": "message" } } @@ -1878,7 +1878,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Provides project level details for your Amplify UI project.

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

                          Provides project-level details for your Amplify UI project.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/details", @@ -1909,7 +1909,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Gets the details for a backend api.

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

                          Gets the details for a backend API.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/api/{BackendEnvironmentName}/details", @@ -1986,7 +1986,7 @@ "Models": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Stringified JSON of the datastore model.

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

                          Stringified JSON of the DataStore model.

                          ", "smithy.api#jsonName": "models" } }, @@ -2101,7 +2101,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Gets a backend auth details.

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

                          Gets backend auth details.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/auth/{BackendEnvironmentName}/details", @@ -2331,7 +2331,7 @@ "AmplifyMetaConfig": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          A stringified version of the current configs for your Amplify project.

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

                          A stringified version of the current configurations for your Amplify project.

                          ", "smithy.api#jsonName": "amplifyMetaConfig" } }, @@ -2417,7 +2417,7 @@ "SessionId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The session Id.

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

                          The session ID.

                          ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2437,21 +2437,21 @@ "ChallengeCode": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The one time challenge code for authenticating into Amplify Admin UI.

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

                          The one-time challenge code for authenticating into the Amplify Admin UI.

                          ", "smithy.api#jsonName": "challengeCode" } }, "SessionId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          A unique identifier provided when creating a new challenge token.

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

                          A unique ID provided when creating a new challenge token.

                          ", "smithy.api#jsonName": "sessionId" } }, "Ttl": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The expiry time for the one time generated token code.

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

                          The expiry time for the one-time generated token code.

                          ", "smithy.api#jsonName": "ttl" } } @@ -2517,7 +2517,7 @@ "MaxResults": { "target": "com.amazonaws.amplifybackend#__integerMin1Max25", "traits": { - "smithy.api#documentation": "

                          The maximum number of results you want in the response.

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

                          The maximum number of results that you want in the response.

                          ", "smithy.api#jsonName": "maxResults" } }, @@ -2531,14 +2531,14 @@ "Operation": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Filters the list of response objects to only include those with the specified operation name.

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

                          Filters the list of response objects to include only those with the specified operation name.

                          ", "smithy.api#jsonName": "operation" } }, "Status": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Filters the list of response objects to only include those with the specified status.

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

                          Filters the list of response objects to include only those with the specified status.

                          ", "smithy.api#jsonName": "status" } } @@ -2614,28 +2614,28 @@ "AwsCognitoIdentityPoolId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Amazon Cognito identitypool id used for the Amplify Admin UI login authorization.

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

                          The Amazon Cognito identity pool ID used for Amplify Admin UI login authorization.

                          ", "smithy.api#jsonName": "aws_cognito_identity_pool_id" } }, "AwsCognitoRegion": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The AWS Region for the the Amplify Admin login.

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

                          The AWS Region for the Amplify Admin UI login.

                          ", "smithy.api#jsonName": "aws_cognito_region" } }, "AwsUserPoolsId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The Amazon Cognito userpool id used for Amplify Admin UI login authentication.

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

                          The Amazon Cognito user pool ID used for Amplify Admin UI login authentication.

                          ", "smithy.api#jsonName": "aws_user_pools_id" } }, "AwsUserPoolsWebClientId": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          The web client ID for the Amazon Cognito userpools.

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

                          The web client ID for the Amazon Cognito user pools.

                          ", "smithy.api#jsonName": "aws_user_pools_web_client_id" } } @@ -2707,7 +2707,7 @@ "Message": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          An error message to inform that the request has failed.

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

                          An error message to inform that the request failed.

                          ", "smithy.api#jsonName": "message" } }, @@ -2884,7 +2884,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Removes the AWS resources required to access the Amplify Admin UI.

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

                          Removes the AWS resources that are required to access the Amplify Admin UI.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/config/remove", @@ -3039,7 +3039,7 @@ "MfaTypes": { "target": "com.amazonaws.amplifybackend#ListOfMfaTypesElement", "traits": { - "smithy.api#documentation": "

                          The supported MFA types

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

                          The supported MFA types.

                          ", "smithy.api#jsonName": "mfaTypes" } }, @@ -3107,7 +3107,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The settings for using the social providers for access to your Amplify app.

                          " + "smithy.api#documentation": "

                          The settings for using the social identity providers for access to your Amplify app.

                          " } }, "com.amazonaws.amplifybackend#Status": { @@ -3138,13 +3138,13 @@ "Message": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          An error message to inform that the request has failed.

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

                          An error message to inform that the request failed.

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

                          An error that is returned when a limit of a specific type has been exceeded.

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

                          An error that is returned when a limit of a specific type is exceeded.

                          ", "smithy.api#error": "client", "smithy.api#httpError": 429 } @@ -3303,7 +3303,7 @@ "DeliveryMethod": { "target": "com.amazonaws.amplifybackend#DeliveryMethod", "traits": { - "smithy.api#documentation": "

                          Describes which mode to use (either SMS or email) to deliver messages to app users that want to recover their password.

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

                          Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password.

                          ", "smithy.api#jsonName": "deliveryMethod" } }, @@ -3323,7 +3323,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes the forgot password policy for authenticating into the Amlify app.

                          " + "smithy.api#documentation": "

                          Describes the forgot password policy for authenticating into the Amplify app.

                          " } }, "com.amazonaws.amplifybackend#UpdateBackendAuthIdentityPoolConfig": { @@ -3332,7 +3332,7 @@ "UnauthenticatedLogin": { "target": "com.amazonaws.amplifybackend#__boolean", "traits": { - "smithy.api#documentation": "

                          A boolean value which can be set to allow or disallow guest level authorization into your Amplify app.

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

                          A Boolean value that you can set to allow or disallow guest-level authorization into your Amplify app.

                          ", "smithy.api#jsonName": "unauthenticatedLogin" } } @@ -3382,28 +3382,28 @@ "OAuthScopes": { "target": "com.amazonaws.amplifybackend#ListOfOAuthScopesElement", "traits": { - "smithy.api#documentation": "

                          The list of OAuth related flows which can allow users to authenticate from your Amplify app.

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

                          The list of OAuth-related flows that can allow users to authenticate from your Amplify app.

                          ", "smithy.api#jsonName": "oAuthScopes" } }, "RedirectSignInURIs": { "target": "com.amazonaws.amplifybackend#ListOf__string", "traits": { - "smithy.api#documentation": "

                          Redirect URLs used by OAuth when a user signs in to an Amplify app.

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

                          Redirect URLs that OAuth uses when a user signs in to an Amplify app.

                          ", "smithy.api#jsonName": "redirectSignInURIs" } }, "RedirectSignOutURIs": { "target": "com.amazonaws.amplifybackend#ListOf__string", "traits": { - "smithy.api#documentation": "

                          Redirect URLs used by OAuth when a user signs out of an Amplify app.

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

                          Redirect URLs that OAuth uses when a user signs out of an Amplify app.

                          ", "smithy.api#jsonName": "redirectSignOutURIs" } }, "SocialProviderSettings": { "target": "com.amazonaws.amplifybackend#SocialProviderSettings", "traits": { - "smithy.api#documentation": "

                          Describes third party social federation configurations for allowing your users to sign in with OAuth.

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

                          Describes third-party social federation configurations for allowing your users to sign in with OAuth.

                          ", "smithy.api#jsonName": "socialProviderSettings" } } @@ -3418,20 +3418,20 @@ "AdditionalConstraints": { "target": "com.amazonaws.amplifybackend#ListOfAdditionalConstraintsElement", "traits": { - "smithy.api#documentation": "

                          Describes additional constrains on password requirements to sign in into the auth resource, configured as a part of your Ampify project.

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

                          Describes additional constrains on the password requirements to sign in to the auth resource, configured as a part of your Amplify project.

                          ", "smithy.api#jsonName": "additionalConstraints" } }, "MinimumLength": { "target": "com.amazonaws.amplifybackend#__double", "traits": { - "smithy.api#documentation": "

                          Describes the minimum length of password required to sign in into the auth resource, configured as a part of your Ampify project.

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

                          Describes the minimum length of the password required to sign in to the auth resource, configured as a part of your Amplify project.

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

                          Describes the password policy for your Amazon Cognito user pool configured as a part of your Amplify project.

                          " + "smithy.api#documentation": "

                          Describes the password policy for your Amazon Cognito user pool that's configured as a part of your Amplify project.

                          " } }, "com.amazonaws.amplifybackend#UpdateBackendAuthRequest": { @@ -3488,7 +3488,7 @@ "IdentityPoolConfigs": { "target": "com.amazonaws.amplifybackend#UpdateBackendAuthIdentityPoolConfig", "traits": { - "smithy.api#documentation": "

                          Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.

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

                          Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project.

                          ", "smithy.api#jsonName": "identityPoolConfigs" } }, @@ -3503,7 +3503,7 @@ "UserPoolConfigs": { "target": "com.amazonaws.amplifybackend#UpdateBackendAuthUserPoolConfig", "traits": { - "smithy.api#documentation": "

                          Describes the authentication configuration for the Amazon Cognito userpool, provisioned as a part of your auth resource in the Amplify project.

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

                          Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project.

                          ", "smithy.api#jsonName": "userPoolConfigs", "smithy.api#required": {} } @@ -3573,7 +3573,7 @@ "Mfa": { "target": "com.amazonaws.amplifybackend#UpdateBackendAuthMFAConfig", "traits": { - "smithy.api#documentation": "

                          Describes whether multi-factor authentication policies should be applied for your Amazon Cognito user pool configured as a part of your Amplify project.

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

                          Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project.

                          ", "smithy.api#jsonName": "mfa" } }, @@ -3593,7 +3593,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Describes the Amazon Cognito user pool configuration for the authorization resource to be configured for your Amplify project on an update.

                          " + "smithy.api#documentation": "

                          Describes the Amazon Cognito user pool configuration to configure the authorization resource for your Amplify project on an update.

                          " } }, "com.amazonaws.amplifybackend#UpdateBackendConfig": { @@ -3619,7 +3619,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Updates the AWS resources required to access the Amplify Admin UI.

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

                          Updates the AWS resources that are required to access the Amplify Admin UI.

                          ", "smithy.api#http": { "method": "POST", "uri": "/backend/{AppId}/config/update", @@ -3677,7 +3677,7 @@ "LoginAuthConfig": { "target": "com.amazonaws.amplifybackend#LoginAuthConfigReqObj", "traits": { - "smithy.api#documentation": "

                          Describes the Amazon Cognito configurations for the Admin UI auth resource to login with.

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

                          Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with.

                          ", "smithy.api#jsonName": "loginAuthConfig" } } @@ -3744,14 +3744,14 @@ "Operation": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Filters the list of response objects to only include those with the specified operation name.

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

                          Filters the list of response objects to include only those with the specified operation name.

                          ", "smithy.api#jsonName": "operation" } }, "Status": { "target": "com.amazonaws.amplifybackend#__string", "traits": { - "smithy.api#documentation": "

                          Filters the list of response objects to only include those with the specified status.

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

                          Filters the list of response objects to include only those with the specified status.

                          ", "smithy.api#jsonName": "status" } } diff --git a/codegen/sdk-codegen/aws-models/auditmanager.2017-07-25.json b/codegen/sdk-codegen/aws-models/auditmanager.2017-07-25.json new file mode 100644 index 0000000000000..8219087a1c918 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/auditmanager.2017-07-25.json @@ -0,0 +1,6759 @@ +{ + "smithy": "1.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.auditmanager#AWSAccount": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified AWS account. \n

                          " + } + }, + "emailAddress": { + "target": "com.amazonaws.auditmanager#EmailAddress", + "traits": { + "smithy.api#documentation": "

                          \n The email address associated with the specified AWS account. \n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#AccountName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the specified AWS account. \n

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

                          \n The wrapper of AWS account details, such as account ID, email address, and so on. \n

                          " + } + }, + "com.amazonaws.auditmanager#AWSAccounts": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AWSAccount" + } + }, + "com.amazonaws.auditmanager#AWSService": { + "type": "structure", + "members": { + "serviceName": { + "target": "com.amazonaws.auditmanager#AWSServiceName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the AWS service. \n

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

                          \n An AWS service such as Amazon S3, AWS CloudTrail, and so on. \n

                          " + } + }, + "com.amazonaws.auditmanager#AWSServiceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-\\s().]+$" + } + }, + "com.amazonaws.auditmanager#AWSServices": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AWSService" + } + }, + "com.amazonaws.auditmanager#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

                          \n You do not have sufficient access to perform this action. \n

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.auditmanager#AccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.auditmanager#AccountName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "^[\\u0020-\\u007E]+$" + } + }, + "com.amazonaws.auditmanager#AccountStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + }, + { + "value": "PENDING_ACTIVATION", + "name": "PENDING_ACTIVATION" + } + ] + } + }, + "com.amazonaws.auditmanager#ActionEnum": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATE", + "name": "CREATE" + }, + { + "value": "UPDATE_METADATA", + "name": "UPDATE_METADATA" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + }, + { + "value": "DELETE", + "name": "DELETE" + }, + { + "value": "UNDER_REVIEW", + "name": "UNDER_REVIEW" + }, + { + "value": "REVIEWED", + "name": "REVIEWED" + }, + { + "value": "IMPORT_EVIDENCE", + "name": "IMPORT_EVIDENCE" + } + ] + } + }, + "com.amazonaws.auditmanager#ActionPlanInstructions": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#ActionPlanTitle": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#Assessment": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the assessment. \n

                          " + } + }, + "awsAccount": { + "target": "com.amazonaws.auditmanager#AWSAccount", + "traits": { + "smithy.api#documentation": "

                          \n The AWS account associated with the assessment. \n

                          " + } + }, + "metadata": { + "target": "com.amazonaws.auditmanager#AssessmentMetadata", + "traits": { + "smithy.api#documentation": "

                          \n The metadata for the specified assessment. \n

                          " + } + }, + "framework": { + "target": "com.amazonaws.auditmanager#AssessmentFramework", + "traits": { + "smithy.api#documentation": "

                          \n The framework from which the assessment was created. \n

                          " + } + }, + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \n The tags associated with the assessment. \n

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

                          \n An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. \n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentControl": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control. \n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the specified control. \n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#ControlDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified control. \n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#ControlStatus", + "traits": { + "smithy.api#documentation": "

                          \n The status of the specified control. \n

                          " + } + }, + "response": { + "target": "com.amazonaws.auditmanager#ControlResponse", + "traits": { + "smithy.api#documentation": "

                          \n The response of the specified control. \n

                          " + } + }, + "comments": { + "target": "com.amazonaws.auditmanager#ControlComments", + "traits": { + "smithy.api#documentation": "

                          \n The list of comments attached to the specified control. \n

                          " + } + }, + "evidenceSources": { + "target": "com.amazonaws.auditmanager#EvidenceSources", + "traits": { + "smithy.api#documentation": "

                          \n The list of data sources for the specified evidence.\n

                          " + } + }, + "evidenceCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The amount of evidence generated for the control.\n

                          " + } + }, + "assessmentReportEvidenceCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The amount of evidence in the assessment report.\n

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

                          \n The control entity that represents a standard or custom control used in an AWS Audit Manager assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentControlSet": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier of the control set in the assessment. This is the control set name in a plain string format. \n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The description for the control set. \n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#ControlSetStatus", + "traits": { + "smithy.api#documentation": "

                          \nSpecifies the current status of the control set.\n

                          " + } + }, + "roles": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The roles associated with the control set. \n

                          " + } + }, + "controls": { + "target": "com.amazonaws.auditmanager#AssessmentControls", + "traits": { + "smithy.api#documentation": "

                          \nThe list of controls contained with the control set.\n

                          " + } + }, + "delegations": { + "target": "com.amazonaws.auditmanager#Delegations", + "traits": { + "smithy.api#documentation": "

                          \n The delegations associated with the control set.\n

                          " + } + }, + "systemEvidenceCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total number of evidence objects retrieved automatically for the control set. \n

                          " + } + }, + "manualEvidenceCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total number of evidence objects uploaded manually to the control set. \n

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

                          \nRepresents a set of controls in an AWS Audit Manager assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentControlSets": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentControlSet" + } + }, + "com.amazonaws.auditmanager#AssessmentControls": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentControl" + } + }, + "com.amazonaws.auditmanager#AssessmentDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#AssessmentEvidenceFolder": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentEvidenceFolderName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified evidence folder.\n

                          " + } + }, + "date": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The date when the first evidence was added to the evidence folder.\n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          " + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the control set. \n

                          " + } + }, + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n \n The unique identifier for the specified control. \n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe identifier for the folder in which evidence is stored.\n

                          " + } + }, + "dataSource": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The AWS service from which the evidence was collected. \n

                          " + } + }, + "author": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The name of the user who created the evidence folder.\n

                          " + } + }, + "totalEvidence": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total amount of evidence in the evidence folder.\n

                          " + } + }, + "assessmentReportSelectionCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total count of evidence included in the assessment report.\n

                          " + } + }, + "controlName": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the control.\n

                          " + } + }, + "evidenceResourcesIncludedCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The amount of evidence included in the evidence folder.\n

                          " + } + }, + "evidenceByTypeConfigurationDataCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other AWS services such as Amazon EC2, Amazon S3, or IAM.\n

                          " + } + }, + "evidenceByTypeManualCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The number of evidence that falls under the manual category. This evidence is imported manually.\n

                          " + } + }, + "evidenceByTypeComplianceCheckCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The number of evidence that falls under the compliance check category. This evidence is collected from AWS Config or AWS Security Hub.\n

                          " + } + }, + "evidenceByTypeComplianceCheckIssuesCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total number of issues that were reported directly from AWS Security\n Hub, AWS Config, or both.\n

                          " + } + }, + "evidenceByTypeUserActivityCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The number of evidence that falls under the user activity category. This evidence is collected from AWS CloudTrail logs.\n

                          " + } + }, + "evidenceAwsServiceSourceCount": { + "target": "com.amazonaws.auditmanager#Integer", + "traits": { + "smithy.api#documentation": "

                          \n The total number of AWS resources assessed to generate the evidence. \n

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

                          \nThe folder in which AWS Audit Manager stores evidence for an assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentEvidenceFolderName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#AssessmentEvidenceFolders": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentEvidenceFolder" + } + }, + "com.amazonaws.auditmanager#AssessmentFramework": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the framework.\n

                          " + } + }, + "arn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified framework. \n

                          " + } + }, + "metadata": { + "target": "com.amazonaws.auditmanager#FrameworkMetadata" + }, + "controlSets": { + "target": "com.amazonaws.auditmanager#AssessmentControlSets", + "traits": { + "smithy.api#documentation": "

                          \n The control sets associated with the framework. \n

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

                          \n The file used to structure and automate AWS Audit Manager assessments for a given compliance standard.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentFrameworkDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#AssessmentFrameworkMetadata": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identified for the specified framework.\n

                          " + } + }, + "type": { + "target": "com.amazonaws.auditmanager#FrameworkType", + "traits": { + "smithy.api#documentation": "

                          \nThe framework type, such as standard or custom.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#FrameworkName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified framework.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#FrameworkDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified framework.\n

                          " + } + }, + "logo": { + "target": "com.amazonaws.auditmanager#Filename", + "traits": { + "smithy.api#documentation": "

                          \n The logo associated with the framework. \n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The compliance type that the new custom framework supports, such as CIS or HIPAA.\n

                          " + } + }, + "controlsCount": { + "target": "com.amazonaws.auditmanager#ControlsCount", + "traits": { + "smithy.api#documentation": "

                          \nThe number of controls associated with the specified framework.\n

                          " + } + }, + "controlSetsCount": { + "target": "com.amazonaws.auditmanager#ControlSetsCount", + "traits": { + "smithy.api#documentation": "

                          \n The number of control sets associated with the specified framework.\n

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the framework was created.\n

                          " + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the framework was most recently updated.\n

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

                          \n The metadata associated with a standard or custom framework.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentMetadata": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the assessment. \n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the assessment. \n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the assessment. \n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The name of a compliance standard related to the assessment, such as PCI-DSS. \n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#AssessmentStatus", + "traits": { + "smithy.api#documentation": "

                          \n The overall status of the assessment. \n

                          " + } + }, + "assessmentReportsDestination": { + "target": "com.amazonaws.auditmanager#AssessmentReportsDestination", + "traits": { + "smithy.api#documentation": "

                          \n The destination in which evidence reports are stored for the specified assessment. \n

                          " + } + }, + "scope": { + "target": "com.amazonaws.auditmanager#Scope", + "traits": { + "smithy.api#documentation": "

                          \n The wrapper of AWS accounts and services in scope for the assessment. \n

                          " + } + }, + "roles": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The roles associated with the assessment. \n

                          " + } + }, + "delegations": { + "target": "com.amazonaws.auditmanager#Delegations", + "traits": { + "smithy.api#documentation": "

                          \n The delegations associated with the assessment. \n

                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the assessment was created.\n

                          " + } + }, + "lastUpdated": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The time of the most recent update. \n

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

                          \n The metadata associated with the specified assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentMetadataItem": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the assessment.\n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the assessment. \n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The name of the compliance standard related to the assessment, such as PCI-DSS. \n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#AssessmentStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe current status of the assessment.\n

                          " + } + }, + "roles": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The roles associated with the assessment. \n

                          " + } + }, + "delegations": { + "target": "com.amazonaws.auditmanager#Delegations", + "traits": { + "smithy.api#documentation": "

                          \n The delegations associated with the assessment.\n

                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the assessment was created.\n

                          " + } + }, + "lastUpdated": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The time of the most recent update. \n

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

                          \nA metadata object associated with an assessment in AWS Audit Manager.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#AssessmentReport": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the specified assessment report.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#AssessmentReportName", + "traits": { + "smithy.api#documentation": "

                          \nThe name given to the assessment report.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentReportDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified assessment report.\n

                          " + } + }, + "awsAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified AWS account. \n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          " + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the associated assessment.\n

                          " + } + }, + "author": { + "target": "com.amazonaws.auditmanager#Username", + "traits": { + "smithy.api#documentation": "

                          \n The name of the user who created the assessment report.\n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#AssessmentReportStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe current status of the specified assessment report.\n

                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the assessment report was created. \n

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

                          \n A finalized document generated from an AWS Audit Manager assessment. These reports summarize the relevant evidence collected for your audit, and link to the relevant evidence folders which are named and organized according to the controls specified in your assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentReportDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#AssessmentReportDestinationType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "S3", + "name": "S3" + } + ] + } + }, + "com.amazonaws.auditmanager#AssessmentReportEvidenceError": { + "type": "structure", + "members": { + "evidenceId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the evidence. \n

                          " + } + }, + "errorCode": { + "target": "com.amazonaws.auditmanager#ErrorCode", + "traits": { + "smithy.api#documentation": "

                          \n The error code returned by the AssessmentReportEvidence API. \n

                          " + } + }, + "errorMessage": { + "target": "com.amazonaws.auditmanager#ErrorMessage", + "traits": { + "smithy.api#documentation": "

                          \n The error message returned by the AssessmentReportEvidence API. \n

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

                          \n An error entity for the AssessmentReportEvidence API. This is used to provide more meaningful errors than a simple string message.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentReportEvidenceErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentReportEvidenceError" + } + }, + "com.amazonaws.auditmanager#AssessmentReportMetadata": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the assessment report.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#AssessmentReportName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the assessment report.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentReportDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe description of the specified assessment report.\n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the associated assessment.\n

                          " + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          The name of the associated assessment. \n

                          " + } + }, + "author": { + "target": "com.amazonaws.auditmanager#Username", + "traits": { + "smithy.api#documentation": "

                          \n The name of the user who created the assessment report.\n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#AssessmentReportStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe current status of the assessment report.\n

                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the assessment report was created.\n

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

                          \n The metadata objects associated with the specified assessment report.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentReportName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_\\.]+$" + } + }, + "com.amazonaws.auditmanager#AssessmentReportStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "COMPLETE", + "name": "COMPLETE" + }, + { + "value": "IN_PROGRESS", + "name": "IN_PROGRESS" + }, + { + "value": "FAILED", + "name": "FAILED" + } + ] + } + }, + "com.amazonaws.auditmanager#AssessmentReportsDestination": { + "type": "structure", + "members": { + "destinationType": { + "target": "com.amazonaws.auditmanager#AssessmentReportDestinationType", + "traits": { + "smithy.api#documentation": "

                          \n The destination type, such as Amazon S3. \n

                          " + } + }, + "destination": { + "target": "com.amazonaws.auditmanager#S3Url", + "traits": { + "smithy.api#documentation": "

                          \n The destination of the assessment report.\n

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

                          \n The location in which AWS Audit Manager saves assessment reports for the given assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#AssessmentReportsMetadata": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentReportMetadata" + } + }, + "com.amazonaws.auditmanager#AssessmentStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + } + ] + } + }, + "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolder": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolderRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Associates an evidence folder to the specified assessment report in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/associateToAssessmentReport", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolderRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which evidence is stored.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolderResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#AuditManagerArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*:auditmanager:.*" + } + }, + "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidence": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidenceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidenceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Associates a list of evidence to an assessment report in an AWS Audit Manager assessment.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/batchAssociateToAssessmentReport", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidenceRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the specified assessment.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which the evidence is stored.\n

                          ", + "smithy.api#required": {} + } + }, + "evidenceIds": { + "target": "com.amazonaws.auditmanager#EvidenceIds", + "traits": { + "smithy.api#documentation": "

                          \n The list of evidence identifiers. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidenceResponse": { + "type": "structure", + "members": { + "evidenceIds": { + "target": "com.amazonaws.auditmanager#EvidenceIds", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the evidence. \n

                          " + } + }, + "errors": { + "target": "com.amazonaws.auditmanager#AssessmentReportEvidenceErrors", + "traits": { + "smithy.api#documentation": "

                          \n A list of errors returned by the BatchAssociateAssessmentReportEvidence API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#BatchCreateDelegationByAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Create a batch of delegations for a specified assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessments/{assessmentId}/delegations", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentError": { + "type": "structure", + "members": { + "createDelegationRequest": { + "target": "com.amazonaws.auditmanager#CreateDelegationRequest", + "traits": { + "smithy.api#documentation": "

                          \nThe API request to batch create delegations in AWS Audit Manager.\n

                          " + } + }, + "errorCode": { + "target": "com.amazonaws.auditmanager#ErrorCode", + "traits": { + "smithy.api#documentation": "

                          \n The error code returned by the BatchCreateDelegationByAssessment API. \n

                          " + } + }, + "errorMessage": { + "target": "com.amazonaws.auditmanager#ErrorMessage", + "traits": { + "smithy.api#documentation": "

                          \n The error message returned by the BatchCreateDelegationByAssessment API. \n

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

                          \n An error entity for the BatchCreateDelegationByAssessment API. This is used to provide more meaningful errors than a simple string message.\n

                          " + } + }, + "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentError" + } + }, + "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentRequest": { + "type": "structure", + "members": { + "createDelegationRequests": { + "target": "com.amazonaws.auditmanager#CreateDelegationRequests", + "traits": { + "smithy.api#documentation": "

                          \n The API request to batch create delegations in AWS Audit Manager.\n

                          ", + "smithy.api#required": {} + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentResponse": { + "type": "structure", + "members": { + "delegations": { + "target": "com.amazonaws.auditmanager#Delegations", + "traits": { + "smithy.api#documentation": "

                          \n The delegations associated with the assessment. \n

                          " + } + }, + "errors": { + "target": "com.amazonaws.auditmanager#BatchCreateDelegationByAssessmentErrors", + "traits": { + "smithy.api#documentation": "

                          \n A list of errors returned by the BatchCreateDelegationByAssessment API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nDeletes the delegations in the specified AWS Audit Manager assessment.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/delegations", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentError": { + "type": "structure", + "members": { + "delegationId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified delegation.\n

                          " + } + }, + "errorCode": { + "target": "com.amazonaws.auditmanager#ErrorCode", + "traits": { + "smithy.api#documentation": "

                          \n The error code returned by the BatchDeleteDelegationByAssessment API.\n

                          " + } + }, + "errorMessage": { + "target": "com.amazonaws.auditmanager#ErrorMessage", + "traits": { + "smithy.api#documentation": "

                          \n The error message returned by the BatchDeleteDelegationByAssessment API.\n

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

                          \n An error entity for the BatchDeleteDelegationByAssessment API. This is used to provide more meaningful errors than a simple string message.\n

                          " + } + }, + "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentError" + } + }, + "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentRequest": { + "type": "structure", + "members": { + "delegationIds": { + "target": "com.amazonaws.auditmanager#DelegationIds", + "traits": { + "smithy.api#documentation": "

                          \n The identifiers for the specified delegations.\n

                          ", + "smithy.api#required": {} + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessmentErrors", + "traits": { + "smithy.api#documentation": "

                          \n A list of errors returned by the BatchDeleteDelegationByAssessment API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidence": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidenceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidenceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/batchDisassociateFromAssessmentReport", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidenceRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which evidence is stored.\n

                          ", + "smithy.api#required": {} + } + }, + "evidenceIds": { + "target": "com.amazonaws.auditmanager#EvidenceIds", + "traits": { + "smithy.api#documentation": "

                          \n The list of evidence identifiers. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidenceResponse": { + "type": "structure", + "members": { + "evidenceIds": { + "target": "com.amazonaws.auditmanager#EvidenceIds", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the evidence. \n

                          " + } + }, + "errors": { + "target": "com.amazonaws.auditmanager#AssessmentReportEvidenceErrors", + "traits": { + "smithy.api#documentation": "

                          \n A list of errors returned by the BatchDisassociateAssessmentReportEvidence API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}/evidence", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlError": { + "type": "structure", + "members": { + "manualEvidence": { + "target": "com.amazonaws.auditmanager#ManualEvidence", + "traits": { + "smithy.api#documentation": "

                          \nManual evidence that cannot be collected automatically by AWS Audit Manager.\n

                          " + } + }, + "errorCode": { + "target": "com.amazonaws.auditmanager#ErrorCode", + "traits": { + "smithy.api#documentation": "

                          \n The error code returned by the BatchImportEvidenceToAssessmentControl API. \n

                          " + } + }, + "errorMessage": { + "target": "com.amazonaws.auditmanager#ErrorMessage", + "traits": { + "smithy.api#documentation": "

                          \n The error message returned by the BatchImportEvidenceToAssessmentControlError API. \n

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

                          \n An error entity for the BatchImportEvidenceToAssessmentControl API. This is used to provide more meaningful errors than a simple string message.\n

                          " + } + }, + "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlError" + } + }, + "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "manualEvidence": { + "target": "com.amazonaws.auditmanager#ManualEvidenceList", + "traits": { + "smithy.api#documentation": "

                          \n The list of manual evidence objects.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControlErrors", + "traits": { + "smithy.api#documentation": "

                          \n A list of errors returned by the BatchImportEvidenceToAssessmentControl API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#BedrockAssessmentManagerLambda": { + "type": "service", + "version": "2017-07-25", + "operations": [ + { + "target": "com.amazonaws.auditmanager#AssociateAssessmentReportEvidenceFolder" + }, + { + "target": "com.amazonaws.auditmanager#BatchAssociateAssessmentReportEvidence" + }, + { + "target": "com.amazonaws.auditmanager#BatchCreateDelegationByAssessment" + }, + { + "target": "com.amazonaws.auditmanager#BatchDeleteDelegationByAssessment" + }, + { + "target": "com.amazonaws.auditmanager#BatchDisassociateAssessmentReportEvidence" + }, + { + "target": "com.amazonaws.auditmanager#BatchImportEvidenceToAssessmentControl" + }, + { + "target": "com.amazonaws.auditmanager#CreateAssessment" + }, + { + "target": "com.amazonaws.auditmanager#CreateAssessmentFramework" + }, + { + "target": "com.amazonaws.auditmanager#CreateAssessmentReport" + }, + { + "target": "com.amazonaws.auditmanager#CreateControl" + }, + { + "target": "com.amazonaws.auditmanager#DeleteAssessment" + }, + { + "target": "com.amazonaws.auditmanager#DeleteAssessmentFramework" + }, + { + "target": "com.amazonaws.auditmanager#DeleteAssessmentReport" + }, + { + "target": "com.amazonaws.auditmanager#DeleteControl" + }, + { + "target": "com.amazonaws.auditmanager#DeregisterAccount" + }, + { + "target": "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccount" + }, + { + "target": "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolder" + }, + { + "target": "com.amazonaws.auditmanager#GetAccountStatus" + }, + { + "target": "com.amazonaws.auditmanager#GetAssessment" + }, + { + "target": "com.amazonaws.auditmanager#GetAssessmentFramework" + }, + { + "target": "com.amazonaws.auditmanager#GetAssessmentReportUrl" + }, + { + "target": "com.amazonaws.auditmanager#GetChangeLogs" + }, + { + "target": "com.amazonaws.auditmanager#GetControl" + }, + { + "target": "com.amazonaws.auditmanager#GetDelegations" + }, + { + "target": "com.amazonaws.auditmanager#GetEvidence" + }, + { + "target": "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolder" + }, + { + "target": "com.amazonaws.auditmanager#GetEvidenceFolder" + }, + { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessment" + }, + { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControl" + }, + { + "target": "com.amazonaws.auditmanager#GetOrganizationAdminAccount" + }, + { + "target": "com.amazonaws.auditmanager#GetServicesInScope" + }, + { + "target": "com.amazonaws.auditmanager#GetSettings" + }, + { + "target": "com.amazonaws.auditmanager#ListAssessmentFrameworks" + }, + { + "target": "com.amazonaws.auditmanager#ListAssessmentReports" + }, + { + "target": "com.amazonaws.auditmanager#ListAssessments" + }, + { + "target": "com.amazonaws.auditmanager#ListControls" + }, + { + "target": "com.amazonaws.auditmanager#ListKeywordsForDataSource" + }, + { + "target": "com.amazonaws.auditmanager#ListNotifications" + }, + { + "target": "com.amazonaws.auditmanager#ListTagsForResource" + }, + { + "target": "com.amazonaws.auditmanager#RegisterAccount" + }, + { + "target": "com.amazonaws.auditmanager#RegisterOrganizationAdminAccount" + }, + { + "target": "com.amazonaws.auditmanager#TagResource" + }, + { + "target": "com.amazonaws.auditmanager#UntagResource" + }, + { + "target": "com.amazonaws.auditmanager#UpdateAssessment" + }, + { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControl" + }, + { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatus" + }, + { + "target": "com.amazonaws.auditmanager#UpdateAssessmentFramework" + }, + { + "target": "com.amazonaws.auditmanager#UpdateAssessmentStatus" + }, + { + "target": "com.amazonaws.auditmanager#UpdateControl" + }, + { + "target": "com.amazonaws.auditmanager#UpdateSettings" + }, + { + "target": "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrity" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "AuditManager", + "arnNamespace": "auditmanager", + "cloudFormationName": "AuditManager", + "cloudTrailEventSource": "auditmanager.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "auditmanager" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

                          Welcome to the AWS Audit Manager API reference. This guide is for developers who need detailed information about the AWS Audit Manager API operations, data types, and errors.

                          \n

                          AWS Audit Manager is a service that provides automated evidence collection so that you\n can continuously audit your AWS usage, and assess the effectiveness of your controls to\n better manage risk and simplify compliance.

                          \n

                          AWS Audit Manager provides pre-built frameworks that structure and automate assessments\n for a given compliance standard. Frameworks include a pre-built collection of controls with\n descriptions and testing procedures, which are grouped according to the requirements of the\n specified compliance standard or regulation. You can also customize frameworks and controls\n to support internal audits with unique requirements.

                          \n \n

                          Use the following links to get started with the AWS Audit Manager API:

                          \n
                            \n
                          • \n

                            \n Actions: An alphabetical list of all AWS Audit Manager API operations.

                            \n
                          • \n
                          • \n

                            \n Data types: An alphabetical list of all AWS Audit Manager data types.

                            \n
                          • \n
                          • \n

                            \n Common parameters: Parameters that all Query operations can use.

                            \n
                          • \n
                          • \n

                            \n Common errors: Client and server errors that all operations can return.

                            \n
                          • \n
                          \n \n

                          If you're new to AWS Audit Manager, we recommend that you review the AWS Audit Manager User Guide.

                          ", + "smithy.api#title": "AWS Audit Manager" + } + }, + "com.amazonaws.auditmanager#Boolean": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.auditmanager#ChangeLog": { + "type": "structure", + "members": { + "objectType": { + "target": "com.amazonaws.auditmanager#ObjectTypeEnum", + "traits": { + "smithy.api#documentation": "

                          \n The changelog object type, such as an assessment, control, or control set. \n

                          " + } + }, + "objectName": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The name of the changelog object. \n

                          " + } + }, + "action": { + "target": "com.amazonaws.auditmanager#ActionEnum", + "traits": { + "smithy.api#documentation": "

                          \n The action performed. \n

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The time of creation for the changelog object. \n

                          " + } + }, + "createdBy": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The IAM user or role that performed the action. \n

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

                          \n The record of a change within AWS Audit Manager, such as a modified assessment, a delegated control set, and so on. \n

                          " + } + }, + "com.amazonaws.auditmanager#ChangeLogs": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ChangeLog" + } + }, + "com.amazonaws.auditmanager#ComplianceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#Control": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified control.\n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the control.\n

                          " + } + }, + "type": { + "target": "com.amazonaws.auditmanager#ControlType", + "traits": { + "smithy.api#documentation": "

                          \nThe type of control, such as custom or standard.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified control.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#ControlDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified control. \n

                          " + } + }, + "testingInformation": { + "target": "com.amazonaws.auditmanager#TestingInformation", + "traits": { + "smithy.api#documentation": "

                          \n The steps to follow to determine if the control has been satisfied.\n

                          " + } + }, + "actionPlanTitle": { + "target": "com.amazonaws.auditmanager#ActionPlanTitle", + "traits": { + "smithy.api#documentation": "

                          \n The title of the action plan for remediating the control.\n

                          " + } + }, + "actionPlanInstructions": { + "target": "com.amazonaws.auditmanager#ActionPlanInstructions", + "traits": { + "smithy.api#documentation": "

                          \n \n The recommended actions to carry out if the control is not fulfilled.\n

                          " + } + }, + "controlSources": { + "target": "com.amazonaws.auditmanager#ControlSources", + "traits": { + "smithy.api#documentation": "

                          \n The data mapping sources for the specified control.\n

                          " + } + }, + "controlMappingSources": { + "target": "com.amazonaws.auditmanager#ControlMappingSources", + "traits": { + "smithy.api#documentation": "

                          \n The data mapping sources for the specified control. \n

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \nSpecifies when the control was created.\n

                          " + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \nSpecifies when the control was most recently updated.\n

                          " + } + }, + "createdBy": { + "target": "com.amazonaws.auditmanager#CreatedBy", + "traits": { + "smithy.api#documentation": "

                          \n The IAM user or role that created the control.\n

                          " + } + }, + "lastUpdatedBy": { + "target": "com.amazonaws.auditmanager#LastUpdatedBy", + "traits": { + "smithy.api#documentation": "

                          \n The IAM user or role that most recently updated the control. \n

                          " + } + }, + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \n The tags associated with the control.\n

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

                          \nA control in AWS Audit Manager.\n

                          " + } + }, + "com.amazonaws.auditmanager#ControlComment": { + "type": "structure", + "members": { + "authorName": { + "target": "com.amazonaws.auditmanager#Username", + "traits": { + "smithy.api#documentation": "

                          \n The name of the user who authored the comment. \n

                          " + } + }, + "commentBody": { + "target": "com.amazonaws.auditmanager#ControlCommentBody", + "traits": { + "smithy.api#documentation": "

                          \n The body text of a control comment. \n

                          " + } + }, + "postedDate": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The time when the comment was posted. \n

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

                          \n A comment posted by a user on a control. This includes the author's name, the comment text, and a timestamp. \n

                          " + } + }, + "com.amazonaws.auditmanager#ControlCommentBody": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#ControlComments": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ControlComment" + } + }, + "com.amazonaws.auditmanager#ControlDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#ControlMappingSource": { + "type": "structure", + "members": { + "sourceId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the specified source.\n

                          " + } + }, + "sourceName": { + "target": "com.amazonaws.auditmanager#SourceName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified source.\n

                          " + } + }, + "sourceDescription": { + "target": "com.amazonaws.auditmanager#SourceDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe description of the specified source.\n

                          " + } + }, + "sourceSetUpOption": { + "target": "com.amazonaws.auditmanager#SourceSetUpOption", + "traits": { + "smithy.api#documentation": "

                          \n The setup option for the data source, which reflects if the evidence collection is automated or manual.\n

                          " + } + }, + "sourceType": { + "target": "com.amazonaws.auditmanager#SourceType", + "traits": { + "smithy.api#documentation": "

                          \n Specifies one of the five types of data sources for evidence collection.\n

                          " + } + }, + "sourceKeyword": { + "target": "com.amazonaws.auditmanager#SourceKeyword" + }, + "sourceFrequency": { + "target": "com.amazonaws.auditmanager#SourceFrequency", + "traits": { + "smithy.api#documentation": "

                          \n The frequency of evidence collection for the specified control mapping source.\n

                          " + } + }, + "troubleshootingText": { + "target": "com.amazonaws.auditmanager#TroubleshootingText", + "traits": { + "smithy.api#documentation": "

                          \n The instructions for troubleshooting the specified control.\n

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

                          \n The data source that determines from where AWS Audit Manager collects evidence for the control.\n

                          " + } + }, + "com.amazonaws.auditmanager#ControlMappingSources": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ControlMappingSource" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#ControlMetadata": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified control.\n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the specified control.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified control.\n

                          " + } + }, + "controlSources": { + "target": "com.amazonaws.auditmanager#ControlSources", + "traits": { + "smithy.api#documentation": "

                          \n The data source that determines from where AWS Audit Manager collects evidence for the control.\n

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the control was created.\n

                          " + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the control was most recently updated.\n

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

                          \n The metadata associated with the specified standard or custom control.\n

                          " + } + }, + "com.amazonaws.auditmanager#ControlMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ControlMetadata" + } + }, + "com.amazonaws.auditmanager#ControlName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#ControlResponse": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MANUAL", + "name": "MANUAL" + }, + { + "value": "AUTOMATE", + "name": "AUTOMATE" + }, + { + "value": "DEFER", + "name": "DEFER" + }, + { + "value": "IGNORE", + "name": "IGNORE" + } + ] + } + }, + "com.amazonaws.auditmanager#ControlSet": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier of the control set in the assessment. This is the control set name in a plain string format. \n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlSetName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the control set.\n

                          " + } + }, + "controls": { + "target": "com.amazonaws.auditmanager#Controls", + "traits": { + "smithy.api#documentation": "

                          \n The list of controls within the control set. \n

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

                          \nA set of controls in AWS Audit Manager.\n

                          " + } + }, + "com.amazonaws.auditmanager#ControlSetId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#ControlSetName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[^\\_]*$" + } + }, + "com.amazonaws.auditmanager#ControlSetStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "UNDER_REVIEW", + "name": "UNDER_REVIEW" + }, + { + "value": "REVIEWED", + "name": "REVIEWED" + } + ] + } + }, + "com.amazonaws.auditmanager#ControlSets": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ControlSet" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#ControlSetsCount": { + "type": "integer" + }, + "com.amazonaws.auditmanager#ControlSources": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z_0-9-\\s.,]+$" + } + }, + "com.amazonaws.auditmanager#ControlStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UNDER_REVIEW", + "name": "UNDER_REVIEW" + }, + { + "value": "REVIEWED", + "name": "REVIEWED" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + } + ] + } + }, + "com.amazonaws.auditmanager#ControlType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Standard", + "name": "STANDARD" + }, + { + "value": "Custom", + "name": "CUSTOM" + } + ] + } + }, + "com.amazonaws.auditmanager#Controls": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Control" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#ControlsCount": { + "type": "integer" + }, + "com.amazonaws.auditmanager#CreateAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#CreateAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#CreateAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Creates an assessment in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessments", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFramework": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nCreates a custom framework in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessmentFrameworks", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkControl": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier of the control.\n

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

                          \nControl entity attributes that uniquely identify an existing control to be added to a framework in AWS Audit Manager.\n

                          " + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkControlSet": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#ControlSetName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified control set.\n

                          " + } + }, + "controls": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkControls", + "traits": { + "smithy.api#documentation": "

                          \n The list of controls within the control set. This does not contain the control set ID.\n

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

                          \nA controlSet entity that represents a collection of controls in AWS Audit Manager. This does not contain the control set ID.\n

                          " + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkControlSets": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkControlSet" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkControls": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkControl" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#FrameworkName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the new custom framework.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#FrameworkDescription", + "traits": { + "smithy.api#documentation": "

                          \nAn optional description for the new custom framework.\n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \nThe compliance type that the new custom framework supports, such as CIS or HIPAA.\n

                          " + } + }, + "controlSets": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkControlSets", + "traits": { + "smithy.api#documentation": "

                          \n The control sets to be associated with the framework. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentFrameworkResponse": { + "type": "structure", + "members": { + "framework": { + "target": "com.amazonaws.auditmanager#Framework", + "traits": { + "smithy.api#documentation": "

                          \n The name of the new framework returned by the CreateAssessmentFramework API.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#CreateAssessmentReportRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#CreateAssessmentReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nCreates an assessment report for the specified assessment.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessments/{assessmentId}/reports", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentReportRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentReportName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the new assessment report.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentReportDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe description of the assessment report.\n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentReportResponse": { + "type": "structure", + "members": { + "assessmentReport": { + "target": "com.amazonaws.auditmanager#AssessmentReport", + "traits": { + "smithy.api#documentation": "

                          \n The new assessment report returned by the CreateAssessmentReport API.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the assessment to be created.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentDescription", + "traits": { + "smithy.api#documentation": "

                          \n The optional description of the assessment to be created.\n

                          " + } + }, + "assessmentReportsDestination": { + "target": "com.amazonaws.auditmanager#AssessmentReportsDestination", + "traits": { + "smithy.api#documentation": "

                          \n The assessment report storage destination for the specified assessment that is being created. \n

                          ", + "smithy.api#required": {} + } + }, + "scope": { + "target": "com.amazonaws.auditmanager#Scope", + "traits": { + "smithy.api#required": {} + } + }, + "roles": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The list of roles for the specified assessment. \n

                          ", + "smithy.api#required": {} + } + }, + "frameworkId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified framework. \n

                          ", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \n The tags associated with the assessment. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#CreateAssessmentResponse": { + "type": "structure", + "members": { + "assessment": { + "target": "com.amazonaws.auditmanager#Assessment" + } + } + }, + "com.amazonaws.auditmanager#CreateControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#CreateControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#CreateControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nCreates a new custom control in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/controls", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#CreateControlMappingSource": { + "type": "structure", + "members": { + "sourceName": { + "target": "com.amazonaws.auditmanager#SourceName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the control mapping data source.\n

                          " + } + }, + "sourceDescription": { + "target": "com.amazonaws.auditmanager#SourceDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the data source that determines from where AWS Audit Manager collects evidence for the control. \n

                          " + } + }, + "sourceSetUpOption": { + "target": "com.amazonaws.auditmanager#SourceSetUpOption", + "traits": { + "smithy.api#documentation": "

                          \n The setup option for the data source, which reflects if the evidence collection is automated or manual.\n

                          " + } + }, + "sourceType": { + "target": "com.amazonaws.auditmanager#SourceType", + "traits": { + "smithy.api#documentation": "

                          \n Specifies one of the five types of data sources for evidence collection.\n \n

                          " + } + }, + "sourceKeyword": { + "target": "com.amazonaws.auditmanager#SourceKeyword" + }, + "sourceFrequency": { + "target": "com.amazonaws.auditmanager#SourceFrequency", + "traits": { + "smithy.api#documentation": "

                          \n The frequency of evidence collection for the specified control mapping source.\n

                          " + } + }, + "troubleshootingText": { + "target": "com.amazonaws.auditmanager#TroubleshootingText", + "traits": { + "smithy.api#documentation": "

                          \nThe instructions for troubleshooting the specified control.\n

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

                          \n Control mapping fields that represent the source for evidence collection, along with related parameters and metadata. This does not contain mappingID.\n

                          " + } + }, + "com.amazonaws.auditmanager#CreateControlMappingSources": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#CreateControlMappingSource" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.auditmanager#CreateControlRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the control.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#ControlDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe description of the control.\n

                          " + } + }, + "testingInformation": { + "target": "com.amazonaws.auditmanager#TestingInformation", + "traits": { + "smithy.api#documentation": "

                          \n The steps to follow to determine if the control has been satisfied.\n

                          " + } + }, + "actionPlanTitle": { + "target": "com.amazonaws.auditmanager#ActionPlanTitle", + "traits": { + "smithy.api#documentation": "

                          \n The title of the action plan for remediating the control.\n

                          " + } + }, + "actionPlanInstructions": { + "target": "com.amazonaws.auditmanager#ActionPlanInstructions", + "traits": { + "smithy.api#documentation": "

                          \n The recommended actions to carry out if the control is not fulfilled.\n

                          " + } + }, + "controlMappingSources": { + "target": "com.amazonaws.auditmanager#CreateControlMappingSources", + "traits": { + "smithy.api#documentation": "

                          \n The data source that determines from where AWS Audit Manager collects evidence for the control. \n

                          ", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \n The tags associated with the control.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#CreateControlResponse": { + "type": "structure", + "members": { + "control": { + "target": "com.amazonaws.auditmanager#Control", + "traits": { + "smithy.api#documentation": "

                          \n The new control returned by the CreateControl API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#CreateDelegationRequest": { + "type": "structure", + "members": { + "comment": { + "target": "com.amazonaws.auditmanager#DelegationComment", + "traits": { + "smithy.api#documentation": "

                          \n A comment related to the delegation request. \n

                          " + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the control set. \n

                          " + } + }, + "roleArn": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the IAM role. \n

                          " + } + }, + "roleType": { + "target": "com.amazonaws.auditmanager#RoleType", + "traits": { + "smithy.api#documentation": "

                          \n The type of customer persona.\n

                          \n \n

                          In CreateAssessment, roleType can only be PROCESS_OWNER.

                          \n

                          In UpdateSettings, roleType can only be PROCESS_OWNER.

                          \n

                          In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

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

                          \n A collection of attributes used to create a delegation for an assessment in AWS Audit Manager.\n

                          " + } + }, + "com.amazonaws.auditmanager#CreateDelegationRequests": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#CreateDelegationRequest" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#CreatedBy": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\s-_()\\[\\]]+$" + } + }, + "com.amazonaws.auditmanager#Delegation": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the delegation. \n

                          " + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the associated assessment. \n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the associated assessment. \n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#DelegationStatus", + "traits": { + "smithy.api#documentation": "

                          \n The status of the delegation. \n

                          " + } + }, + "roleArn": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the IAM role. \n

                          " + } + }, + "roleType": { + "target": "com.amazonaws.auditmanager#RoleType", + "traits": { + "smithy.api#documentation": "

                          \n The type of customer persona.\n

                          \n \n

                          In CreateAssessment, roleType can only be PROCESS_OWNER.

                          \n

                          In UpdateSettings, roleType can only be PROCESS_OWNER.

                          \n

                          In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

                          \n
                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Specifies when the delegation was created.

                          " + } + }, + "lastUpdated": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the delegation was last updated. \n

                          " + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the associated control set.\n

                          " + } + }, + "comment": { + "target": "com.amazonaws.auditmanager#DelegationComment", + "traits": { + "smithy.api#documentation": "

                          \n The comment related to the delegation. \n

                          " + } + }, + "createdBy": { + "target": "com.amazonaws.auditmanager#CreatedBy", + "traits": { + "smithy.api#documentation": "

                          The IAM user or role that created the delegation.

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

                          \n The assignment of a control set to a delegate for review. \n

                          " + } + }, + "com.amazonaws.auditmanager#DelegationComment": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 350 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#DelegationIds": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#UUID" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#DelegationMetadata": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the delegation. \n

                          " + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the associated assessment. \n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the specified assessment.\n

                          " + } + }, + "status": { + "target": "com.amazonaws.auditmanager#DelegationStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe current status of the delgation.\n

                          " + } + }, + "roleArn": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the IAM role. \n

                          " + } + }, + "creationTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the delegation was created.\n

                          " + } + }, + "controlSetName": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \nSpecifies the name of the control set delegated for review.\n

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

                          \n The metadata associated with the specified delegation.\n

                          " + } + }, + "com.amazonaws.auditmanager#DelegationMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#DelegationMetadata" + } + }, + "com.amazonaws.auditmanager#DelegationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "IN_PROGRESS", + "name": "IN_PROGRESS" + }, + { + "value": "UNDER_REVIEW", + "name": "UNDER_REVIEW" + }, + { + "value": "COMPLETE", + "name": "COMPLETE" + } + ] + } + }, + "com.amazonaws.auditmanager#Delegations": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Delegation" + } + }, + "com.amazonaws.auditmanager#DeleteAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Deletes an assessment in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/assessments/{assessmentId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentFramework": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentFrameworkRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentFrameworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Deletes a custom framework in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/assessmentFrameworks/{frameworkId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentFrameworkRequest": { + "type": "structure", + "members": { + "frameworkId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified framework. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentFrameworkResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DeleteAssessmentReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentReportRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeleteAssessmentReportResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nDeletes an assessment report from an assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/assessments/{assessmentId}/reports/{assessmentReportId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentReportRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "assessmentReportId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the assessment report.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentReportResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DeleteAssessmentRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#DeleteAssessmentResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DeleteControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeleteControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeleteControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Deletes a custom control in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/controls/{controlId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeleteControlRequest": { + "type": "structure", + "members": { + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#DeleteControlResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DeregisterAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeregisterAccountRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeregisterAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nDeregisters an account in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/account/deregisterAccount", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeregisterAccountRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DeregisterAccountResponse": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.auditmanager#AccountStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe registration status of the account.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccountRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Deregisters the delegated AWS administrator account from the AWS organization. \n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/account/deregisterOrganizationAdminAccount", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccountRequest": { + "type": "structure", + "members": { + "adminAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified administrator account. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#DeregisterOrganizationAdminAccountResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolder": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolderRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/disassociateFromAssessmentReport", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolderRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which evidence is stored.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#DisassociateAssessmentReportEvidenceFolderResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#EmailAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 320 + }, + "smithy.api#pattern": "^.*@.*$" + } + }, + "com.amazonaws.auditmanager#ErrorCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + }, + "smithy.api#pattern": "[0-9]{3}" + } + }, + "com.amazonaws.auditmanager#ErrorMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#EventName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#Evidence": { + "type": "structure", + "members": { + "dataSource": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The data source from which the specified evidence was collected.\n

                          " + } + }, + "evidenceAwsAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified AWS account. \n

                          " + } + }, + "time": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The timestamp that represents when the evidence was collected.\n

                          " + } + }, + "eventSource": { + "target": "com.amazonaws.auditmanager#AWSServiceName", + "traits": { + "smithy.api#documentation": "

                          \nThe AWS service from which the evidence is collected.\n

                          " + } + }, + "eventName": { + "target": "com.amazonaws.auditmanager#EventName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the specified evidence event.\n

                          " + } + }, + "evidenceByType": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The type of automated evidence.\n

                          " + } + }, + "resourcesIncluded": { + "target": "com.amazonaws.auditmanager#Resources", + "traits": { + "smithy.api#documentation": "

                          \n The list of resources assessed to generate the evidence.\n

                          " + } + }, + "attributes": { + "target": "com.amazonaws.auditmanager#EvidenceAttributes", + "traits": { + "smithy.api#documentation": "

                          \n The names and values used by the evidence event, including an attribute name (such as allowUsersToChangePassword) and value (such as true or false).\n

                          " + } + }, + "iamId": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the IAM user or role associated with the evidence.\n

                          " + } + }, + "complianceCheck": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          The evaluation status for evidence that falls under the compliance check category. For\n evidence collected from AWS Security Hub, a Pass or\n Fail result is shown. For evidence collected from AWS Config, a\n Compliant or Noncompliant result is shown.

                          " + } + }, + "awsOrganization": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The AWS account from which the evidence is collected, and its AWS organization path.\n

                          " + } + }, + "awsAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified AWS account. \n

                          " + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which the evidence is stored.\n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          The identifier for the evidence. \n

                          " + } + }, + "assessmentReportSelection": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n Specifies whether the evidence is inclded in the assessment report.\n

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

                          \n A record that contains the information needed to demonstrate compliance with the requirements specified by a control. Examples of evidence include change activity triggered by a user, or a system configuration snapshot. \n

                          " + } + }, + "com.amazonaws.auditmanager#EvidenceAttributeKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#EvidenceAttributeValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#EvidenceAttributes": { + "type": "map", + "key": { + "target": "com.amazonaws.auditmanager#EvidenceAttributeKey" + }, + "value": { + "target": "com.amazonaws.auditmanager#EvidenceAttributeValue" + } + }, + "com.amazonaws.auditmanager#EvidenceIds": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#UUID" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#EvidenceList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Evidence" + } + }, + "com.amazonaws.auditmanager#EvidenceSources": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#NonEmptyString" + } + }, + "com.amazonaws.auditmanager#Filename": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[\\w,\\s-]+\\.[A-Za-z]+$" + } + }, + "com.amazonaws.auditmanager#Framework": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified framework.\n

                          " + } + }, + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the specified framework.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#FrameworkName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified framework.\n

                          " + } + }, + "type": { + "target": "com.amazonaws.auditmanager#FrameworkType", + "traits": { + "smithy.api#documentation": "

                          \nThe framework type, such as custom or standard.\n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The compliance type that the new custom framework supports, such as CIS or HIPAA.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#FrameworkDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified framework.\n

                          " + } + }, + "logo": { + "target": "com.amazonaws.auditmanager#Filename", + "traits": { + "smithy.api#documentation": "

                          \n The logo associated with the framework. \n

                          " + } + }, + "controlSources": { + "target": "com.amazonaws.auditmanager#ControlSources", + "traits": { + "smithy.api#documentation": "

                          \nThe sources from which AWS Audit Manager collects evidence for the control.\n

                          " + } + }, + "controlSets": { + "target": "com.amazonaws.auditmanager#ControlSets", + "traits": { + "smithy.api#documentation": "

                          \n The control sets associated with the framework. \n

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the framework was created.\n

                          " + } + }, + "lastUpdatedAt": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n Specifies when the framework was most recently updated.\n

                          " + } + }, + "createdBy": { + "target": "com.amazonaws.auditmanager#CreatedBy", + "traits": { + "smithy.api#documentation": "

                          \n The IAM user or role that created the framework.\n

                          " + } + }, + "lastUpdatedBy": { + "target": "com.amazonaws.auditmanager#LastUpdatedBy", + "traits": { + "smithy.api#documentation": "

                          \n The IAM user or role that most recently updated the framework. \n

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

                          \n The file used to structure and automate AWS Audit Manager assessments for a given compliance standard.\n

                          " + } + }, + "com.amazonaws.auditmanager#FrameworkDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#FrameworkMetadata": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the framework. \n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#AssessmentFrameworkDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the framework. \n

                          " + } + }, + "logo": { + "target": "com.amazonaws.auditmanager#Filename", + "traits": { + "smithy.api#documentation": "

                          \n The logo associated with the framework. \n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The compliance standard associated with the framework, such as PCI-DSS or HIPAA.\n

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

                          \n The metadata of a framework, such as the name, ID, description, and so on. \n

                          " + } + }, + "com.amazonaws.auditmanager#FrameworkMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentFrameworkMetadata" + } + }, + "com.amazonaws.auditmanager#FrameworkName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 300 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#FrameworkType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Standard", + "name": "STANDARD" + }, + { + "value": "Custom", + "name": "CUSTOM" + } + ] + } + }, + "com.amazonaws.auditmanager#GenericArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*" + } + }, + "com.amazonaws.auditmanager#GetAccountStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetAccountStatusRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetAccountStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#InternalServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns the registration status of an account in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/account/status", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetAccountStatusRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#GetAccountStatusResponse": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.auditmanager#AccountStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe status of the specified AWS account.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns an assessment from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentFramework": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetAssessmentFrameworkRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetAssessmentFrameworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a framework from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessmentFrameworks/{frameworkId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentFrameworkRequest": { + "type": "structure", + "members": { + "frameworkId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified framework. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentFrameworkResponse": { + "type": "structure", + "members": { + "framework": { + "target": "com.amazonaws.auditmanager#Framework", + "traits": { + "smithy.api#documentation": "

                          \n The framework returned by the GetAssessmentFramework API.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentReportUrl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetAssessmentReportUrlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetAssessmentReportUrlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns the URL of a specified assessment report in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/reports/{assessmentReportId}/url", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentReportUrlRequest": { + "type": "structure", + "members": { + "assessmentReportId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe identifier for the assessment report.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentReportUrlResponse": { + "type": "structure", + "members": { + "preSignedUrl": { + "target": "com.amazonaws.auditmanager#URL" + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetAssessmentResponse": { + "type": "structure", + "members": { + "assessment": { + "target": "com.amazonaws.auditmanager#Assessment" + } + } + }, + "com.amazonaws.auditmanager#GetChangeLogs": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetChangeLogsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetChangeLogsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of changelogs from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/changelogs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#GetChangeLogsRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpQuery": "controlSetId" + } + }, + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n \n The identifier for the specified control. \n

                          ", + "smithy.api#httpQuery": "controlId" + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#GetChangeLogsResponse": { + "type": "structure", + "members": { + "changeLogs": { + "target": "com.amazonaws.auditmanager#ChangeLogs", + "traits": { + "smithy.api#documentation": "

                          \n The list of user activity for the control.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a control from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/controls/{controlId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetControlRequest": { + "type": "structure", + "members": { + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetControlResponse": { + "type": "structure", + "members": { + "control": { + "target": "com.amazonaws.auditmanager#Control", + "traits": { + "smithy.api#documentation": "

                          \n The name of the control returned by the GetControl API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetDelegations": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetDelegationsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetDelegationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns a list of delegations from an audit owner to a delegate. \n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/delegations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#GetDelegationsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results. \n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call.\n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#GetDelegationsResponse": { + "type": "structure", + "members": { + "delegations": { + "target": "com.amazonaws.auditmanager#DelegationMetadataList", + "traits": { + "smithy.api#documentation": "

                          \n The list of delegations returned by the GetDelegations API. \n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidence": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetEvidenceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetEvidenceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns evidence from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence/{evidenceId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolder": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolderRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns all evidence from a specified evidence folder in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolderRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the control set. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the folder in which the evidence is stored.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceByEvidenceFolderResponse": { + "type": "structure", + "members": { + "evidence": { + "target": "com.amazonaws.auditmanager#EvidenceList", + "traits": { + "smithy.api#documentation": "

                          \n The list of evidence returned by the GetEvidenceByEvidenceFolder API.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFolder": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetEvidenceFolderRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetEvidenceFolderResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns an evidence folder from the specified assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFolderRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which the evidence is stored.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFolderResponse": { + "type": "structure", + "members": { + "evidenceFolder": { + "target": "com.amazonaws.auditmanager#AssessmentEvidenceFolder", + "traits": { + "smithy.api#documentation": "

                          \nThe folder in which evidence is stored.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns the evidence folders from a specified assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/evidenceFolders", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments/{assessmentId}/evidenceFolders-by-assessment-control/{controlSetId}/{controlId}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControlRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentControlResponse": { + "type": "structure", + "members": { + "evidenceFolders": { + "target": "com.amazonaws.auditmanager#AssessmentEvidenceFolders", + "traits": { + "smithy.api#documentation": "

                          \n The list of evidence folders returned by the GetEvidenceFoldersByAssessmentControl API.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceFoldersByAssessmentResponse": { + "type": "structure", + "members": { + "evidenceFolders": { + "target": "com.amazonaws.auditmanager#AssessmentEvidenceFolders", + "traits": { + "smithy.api#documentation": "

                          \n The list of evidence folders returned by the GetEvidenceFoldersByAssessment API.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceFolderId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the folder in which the evidence is stored.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "evidenceId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the evidence. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetEvidenceResponse": { + "type": "structure", + "members": { + "evidence": { + "target": "com.amazonaws.auditmanager#Evidence", + "traits": { + "smithy.api#documentation": "

                          \n The evidence returned by the GetEvidenceResponse API.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetOrganizationAdminAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetOrganizationAdminAccountRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetOrganizationAdminAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns the name of the delegated AWS administrator account for the AWS organization. \n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/account/organizationAdminAccount", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetOrganizationAdminAccountRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#GetOrganizationAdminAccountResponse": { + "type": "structure", + "members": { + "adminAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified administrator account. \n

                          " + } + }, + "organizationId": { + "target": "com.amazonaws.auditmanager#organizationId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified organization. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetServicesInScope": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetServicesInScopeRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetServicesInScopeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns a list of the in-scope AWS services for the specified assessment. \n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/services", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetServicesInScopeRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#GetServicesInScopeResponse": { + "type": "structure", + "members": { + "serviceMetadata": { + "target": "com.amazonaws.auditmanager#ServiceMetadataList", + "traits": { + "smithy.api#documentation": "

                          \n The metadata associated with the aAWS service.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#GetSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#GetSettingsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#GetSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns the settings for the specified AWS account. \n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/settings/{attribute}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#GetSettingsRequest": { + "type": "structure", + "members": { + "attribute": { + "target": "com.amazonaws.auditmanager#SettingAttribute", + "traits": { + "smithy.api#documentation": "

                          \n The list of SettingAttribute enum values. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#GetSettingsResponse": { + "type": "structure", + "members": { + "settings": { + "target": "com.amazonaws.auditmanager#Settings", + "traits": { + "smithy.api#documentation": "

                          \n The settings object that holds all supported AWS Audit Manager settings. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#HyperlinkName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#IamArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*:iam:.*" + } + }, + "com.amazonaws.auditmanager#Integer": { + "type": "integer" + }, + "com.amazonaws.auditmanager#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

                          \n An internal service error occurred during the processing of your request. Try again later.\n

                          ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.auditmanager#KeywordInputType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SELECT_FROM_LIST", + "name": "SELECT_FROM_LIST" + } + ] + } + }, + "com.amazonaws.auditmanager#KeywordValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z_0-9-\\s().]+$" + } + }, + "com.amazonaws.auditmanager#Keywords": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#KeywordValue" + } + }, + "com.amazonaws.auditmanager#KmsKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 7, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*:kms:.*|DEFAULT" + } + }, + "com.amazonaws.auditmanager#LastUpdatedBy": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\s-_()\\[\\]]+$" + } + }, + "com.amazonaws.auditmanager#ListAssessmentFrameworks": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListAssessmentFrameworksRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListAssessmentFrameworksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of the frameworks available in the AWS Audit Manager framework library.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessmentFrameworks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentFrameworksRequest": { + "type": "structure", + "members": { + "frameworkType": { + "target": "com.amazonaws.auditmanager#FrameworkType", + "traits": { + "smithy.api#documentation": "

                          \n The type of framework, such as standard or custom. \n

                          ", + "smithy.api#httpQuery": "frameworkType", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentFrameworksResponse": { + "type": "structure", + "members": { + "frameworkMetadataList": { + "target": "com.amazonaws.auditmanager#FrameworkMetadataList", + "traits": { + "smithy.api#documentation": "

                          \nThe list of metadata objects for the specified framework.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentMetadata": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#AssessmentMetadataItem" + } + }, + "com.amazonaws.auditmanager#ListAssessmentReports": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListAssessmentReportsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListAssessmentReportsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of assessment reports created in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessmentReports", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentReportsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentReportsResponse": { + "type": "structure", + "members": { + "assessmentReports": { + "target": "com.amazonaws.auditmanager#AssessmentReportsMetadata", + "traits": { + "smithy.api#documentation": "

                          \n The list of assessment reports returned by the ListAssessmentReports API.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListAssessments": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListAssessmentsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListAssessmentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of current and past assessments from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/assessments", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListAssessmentsResponse": { + "type": "structure", + "members": { + "assessmentMetadata": { + "target": "com.amazonaws.auditmanager#ListAssessmentMetadata", + "traits": { + "smithy.api#documentation": "

                          \n The metadata associated with the assessment.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListControls": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListControlsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListControlsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of controls from AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/controls", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListControlsRequest": { + "type": "structure", + "members": { + "controlType": { + "target": "com.amazonaws.auditmanager#ControlType", + "traits": { + "smithy.api#documentation": "

                          \nThe type of control, such as standard or custom.\n

                          ", + "smithy.api#httpQuery": "controlType", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListControlsResponse": { + "type": "structure", + "members": { + "controlMetadataList": { + "target": "com.amazonaws.auditmanager#ControlMetadataList", + "traits": { + "smithy.api#documentation": "

                          \n The list of control metadata objects returned by the ListControls API. \n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListKeywordsForDataSource": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListKeywordsForDataSourceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListKeywordsForDataSourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of keywords that pre-mapped to the specified control data source.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/dataSourceKeywords", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListKeywordsForDataSourceRequest": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.auditmanager#SourceType", + "traits": { + "smithy.api#documentation": "

                          \nThe control mapping data source to which the keywords apply.\n

                          ", + "smithy.api#httpQuery": "source", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call. \n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListKeywordsForDataSourceResponse": { + "type": "structure", + "members": { + "keywords": { + "target": "com.amazonaws.auditmanager#Keywords", + "traits": { + "smithy.api#documentation": "

                          \n The list of keywords for the specified event mapping source.\n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListNotifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListNotificationsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListNotificationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Returns a list of all AWS Audit Manager notifications. \n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/notifications", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.auditmanager#ListNotificationsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results. \n

                          ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.auditmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

                          \n Represents the maximum number of results per page, or per API request call.\n

                          ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.auditmanager#ListNotificationsResponse": { + "type": "structure", + "members": { + "notifications": { + "target": "com.amazonaws.auditmanager#Notifications", + "traits": { + "smithy.api#documentation": "

                          \n The returned list of notifications. \n

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.auditmanager#Token", + "traits": { + "smithy.api#documentation": "

                          \n The pagination token used to fetch the next set of results.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nReturns a list of tags for the specified resource in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified resource.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \n The list of tags returned by the ListTagsForResource API.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ManualEvidence": { + "type": "structure", + "members": { + "s3ResourcePath": { + "target": "com.amazonaws.auditmanager#S3Url", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon S3 URL that points to a manual evidence object. \n

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

                          \n Evidence that is uploaded to AWS Audit Manager manually. \n

                          " + } + }, + "com.amazonaws.auditmanager#ManualEvidenceList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ManualEvidence" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "Max results in the page.", + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.auditmanager#NonEmptyString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.auditmanager#Notification": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#TimestampUUID", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the notification. \n

                          " + } + }, + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          " + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the related assessment. \n

                          " + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          " + } + }, + "controlSetName": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n Specifies the name of the control set that the notification is about.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The description of the notification. \n

                          " + } + }, + "eventTime": { + "target": "com.amazonaws.auditmanager#Timestamp", + "traits": { + "smithy.api#documentation": "

                          \n The time when the notification was sent. \n

                          " + } + }, + "source": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The sender of the notification. \n

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

                          \n The notification used to inform a user of an update in AWS Audit Manager. For example, this includes the notification that is sent when a control set is delegated for review. \n

                          " + } + }, + "com.amazonaws.auditmanager#Notifications": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Notification" + } + }, + "com.amazonaws.auditmanager#ObjectTypeEnum": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ASSESSMENT", + "name": "ASSESSMENT" + }, + { + "value": "CONTROL_SET", + "name": "CONTROL_SET" + }, + { + "value": "CONTROL", + "name": "CONTROL" + }, + { + "value": "DELEGATION", + "name": "DELEGATION" + }, + { + "value": "ASSESSMENT_REPORT", + "name": "ASSESSMENT_REPORT" + } + ] + } + }, + "com.amazonaws.auditmanager#RegisterAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#RegisterAccountRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#RegisterAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Enables AWS Audit Manager for the specified AWS account. \n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/account/registerAccount", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#RegisterAccountRequest": { + "type": "structure", + "members": { + "kmsKey": { + "target": "com.amazonaws.auditmanager#KmsKey", + "traits": { + "smithy.api#documentation": "

                          \n The AWS KMS key details. \n

                          " + } + }, + "delegatedAdminAccount": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The delegated administrator account for AWS Audit Manager. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#RegisterAccountResponse": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.auditmanager#AccountStatus", + "traits": { + "smithy.api#documentation": "

                          \n The status of the account registration request. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#RegisterOrganizationAdminAccount": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#RegisterOrganizationAdminAccountRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#RegisterOrganizationAdminAccountResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/account/registerOrganizationAdminAccount", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#RegisterOrganizationAdminAccountRequest": { + "type": "structure", + "members": { + "adminAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified delegated administrator account. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#RegisterOrganizationAdminAccountResponse": { + "type": "structure", + "members": { + "adminAccountId": { + "target": "com.amazonaws.auditmanager#AccountId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified delegated administrator account. \n

                          " + } + }, + "organizationId": { + "target": "com.amazonaws.auditmanager#organizationId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified AWS organization. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#Resource": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.auditmanager#GenericArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) for the specified resource.\n

                          " + } + }, + "value": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The value of the specified resource.\n

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

                          \n A system asset that is evaluated in an AWS Audit Manager assessment. \n

                          " + } + }, + "com.amazonaws.auditmanager#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the specified resource.\n

                          ", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The type of resource affected by the error.\n

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

                          \n The resource specified in the request cannot be found.\n

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.auditmanager#Resources": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Resource" + } + }, + "com.amazonaws.auditmanager#Role": { + "type": "structure", + "members": { + "roleType": { + "target": "com.amazonaws.auditmanager#RoleType", + "traits": { + "smithy.api#documentation": "

                          \n The type of customer persona.\n

                          \n \n

                          In CreateAssessment, roleType can only be PROCESS_OWNER.

                          \n

                          In UpdateSettings, roleType can only be PROCESS_OWNER.

                          \n

                          In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER.

                          \n
                          " + } + }, + "roleArn": { + "target": "com.amazonaws.auditmanager#IamArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the IAM role. \n

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

                          \n The wrapper that contains AWS Audit Manager role information, such as the role type and IAM Amazon Resource Name (ARN).\n

                          " + } + }, + "com.amazonaws.auditmanager#RoleType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PROCESS_OWNER", + "name": "PROCESS_OWNER" + }, + { + "value": "RESOURCE_OWNER", + "name": "RESOURCE_OWNER" + } + ] + } + }, + "com.amazonaws.auditmanager#Roles": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#Role" + } + }, + "com.amazonaws.auditmanager#S3Url": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^(S|s)3:\\/\\/[a-zA-Z0-9-_\\/.]+$" + } + }, + "com.amazonaws.auditmanager#SNSTopic": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_\\(\\)\\[\\]]+$" + } + }, + "com.amazonaws.auditmanager#Scope": { + "type": "structure", + "members": { + "awsAccounts": { + "target": "com.amazonaws.auditmanager#AWSAccounts", + "traits": { + "smithy.api#documentation": "

                          \n The AWS accounts included in the scope of the assessment. \n

                          " + } + }, + "awsServices": { + "target": "com.amazonaws.auditmanager#AWSServices", + "traits": { + "smithy.api#documentation": "

                          \n The AWS services included in the scope of the assessment. \n

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

                          \n The wrapper that contains the AWS accounts and AWS services in scope for the assessment.\n

                          " + } + }, + "com.amazonaws.auditmanager#ServiceMetadata": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#AWSServiceName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the AWS service.\n

                          " + } + }, + "displayName": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \nThe display name of the AWS service.\n

                          " + } + }, + "description": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified AWS service.\n

                          " + } + }, + "category": { + "target": "com.amazonaws.auditmanager#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          \n The category in which the AWS service belongs, such as compute, storage, database, and so on.\n

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

                          \n The metadata associated with the specified AWS service.\n

                          " + } + }, + "com.amazonaws.auditmanager#ServiceMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ServiceMetadata" + } + }, + "com.amazonaws.auditmanager#SettingAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ALL", + "name": "ALL" + }, + { + "value": "IS_AWS_ORG_ENABLED", + "name": "IS_AWS_ORG_ENABLED" + }, + { + "value": "SNS_TOPIC", + "name": "SNS_TOPIC" + }, + { + "value": "DEFAULT_ASSESSMENT_REPORTS_DESTINATION", + "name": "DEFAULT_ASSESSMENT_REPORTS_DESTINATION" + }, + { + "value": "DEFAULT_PROCESS_OWNERS", + "name": "DEFAULT_PROCESS_OWNERS" + } + ] + } + }, + "com.amazonaws.auditmanager#Settings": { + "type": "structure", + "members": { + "isAwsOrgEnabled": { + "target": "com.amazonaws.auditmanager#Boolean", + "traits": { + "smithy.api#documentation": "

                          \n Specifies whether AWS Organizations is enabled. \n

                          " + } + }, + "snsTopic": { + "target": "com.amazonaws.auditmanager#SNSTopic", + "traits": { + "smithy.api#documentation": "

                          \n The designated Amazon Simple Notification Service (Amazon SNS) topic. \n

                          " + } + }, + "defaultAssessmentReportsDestination": { + "target": "com.amazonaws.auditmanager#AssessmentReportsDestination", + "traits": { + "smithy.api#documentation": "

                          \n The default storage destination for assessment reports.\n

                          " + } + }, + "defaultProcessOwners": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The designated default audit owners. \n

                          " + } + }, + "kmsKey": { + "target": "com.amazonaws.auditmanager#KmsKey", + "traits": { + "smithy.api#documentation": "

                          \n The AWS KMS key details. \n

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

                          \n The settings object that holds all supported AWS Audit Manager settings. \n

                          " + } + }, + "com.amazonaws.auditmanager#SnsArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:.*:sns:.*" + } + }, + "com.amazonaws.auditmanager#SourceDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#SourceFrequency": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DAILY", + "name": "DAILY" + }, + { + "value": "WEEKLY", + "name": "WEEKLY" + }, + { + "value": "MONTHLY", + "name": "MONTHLY" + } + ] + } + }, + "com.amazonaws.auditmanager#SourceKeyword": { + "type": "structure", + "members": { + "keywordInputType": { + "target": "com.amazonaws.auditmanager#KeywordInputType", + "traits": { + "smithy.api#documentation": "

                          \nThe method of input for the specified keyword.\n

                          " + } + }, + "keywordValue": { + "target": "com.amazonaws.auditmanager#KeywordValue", + "traits": { + "smithy.api#documentation": "

                          \n The value of the keyword used to search AWS CloudTrail logs when mapping a control data source.\n

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

                          \n The keyword to search for in AWS CloudTrail logs.\n

                          " + } + }, + "com.amazonaws.auditmanager#SourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.auditmanager#SourceSetUpOption": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "System_Controls_Mapping", + "name": "SYSTEM_CONTROLS_MAPPING" + }, + { + "value": "Procedural_Controls_Mapping", + "name": "PROCEDURAL_CONTROLS_MAPPING" + } + ] + } + }, + "com.amazonaws.auditmanager#SourceType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AWS_Cloudtrail", + "name": "AWS_CLOUDTRAIL" + }, + { + "value": "AWS_Config", + "name": "AWS_CONFIG" + }, + { + "value": "AWS_Security_Hub", + "name": "AWS_SECURITY_HUB" + }, + { + "value": "AWS_API_Call", + "name": "AWS_API_CALL" + }, + { + "value": "MANUAL", + "name": "MANUAL" + } + ] + } + }, + "com.amazonaws.auditmanager#String": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.auditmanager#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" + } + }, + "com.amazonaws.auditmanager#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.auditmanager#TagKey" + }, + "value": { + "target": "com.amazonaws.auditmanager#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.auditmanager#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nTags the specified resource in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified resource.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.auditmanager#TagMap", + "traits": { + "smithy.api#documentation": "

                          \nThe tags to be associated with the resource.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": ".{0,255}" + } + }, + "com.amazonaws.auditmanager#TestingInformation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.auditmanager#TimestampUUID": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 47, + "max": 50 + }, + "smithy.api#pattern": "^[0-9]{10,13}_[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.auditmanager#Token": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + }, + "smithy.api#pattern": "^[A-Za-z0-9+\\/=]*$" + } + }, + "com.amazonaws.auditmanager#TroubleshootingText": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": "^[\\w\\W\\s\\S]*$" + } + }, + "com.amazonaws.auditmanager#URL": { + "type": "structure", + "members": { + "hyperlinkName": { + "target": "com.amazonaws.auditmanager#HyperlinkName", + "traits": { + "smithy.api#documentation": "

                          \n The name or word used as a hyperlink to the URL. \n

                          " + } + }, + "link": { + "target": "com.amazonaws.auditmanager#UrlLink", + "traits": { + "smithy.api#documentation": "

                          \n The unique identifier for the internet resource. \n

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

                          \n A uniform resource locator, used as a unique identifier to locate a resource on the internet. \n

                          " + } + }, + "com.amazonaws.auditmanager#UUID": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.auditmanager#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nRemoves a tag from a resource in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.auditmanager#AuditManagerArn", + "traits": { + "smithy.api#documentation": "

                          \n The Amazon Resource Name (ARN) of the specified resource.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.auditmanager#TagKeyList", + "traits": { + "smithy.api#documentation": "

                          \n The name or key of the tag. \n

                          ", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#UntagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.auditmanager#UpdateAssessment": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Edits an AWS Audit Manager assessment. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nUpdates a control within an assessment in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControlRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#ControlSetId", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlStatus": { + "target": "com.amazonaws.auditmanager#ControlStatus", + "traits": { + "smithy.api#documentation": "

                          \n The status of the specified control. \n

                          " + } + }, + "commentBody": { + "target": "com.amazonaws.auditmanager#ControlCommentBody", + "traits": { + "smithy.api#documentation": "

                          \n The comment body text for the specified control. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControlResponse": { + "type": "structure", + "members": { + "control": { + "target": "com.amazonaws.auditmanager#AssessmentControl", + "traits": { + "smithy.api#documentation": "

                          \n The name of the updated control set returned by the UpdateAssessmentControl API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatusRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Updates the status of a control set in an AWS Audit Manager assessment.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/controlSets/{controlSetId}/status", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatusRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "controlSetId": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control set.\n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.auditmanager#ControlSetStatus", + "traits": { + "smithy.api#documentation": "

                          \nThe status of the control set that is being updated.\n

                          ", + "smithy.api#required": {} + } + }, + "comment": { + "target": "com.amazonaws.auditmanager#DelegationComment", + "traits": { + "smithy.api#documentation": "

                          \n The comment related to the status update.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentControlSetStatusResponse": { + "type": "structure", + "members": { + "controlSet": { + "target": "com.amazonaws.auditmanager#AssessmentControlSet", + "traits": { + "smithy.api#documentation": "

                          \n The name of the updated control set returned by the UpdateAssessmentControlSetStatus API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentFramework": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentFrameworkRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentFrameworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nUpdates a custom framework in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessmentFrameworks/{frameworkId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentFrameworkControlSet": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the control set.\n

                          " + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlSetName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the control set.\n

                          " + } + }, + "controls": { + "target": "com.amazonaws.auditmanager#CreateAssessmentFrameworkControls", + "traits": { + "smithy.api#documentation": "

                          \nThe list of controls contained within the control set.\n

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

                          \n A controlSet entity that represents a collection of controls in AWS Audit Manager. This does not contain the control set ID.\n

                          " + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentFrameworkControlSets": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentFrameworkControlSet" + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentFrameworkRequest": { + "type": "structure", + "members": { + "frameworkId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified framework. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.auditmanager#FrameworkName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the framework to be updated.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#FrameworkDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe description of the framework that is to be updated.\n

                          " + } + }, + "complianceType": { + "target": "com.amazonaws.auditmanager#ComplianceType", + "traits": { + "smithy.api#documentation": "

                          \n The compliance type that the new custom framework supports, such as CIS or HIPAA.\n

                          " + } + }, + "controlSets": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentFrameworkControlSets", + "traits": { + "smithy.api#documentation": "

                          \n The control sets associated with the framework. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentFrameworkResponse": { + "type": "structure", + "members": { + "framework": { + "target": "com.amazonaws.auditmanager#Framework", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the specified framework.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "assessmentName": { + "target": "com.amazonaws.auditmanager#AssessmentName", + "traits": { + "smithy.api#documentation": "

                          \n The name of the specified assessment to be updated. \n

                          " + } + }, + "assessmentDescription": { + "target": "com.amazonaws.auditmanager#AssessmentDescription", + "traits": { + "smithy.api#documentation": "

                          \n The description of the specified assessment. \n

                          " + } + }, + "scope": { + "target": "com.amazonaws.auditmanager#Scope", + "traits": { + "smithy.api#documentation": "

                          \n The scope of the specified assessment. \n

                          ", + "smithy.api#required": {} + } + }, + "assessmentReportsDestination": { + "target": "com.amazonaws.auditmanager#AssessmentReportsDestination", + "traits": { + "smithy.api#documentation": "

                          \n The assessment report storage destination for the specified assessment that is being updated. \n

                          " + } + }, + "roles": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \n The list of roles for the specified assessment. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentResponse": { + "type": "structure", + "members": { + "assessment": { + "target": "com.amazonaws.auditmanager#Assessment", + "traits": { + "smithy.api#documentation": "

                          \n The response object (name of the updated assessment) for the UpdateAssessmentRequest API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentStatus": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentStatusRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateAssessmentStatusResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Updates the status of an assessment in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/assessments/{assessmentId}/status", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentStatusRequest": { + "type": "structure", + "members": { + "assessmentId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified assessment. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.auditmanager#AssessmentStatus", + "traits": { + "smithy.api#documentation": "

                          \n The current status of the specified assessment. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#UpdateAssessmentStatusResponse": { + "type": "structure", + "members": { + "assessment": { + "target": "com.amazonaws.auditmanager#Assessment", + "traits": { + "smithy.api#documentation": "

                          \n The name of the updated assessment returned by the UpdateAssessmentStatus API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateControl": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateControlRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateControlResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \nUpdates a custom control in AWS Audit Manager.\n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/controls/{controlId}", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateControlRequest": { + "type": "structure", + "members": { + "controlId": { + "target": "com.amazonaws.auditmanager#UUID", + "traits": { + "smithy.api#documentation": "

                          \n The identifier for the specified control. \n

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.auditmanager#ControlName", + "traits": { + "smithy.api#documentation": "

                          \nThe name of the control to be updated.\n

                          ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.auditmanager#ControlDescription", + "traits": { + "smithy.api#documentation": "

                          \nThe optional description of the control.\n

                          " + } + }, + "testingInformation": { + "target": "com.amazonaws.auditmanager#TestingInformation", + "traits": { + "smithy.api#documentation": "

                          \n The steps that to follow to determine if the control has been satisfied.\n

                          " + } + }, + "actionPlanTitle": { + "target": "com.amazonaws.auditmanager#ActionPlanTitle", + "traits": { + "smithy.api#documentation": "

                          \n The title of the action plan for remediating the control.\n

                          " + } + }, + "actionPlanInstructions": { + "target": "com.amazonaws.auditmanager#ActionPlanInstructions", + "traits": { + "smithy.api#documentation": "

                          \n \n The recommended actions to carry out if the control is not fulfilled.\n

                          " + } + }, + "controlMappingSources": { + "target": "com.amazonaws.auditmanager#ControlMappingSources", + "traits": { + "smithy.api#documentation": "

                          \n The data source that determines from where AWS Audit Manager collects evidence for the control. \n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#UpdateControlResponse": { + "type": "structure", + "members": { + "control": { + "target": "com.amazonaws.auditmanager#Control", + "traits": { + "smithy.api#documentation": "

                          \n The name of the updated control set returned by the UpdateControl API. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#UpdateSettingsRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#UpdateSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Updates AWS Audit Manager settings for the current user account. \n

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/settings", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#UpdateSettingsRequest": { + "type": "structure", + "members": { + "snsTopic": { + "target": "com.amazonaws.auditmanager#SnsArn", + "traits": { + "smithy.api#documentation": "

                          \nThe Amazon Simple Notification Service (Amazon SNS) topic to which AWS Audit Manager sends notifications.\n

                          " + } + }, + "defaultAssessmentReportsDestination": { + "target": "com.amazonaws.auditmanager#AssessmentReportsDestination", + "traits": { + "smithy.api#documentation": "

                          \n The default storage destination for assessment reports.\n

                          " + } + }, + "defaultProcessOwners": { + "target": "com.amazonaws.auditmanager#Roles", + "traits": { + "smithy.api#documentation": "

                          \nA list of the default audit owners.\n

                          " + } + }, + "kmsKey": { + "target": "com.amazonaws.auditmanager#KmsKey", + "traits": { + "smithy.api#documentation": "

                          \n The AWS KMS key details. \n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UpdateSettingsResponse": { + "type": "structure", + "members": { + "settings": { + "target": "com.amazonaws.auditmanager#Settings", + "traits": { + "smithy.api#documentation": "

                          \nThe current list of settings.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#UrlLink": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8192 + }, + "smithy.api#pattern": "^(https?:\\/\\/)?(www\\.)?[a-zA-Z0-9-_]+([\\.]+[a-zA-Z]+)+[\\/\\w]*$" + } + }, + "com.amazonaws.auditmanager#Username": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_()\\s\\+=,.@]+$" + } + }, + "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrity": { + "type": "operation", + "input": { + "target": "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrityRequest" + }, + "output": { + "target": "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrityResponse" + }, + "errors": [ + { + "target": "com.amazonaws.auditmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.auditmanager#InternalServerException" + }, + { + "target": "com.amazonaws.auditmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.auditmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          \n Validates the integrity of an assessment report in AWS Audit Manager. \n

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/assessmentReports/integrity", + "code": 200 + } + } + }, + "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrityRequest": { + "type": "structure", + "members": { + "s3RelativePath": { + "target": "com.amazonaws.auditmanager#S3Url", + "traits": { + "smithy.api#documentation": "

                          \n The relative path of the specified Amazon S3 bucket in which the assessment report is stored.\n

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.auditmanager#ValidateAssessmentReportIntegrityResponse": { + "type": "structure", + "members": { + "signatureValid": { + "target": "com.amazonaws.auditmanager#Boolean", + "traits": { + "smithy.api#documentation": "

                          \nSpecifies whether the signature key is valid.\n

                          " + } + }, + "signatureAlgorithm": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The signature algorithm used to code sign the assessment report file.\n

                          " + } + }, + "signatureDateTime": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \nThe date and time signature that specifies when the assessment report was created.\n

                          " + } + }, + "signatureKeyId": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \nThe unique identifier for the validation signature key.\n

                          " + } + }, + "validationErrors": { + "target": "com.amazonaws.auditmanager#ValidationErrors", + "traits": { + "smithy.api#documentation": "

                          \nRepresents any errors that occurred when validating the assessment report.\n

                          " + } + } + } + }, + "com.amazonaws.auditmanager#ValidationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#NonEmptyString" + } + }, + "com.amazonaws.auditmanager#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.auditmanager#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

                          \n The reason the request failed validation.\n

                          " + } + }, + "fields": { + "target": "com.amazonaws.auditmanager#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

                          \n The fields that caused the error, if applicable.\n

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

                          \n The request has invalid or missing parameters. \n

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.auditmanager#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The name of the validation error. \n

                          ", + "smithy.api#required": {} + } + }, + "message": { + "target": "com.amazonaws.auditmanager#String", + "traits": { + "smithy.api#documentation": "

                          \n The body of the error message. \n

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

                          \n Indicates that the request has invalid or missing parameters for the specified field. \n

                          " + } + }, + "com.amazonaws.auditmanager#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.auditmanager#ValidationExceptionField" + } + }, + "com.amazonaws.auditmanager#ValidationExceptionReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "unknownOperation", + "name": "UNKNOWN_OPERATION" + }, + { + "value": "cannotParse", + "name": "CANNOT_PARSE" + }, + { + "value": "fieldValidationFailed", + "name": "FIELD_VALIDATION_FAILED" + }, + { + "value": "other", + "name": "OTHER" + } + ] + } + }, + "com.amazonaws.auditmanager#organizationId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 34 + }, + "smithy.api#pattern": "o-[a-z0-9]{10,32}" + } + } + } +} diff --git a/codegen/sdk-codegen/aws-models/batch.2016-08-10.json b/codegen/sdk-codegen/aws-models/batch.2016-08-10.json index c96fb9e03b71c..00aa7dbbe56f6 100644 --- a/codegen/sdk-codegen/aws-models/batch.2016-08-10.json +++ b/codegen/sdk-codegen/aws-models/batch.2016-08-10.json @@ -102,7 +102,7 @@ "name": "batch" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

                          AWS Batch enables you to run batch computing workloads on the AWS Cloud. Batch computing is a common way for\n developers, scientists, and engineers to access large amounts of compute resources, and AWS Batch removes the\n undifferentiated heavy lifting of configuring and managing the required infrastructure. AWS Batch will be familiar to\n users of traditional batch computing software. This service can efficiently provision resources in response to jobs\n submitted in order to eliminate capacity constraints, reduce compute costs, and deliver results quickly.

                          \n

                          As a fully managed service, AWS Batch enables developers, scientists, and engineers to run batch computing\n workloads of any scale. AWS Batch automatically provisions compute resources and optimizes the workload distribution\n based on the quantity and scale of the workloads. With AWS Batch, there is no need to install or manage batch computing\n software, which allows you to focus on analyzing results and solving problems. AWS Batch reduces operational\n complexities, saves time, and reduces costs, which makes it easy for developers, scientists, and engineers to run\n their batch jobs in the AWS Cloud.

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

                          Using AWS Batch, you can run batch computing workloads on the AWS Cloud. Batch computing is a common means for\n developers, scientists, and engineers to access large amounts of compute resources. AWS Batch utilizes the advantages\n of this computing workload to remove the undifferentiated heavy lifting of configuring and managing required\n infrastructure, while also adopting a familiar batch computing software approach. Given these advantages, AWS Batch can\n help you to efficiently provision resources in response to jobs submitted, thus effectively helping to eliminate\n capacity constraints, reduce compute costs, and deliver your results more quickly.

                          \n

                          As a fully managed service, AWS Batch can run batch computing workloads of any scale. AWS Batch automatically\n provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific\n workloads. With AWS Batch, there's no need to install or manage batch computing software. This means that you can focus\n your time and energy on analyzing results and solving your specific problems.

                          ", "smithy.api#title": "AWS Batch", "smithy.api#xmlNamespace": { "uri": "http://batch.amazonaws.com/doc/2016-08-10/" @@ -193,6 +193,21 @@ "smithy.api#documentation": "

                          An object representing the array properties of a job.

                          " } }, + "com.amazonaws.batch#AssignPublicIp": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, "com.amazonaws.batch#AttemptContainerDetail": { "type": "structure", "members": { @@ -369,6 +384,14 @@ { "value": "SPOT", "name": "SPOT" + }, + { + "value": "FARGATE", + "name": "FARGATE" + }, + { + "value": "FARGATE_SPOT", + "name": "FARGATE_SPOT" } ] } @@ -390,7 +413,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or\n RUNNABLE state are cancelled. Jobs that have progressed to STARTING or\n RUNNING are not cancelled (but the API operation still succeeds, even if no job is cancelled); these\n jobs must be terminated with the TerminateJob operation.

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

                          Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or\n RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING\n are not canceled (but the API operation still succeeds, even if no job is canceled); these jobs must be terminated\n with the TerminateJob operation.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/canceljob", @@ -429,7 +452,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          These errors are usually caused by a client action, such as using an action or resource on behalf of a user that\n doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

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

                          These errors are usually caused by a client action, such as using an action or resource on behalf of a user that\n doesn't have permissions to use the action or resource, or specifying an identifier that isn't valid.

                          ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -467,13 +490,13 @@ "type": { "target": "com.amazonaws.batch#CEType", "traits": { - "smithy.api#documentation": "

                          The type of the compute environment.

                          " + "smithy.api#documentation": "

                          The type of compute environment: EC2, SPOT, FARGATE, or\n FARGATE_SPOT. For more information, see Compute Environments in the\n AWS Batch User Guide.

                          " } }, "state": { "target": "com.amazonaws.batch#CEState", "traits": { - "smithy.api#documentation": "

                          The state of the compute environment. The valid values are ENABLED or DISABLED.

                          \n

                          If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated\n job queue on the compute resources within the environment. If the compute environment is managed, then it can scale\n its instances out or in automatically, based on the job queue demand.

                          \n

                          If the state is DISABLED, then the AWS Batch scheduler does not attempt to place jobs within the\n environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed\n compute environments in the DISABLED state do not scale out. However, they scale in to\n minvCpus value after instances become idle.

                          " + "smithy.api#documentation": "

                          The state of the compute environment. The valid values are ENABLED or DISABLED.

                          \n

                          If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated\n job queue on the compute resources within the environment. If the compute environment is managed, then it can scale\n its instances out or in automatically, based on the job queue demand.

                          \n

                          If the state is DISABLED, then the AWS Batch scheduler doesn't attempt to place jobs within the\n environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed\n compute environments in the DISABLED state do not scale out. However, they scale in to\n minvCpus value after instances become idle.

                          " } }, "status": { @@ -517,7 +540,7 @@ "order": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The order of the compute environment.

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

                          The order of the compute environment. Compute environments are tried in ascending order. For example, if two\n compute environments are associated with a job queue, the compute environment with a lower order integer\n value is tried for job placement first.

                          ", "smithy.api#required": {} } }, @@ -545,41 +568,39 @@ "type": { "target": "com.amazonaws.batch#CRType", "traits": { - "smithy.api#documentation": "

                          The type of compute environment: EC2 or SPOT.

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

                          The type of compute environment: EC2, SPOT, FARGATE, or\n FARGATE_SPOT. For more information, see Compute Environments in the\n AWS Batch User Guide.

                          ", "smithy.api#required": {} } }, "allocationStrategy": { "target": "com.amazonaws.batch#CRAllocationStrategy", "traits": { - "smithy.api#documentation": "

                          The allocation strategy to use for the compute resource in case not enough instances of the best fitting\n instance type can be allocated. This could be due to availability of the instance type in the region or Amazon EC2 service limits. If this is\n not specified, the default is BEST_FIT, which will use only the best fitting instance type, waiting for\n additional capacity if it's not available. This allocation strategy keeps costs lower but can limit scaling. If you\n are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be specified.\n BEST_FIT_PROGRESSIVE will select additional instance types that are large enough to meet the\n requirements of the jobs in the queue, with a preference for instance types with a lower cost per vCPU.\n SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute resources and will select\n additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference\n for instance types that are less likely to be interrupted. For more information, see Allocation Strategies in the\n AWS Batch User Guide.

                          " + "smithy.api#documentation": "

                          The allocation strategy to use for the compute resource if not enough instances of the best fitting instance\n type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more\n information, see Allocation\n Strategies in the AWS Batch User Guide.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          \n
                          \n
                          BEST_FIT (default)
                          \n
                          \n

                          AWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost\n instance type. If additional instances of the selected instance type aren't available, AWS Batch will wait for the\n additional instances to be available. If there are not enough instances available, or if the user is hitting\n Amazon EC2 service limits\n then additional jobs aren't run until currently running jobs have completed. This allocation strategy keeps costs\n lower but can limit scaling. If you are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role\n must be specified.

                          \n
                          \n
                          BEST_FIT_PROGRESSIVE
                          \n
                          \n

                          AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in\n the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the\n previously selected instance types aren't available, AWS Batch will select new instance types.

                          \n
                          \n
                          SPOT_CAPACITY_OPTIMIZED
                          \n
                          \n

                          AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in\n the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy\n is only available for Spot Instance compute resources.

                          \n
                          \n
                          \n

                          With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, AWS Batch might\n need to go above maxvCpus to meet your capacity requirements. In this event, AWS Batch never exceeds\n maxvCpus by more than a single instance.

                          " } }, "minvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is\n DISABLED).

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

                          The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is\n DISABLED).

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "maxvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum number of Amazon EC2 vCPUs that an environment can reach.

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

                          The maximum number of Amazon EC2 vCPUs that an environment can reach.

                          \n \n

                          With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies,\n AWS Batch may need to go above maxvCpus to meet your capacity requirements. In this event, AWS Batch will\n never go above maxvCpus by more than a single instance (e.g., no more than a single instance from among\n those specified in your compute environment).

                          \n
                          ", "smithy.api#required": {} } }, "desiredvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The desired number of Amazon EC2 vCPUS in the compute environment.

                          " + "smithy.api#documentation": "

                          The desired number of Amazon EC2 vCPUS in the compute environment. AWS Batch modifies this value between the minimum\n and maximum values, based on job queue demand.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "instanceTypes": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

                          The instances types that may be launched. You can specify instance families to launch any instance type within\n those families (for example, c5 or p3), or you can specify specific sizes within a family\n (such as c5.8xlarge). You can also choose optimal to pick instance types (from the C, M,\n and R instance families) on the fly that match the demand of your job queues.

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

                          The instances types that may be launched. You can specify instance families to launch any instance type within\n those families (for example, c5 or p3), or you can specify specific sizes within a family\n (such as c5.8xlarge). You can also choose optimal to select instance types (from the C, M,\n and R instance families) on the fly that match the demand of your job queues.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          \n \n

                          When you create a compute environment, the instance types that you select for the compute environment must\n share the same architecture. For example, you can't mix x86 and ARM instances in the same compute\n environment.

                          \n
                          " } }, "imageId": { @@ -588,69 +609,68 @@ "smithy.api#deprecated": { "message": "This field is deprecated, use ec2Configuration[].imageIdOverride instead." }, - "smithy.api#documentation": "

                          The Amazon Machine Image (AMI) ID used for instances launched in the compute\n environment. This parameter is overridden by\n the imageIdOverride member of the Ec2Configuration structure.

                          " + "smithy.api#documentation": "

                          The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is\n overridden by the imageIdOverride member of the Ec2Configuration structure.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          \n \n

                          The AMI that you choose for a compute environment must match the architecture of the instance types that\n you intend to use for that compute environment. For example, if your compute environment uses A1 instance types,\n the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the\n Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized\n Amazon Linux 2 AMI\n in the Amazon Elastic Container Service Developer Guide.

                          \n
                          " } }, "subnets": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

                          The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon\n VPC User Guide.

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

                          The VPC subnets into which the compute resources are launched. These subnets must be within the same VPC. This\n parameter is required for jobs running on Fargate resources, where it can contain up to 16 subnets. For more\n information, see VPCs and Subnets in\n the Amazon VPC User Guide.

                          ", "smithy.api#required": {} } }, "securityGroupIds": { "target": "com.amazonaws.batch#StringList", "traits": { - "smithy.api#documentation": "

                          The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security\n groups must be specified, either in securityGroupIds or using a launch template referenced in\n launchTemplate. If security groups are specified using both securityGroupIds and\n launchTemplate, the values in securityGroupIds will be used.

                          " + "smithy.api#documentation": "

                          The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security\n groups must be specified, either in securityGroupIds or using a launch template referenced in\n launchTemplate. This parameter is required for jobs running on Fargate resources and must contain at\n least one security group. (Fargate does not support launch templates.) If security groups are specified using both\n securityGroupIds and launchTemplate, the values in securityGroupIds will be\n used.

                          " } }, "ec2KeyPair": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon EC2 key pair that is used for instances launched in the compute environment.

                          " + "smithy.api#documentation": "

                          The Amazon EC2 key pair that is used for instances launched in the compute environment. You can use this key pair to\n log in to your instances with SSH.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "instanceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name\n or full Amazon Resource Name (ARN) of an instance profile. For example,\n \n ecsInstanceRole\n or\n arn:aws:iam:::instance-profile/ecsInstanceRole\n .\n For more information, see Amazon ECS Instance\n Role in the AWS Batch User Guide.

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

                          The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name\n or full Amazon Resource Name (ARN) of an instance profile. For example,\n \n ecsInstanceRole\n or\n arn:aws:iam:::instance-profile/ecsInstanceRole\n .\n For more information, see Amazon ECS Instance\n Role in the AWS Batch User Guide.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "tags": { "target": "com.amazonaws.batch#TagsMap", "traits": { - "smithy.api#documentation": "

                          Key-value pair tags to be applied to resources that are launched in the compute environment. For AWS Batch, these\n take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value—for example, {\n \"Name\": \"AWS Batch Instance - C4OnDemand\" }.\n These tags can not be updated or removed after the compute environment has been created; any changes require creating\n a new compute environment and removing the old compute environment. These tags are not seen when using the AWS Batch\n ListTagsForResource API operation.

                          " + "smithy.api#documentation": "

                          Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For AWS Batch,\n these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value—for example, {\n \"Name\": \"AWS Batch Instance - C4OnDemand\" }. This is helpful for recognizing your AWS Batch instances in the Amazon EC2\n console. These tags can not be updated or removed after the compute environment has been created; any changes require\n creating a new compute environment and removing the old compute environment. These tags are not seen when using the\n AWS Batch ListTagsForResource API operation.

                          " } }, "placementGroup": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel\n jobs to your compute environment, you should consider creating a cluster placement group and associate it with your\n compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single\n Availability Zone with high network flow potential. For more information, see Placement Groups in the Amazon EC2 User Guide for\n Linux Instances.

                          " + "smithy.api#documentation": "

                          The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel\n jobs to your compute environment, you should consider creating a cluster placement group and associate it with your\n compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single\n Availability Zone with high network flow potential. For more information, see Placement Groups in the Amazon EC2 User Guide for\n Linux Instances.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "bidPercentage": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that\n instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must\n be below 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and\n never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand\n price.

                          " + "smithy.api#documentation": "

                          The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that\n instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must\n be below 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and\n never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand\n price.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "spotIamFleetRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment.\n This role is required if the allocation\n strategy set to BEST_FIT or if the allocation strategy is not specified. For more\n information, see Amazon EC2 Spot Fleet\n Role in the AWS Batch User Guide.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is\n required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For\n more information, see Amazon EC2 Spot\n Fleet Role in the AWS Batch User Guide.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          \n \n

                          To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot\n Instances. For more information, see Spot Instances not tagged on\n creation in the AWS Batch User Guide.

                          \n
                          " } }, "launchTemplate": { "target": "com.amazonaws.batch#LaunchTemplateSpecification", "traits": { - "smithy.api#documentation": "

                          The launch template to use for your compute resources. Any other compute resource parameters that you specify in\n a CreateComputeEnvironment API operation override the same parameters in the launch template. You\n must specify either the launch template ID or launch template name in the request, but not both. For more\n information, see Launch Template\n Support in the AWS Batch User Guide.

                          " + "smithy.api#documentation": "

                          The launch template to use for your compute resources. Any other compute resource parameters that you specify in\n a CreateComputeEnvironment API operation override the same parameters in the launch template. You\n must specify either the launch template ID or launch template name in the request, but not both. For more\n information, see Launch Template\n Support in the AWS Batch User Guide.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "ec2Configuration": { "target": "com.amazonaws.batch#Ec2ConfigurationList", "traits": { - "smithy.api#documentation": "

                          Provides additional details used to selecting the AMI to use for instances in a compute environment.

                          " + "smithy.api#documentation": "

                          Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If\n Ec2Configuration isn't specified, the default is ECS_AL1.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } } }, @@ -664,7 +684,7 @@ "minvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The minimum number of Amazon EC2 vCPUs that an environment should maintain.

                          " + "smithy.api#documentation": "

                          The minimum number of Amazon EC2 vCPUs that an environment should maintain.

                          \n \n

                          This parameter isnt applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " } }, "maxvCpus": { @@ -676,7 +696,19 @@ "desiredvCpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The desired number of Amazon EC2 vCPUS in the compute environment.

                          " + "smithy.api#documentation": "

                          The desired number of Amazon EC2 vCPUS in the compute environment.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified.

                          \n
                          " + } + }, + "subnets": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

                          The VPC subnets that the compute resources are launched into. This parameter is required for jobs running on\n Fargate compute resources, where it can contain up to 16 subnets. For more information, see VPCs and Subnets in the Amazon\n VPC User Guide. This can't be specified for EC2 compute resources. Providing an empty list will be\n handled as if this parameter wasn't specified and no change is made.

                          " + } + }, + "securityGroupIds": { + "target": "com.amazonaws.batch#StringList", + "traits": { + "smithy.api#documentation": "

                          The Amazon EC2 security groups associated with instances launched in the compute environment. This parameter is\n required for Fargate compute resources, where it can contain up to 5 security groups. This can't be specified for\n EC2 compute resources. Providing an empty list is handled as if this parameter wasn't specified and no changeis\n made.

                          " } } }, @@ -696,13 +728,13 @@ "vcpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The number of VCPUs allocated for the job. This is a required parameter.

                          " + "smithy.api#documentation": "

                          The number of vCPUs reserved for the container. Jobs running on EC2 resources can specify the vCPU requirement\n for the job using resourceRequirements but the vCPU requirements can't be specified both here and in the\n resourceRequirement object. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the --cpu-shares option to\n docker run. Each vCPU is equivalent to 1,024 CPU shares. You must\n specify at least one vCPU. This is required but can be specified in several places. It must be specified for each\n node at least once.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources. Jobs running on Fargate resources\n must specify the vCPU requirement for the job using resourceRequirements.

                          \n
                          " } }, "memory": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The number of MiB of memory reserved for the job. This is a required parameter.

                          " + "smithy.api#documentation": "

                          For jobs run on EC2 resources that didn't specify memory requirements using ResourceRequirement,\n the number of MiB of memory reserved for the job. For other jobs, including all run on Fargate resources, see\n resourceRequirements.

                          " } }, "command": { @@ -720,7 +752,7 @@ "executionRoleArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role in the\n AWS Batch User Guide.

                          " } }, "volumes": { @@ -744,25 +776,25 @@ "readonlyRootFilesystem": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

                          When this parameter is true, the container is given read-only access to its root file system.

                          " + "smithy.api#documentation": "

                          When this parameter is true, the container is given read-only access to its root file system. This parameter\n maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and\n the --read-only option to \n docker run\n .

                          " } }, "ulimits": { "target": "com.amazonaws.batch#Ulimits", "traits": { - "smithy.api#documentation": "

                          A list of ulimit values to set in the container.

                          " + "smithy.api#documentation": "

                          A list of ulimit values to set in the container. This parameter maps to Ulimits in the\n Create a container section of the Docker Remote API and the --ulimit option to docker run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "privileged": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

                          When this parameter is true, the container is given elevated privileges on the host container instance (similar\n to the root user).

                          " + "smithy.api#documentation": "

                          When this parameter is true, the container is given elevated permissions on the host container instance (similar\n to the root user). The default value is false.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified\n as false.

                          \n
                          " } }, "user": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The user name to use inside the container.

                          " + "smithy.api#documentation": "

                          The user name to use inside the container. This parameter maps to User in the\n Create a container section of the Docker Remote API and the --user option to docker run.

                          " } }, "exitCode": { @@ -780,7 +812,7 @@ "containerInstanceArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the container instance on which the container is running.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the container instance that the container is running on.

                          " } }, "taskArn": { @@ -798,7 +830,7 @@ "instanceType": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The instance type of the underlying host infrastructure of a multi-node parallel job.

                          " + "smithy.api#documentation": "

                          The instance type of the underlying host infrastructure of a multi-node parallel job.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "networkInterfaces": { @@ -810,7 +842,7 @@ "resourceRequirements": { "target": "com.amazonaws.batch#ResourceRequirements", "traits": { - "smithy.api#documentation": "

                          The type and amount of a resource to assign to a container. Currently, the only supported resource is\n GPU.

                          " + "smithy.api#documentation": "

                          The type and amount of resources to assign to a container. The supported resources include GPU,\n MEMORY, and VCPU.

                          " } }, "linuxParameters": { @@ -822,13 +854,25 @@ "logConfiguration": { "target": "com.amazonaws.batch#LogConfiguration", "traits": { - "smithy.api#documentation": "

                          The log configuration specification for the container.

                          \n

                          This parameter maps to LogConfig in the Create a container section of the\n Docker Remote API and the --log-driver option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However the container may use a\n different logging driver than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured properly on the\n container instance (or on a different log server for remote logging options). For more information on the options for\n different supported log drivers, see Configure\n logging drivers in the Docker documentation.

                          \n \n

                          AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS\n container agent.

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

                          \n \n

                          The Amazon ECS container agent running on a container instance must register the logging drivers available on that\n instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that\n instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the\n Amazon Elastic Container Service Developer Guide.

                          \n
                          " + "smithy.api#documentation": "

                          The log configuration specification for the container.

                          \n

                          This parameter maps to LogConfig in the Create a container section of the\n Docker Remote API and the --log-driver option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However the container might use a\n different logging driver than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured properly on the\n container instance. Or, alternatively, it must be configured on a different log server for remote logging options.\n For more information on the options for different supported log drivers, see Configure logging drivers in the Docker\n documentation.

                          \n \n

                          AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may be available in future releases of the Amazon ECS\n container agent.

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\"\n

                          \n \n

                          The Amazon ECS container agent running on a container instance must register the logging drivers available on that\n instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that\n instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the\n Amazon Elastic Container Service Developer Guide.

                          \n
                          " } }, "secrets": { "target": "com.amazonaws.batch#SecretList", "traits": { - "smithy.api#documentation": "

                          The secrets to pass to the container. For more information, see Specifying Sensitive Data in the\n Amazon Elastic Container Service Developer Guide.

                          " + "smithy.api#documentation": "

                          The secrets to pass to the container. For more information, see Specifying sensitive data in the\n AWS Batch User Guide.

                          " + } + }, + "networkConfiguration": { + "target": "com.amazonaws.batch#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

                          The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " + } + }, + "fargatePlatformConfiguration": { + "target": "com.amazonaws.batch#FargatePlatformConfiguration", + "traits": { + "smithy.api#documentation": "

                          The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " } } }, @@ -842,13 +886,19 @@ "vcpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The number of vCPUs to reserve for the container. This value overrides the value set in the job\n definition.

                          " + "smithy.api#deprecated": { + "message": "This field is deprecated, use resourceRequirements instead." + }, + "smithy.api#documentation": "

                          This parameter is deprecated and not supported for jobs run on Fargate resources, see\n resourceRequirement. For jobs run on EC2 resources, the number of vCPUs to reserve for the container.\n This value overrides the value set in the job definition. Jobs run on EC2 resources can specify the vCPU requirement\n using resourceRequirement but the vCPU requirements can't be specified both here and in\n resourceRequirement. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the --cpu-shares option to\n docker run. Each vCPU is equivalent to 1,024 CPU shares. You must\n specify at least one vCPU.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. Jobs running\n on Fargate resources must specify the vCPU requirement for the job using resourceRequirements.

                          \n
                          " } }, "memory": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The number of MiB of memory reserved for the job. This value overrides the value set in the job\n definition.

                          " + "smithy.api#deprecated": { + "message": "This field is deprecated, use resourceRequirements instead." + }, + "smithy.api#documentation": "

                          This parameter is deprecated and not supported for jobs run on Fargate resources, use\n ResourceRequirement. For jobs run on EC2 resource, the number of MiB of memory reserved for the job.\n This value overrides the value set in the job definition.

                          " } }, "command": { @@ -860,7 +910,7 @@ "instanceType": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The instance type to use for a multi-node parallel job. This parameter is not valid for single-node container\n jobs.

                          " + "smithy.api#documentation": "

                          The instance type to use for a multi-node parallel job.

                          \n \n

                          This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and\n shouldn't be provided.

                          \n
                          " } }, "environment": { @@ -872,7 +922,7 @@ "resourceRequirements": { "target": "com.amazonaws.batch#ResourceRequirements", "traits": { - "smithy.api#documentation": "

                          The type and amount of a resource to assign to a container. This value overrides the value set in the job\n definition. Currently, the only supported resource is GPU.

                          " + "smithy.api#documentation": "

                          The type and amount of resources to assign to a container. This overrides the settings in the job definition.\n The supported resources include GPU, MEMORY, and VCPU.

                          " } } }, @@ -886,19 +936,25 @@ "image": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker\n Hub registry are available by default. Other repositories are specified with\n \n repository-url/image:tag\n .\n Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons,\n periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of\n the Docker Remote API and the IMAGE parameter of docker\n run.

                          \n
                            \n
                          • \n

                            Images in Amazon ECR repositories use the full registry and repository URI (for example,\n 012345678910.dkr.ecr..amazonaws.com/).

                            \n
                          • \n
                          • \n

                            Images in official repositories on Docker Hub use a single name (for example, ubuntu or\n mongo).

                            \n
                          • \n
                          • \n

                            Images in other repositories on Docker Hub are qualified with an organization name (for example,\n amazon/amazon-ecs-agent).

                            \n
                          • \n
                          • \n

                            Images in other online repositories are qualified further by a domain name (for example,\n quay.io/assemblyline/ubuntu).

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker\n Hub registry are available by default. Other repositories are specified with\n \n repository-url/image:tag\n .\n Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons,\n periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of\n the Docker Remote API and the IMAGE parameter of docker\n run.

                          \n \n

                          Docker image architecture must match the processor architecture of the compute resources that they're scheduled\n on. For example, ARM-based Docker images can only run on ARM-based compute resources.

                          \n
                          \n
                            \n
                          • \n

                            Images in Amazon ECR repositories use the full registry and repository URI (for example,\n 012345678910.dkr.ecr..amazonaws.com/).

                            \n
                          • \n
                          • \n

                            Images in official repositories on Docker Hub use a single name (for example, ubuntu or\n mongo).

                            \n
                          • \n
                          • \n

                            Images in other repositories on Docker Hub are qualified with an organization name (for example,\n amazon/amazon-ecs-agent).

                            \n
                          • \n
                          • \n

                            Images in other online repositories are qualified further by a domain name (for example,\n quay.io/assemblyline/ubuntu).

                            \n
                          • \n
                          " } }, "vcpus": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The number of vCPUs reserved for the container. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the --cpu-shares option to\n docker run. Each vCPU is equivalent to 1,024 CPU shares. You must\n specify at least one vCPU. This is required\n but can be specified in several places for multi-node parallel (MNP) jobs; it must be specified for each node at\n least once.

                          " + "smithy.api#deprecated": { + "message": "This field is deprecated, use resourceRequirements instead." + }, + "smithy.api#documentation": "

                          This parameter is deprecated and not supported for jobs run on Fargate resources, see\n resourceRequirement. The number of vCPUs reserved for the container. Jobs running on EC2 resources can\n specify the vCPU requirement for the job using resourceRequirements but the vCPU requirements can't be\n specified both here and in the resourceRequirement structure. This parameter maps to\n CpuShares in the Create a container section of the Docker Remote API and the\n --cpu-shares option to docker run. Each vCPU is equivalent\n to 1,024 CPU shares. You must specify at least one vCPU. This is required but can be specified in several places. It\n must be specified for each node at least once.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. Jobs running\n on Fargate resources must specify the vCPU requirement for the job using resourceRequirements.

                          \n
                          " } }, "memory": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory\n specified here, the container is killed. This parameter maps to Memory in the\n Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a\n job. This is required but can be specified in\n several places for multi-node parallel (MNP) jobs; it must be specified for each node at least\n once.

                          \n \n

                          If you are trying to maximize your resource utilization by providing your jobs as much memory as possible for a\n particular instance type, see Memory\n Management in the AWS Batch User Guide.

                          \n
                          " + "smithy.api#deprecated": { + "message": "This field is deprecated, use resourceRequirements instead." + }, + "smithy.api#documentation": "

                          This parameter is deprecated and not supported for jobs run on Fargate resources, use\n ResourceRequirement. For jobs run on EC2 resources can specify the memory requirement using the\n ResourceRequirement structure. The hard limit (in MiB) of memory to present to the container. If your\n container attempts to exceed the memory specified here, the container is killed. This parameter maps to\n Memory in the Create a container section of the Docker Remote API and the\n --memory option to docker run. You must specify at least 4\n MiB of memory for a job. This is required but can be specified in several places; it must be specified for each node\n at least once.

                          \n \n

                          If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a\n particular instance type, see Memory\n Management in the AWS Batch User Guide.

                          \n
                          " } }, "command": { @@ -910,13 +966,13 @@ "jobRoleArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions. For more information, see\n IAM Roles for Tasks\n in the Amazon Elastic Container Service Developer Guide.

                          " } }, "executionRoleArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. Jobs running on Fargate resources must provide an\n execution role. For more information, see AWS Batch execution IAM role in the\n AWS Batch User Guide.

                          " } }, "volumes": { @@ -928,7 +984,7 @@ "environment": { "target": "com.amazonaws.batch#EnvironmentVariables", "traits": { - "smithy.api#documentation": "

                          The environment variables to pass to a container. This parameter maps to Env in the\n Create a container section of the Docker Remote API and the --env option to docker run.

                          \n \n

                          We do not recommend using plaintext environment variables for sensitive information, such as credential\n data.

                          \n
                          \n \n

                          Environment variables must not start with AWS_BATCH; this naming\n convention is reserved for variables that are set by the AWS Batch service.

                          \n
                          " + "smithy.api#documentation": "

                          The environment variables to pass to a container. This parameter maps to Env in the\n Create a container section of the Docker Remote API and the --env option to docker run.

                          \n \n

                          We don't recommend using plaintext environment variables for sensitive information, such as credential\n data.

                          \n
                          \n \n

                          Environment variables must not start with AWS_BATCH; this naming\n convention is reserved for variables that are set by the AWS Batch service.

                          \n
                          " } }, "mountPoints": { @@ -946,13 +1002,13 @@ "privileged": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

                          When this parameter is true, the container is given elevated privileges on the host container instance (similar\n to the root user). This parameter maps to Privileged in the\n Create a container section of the Docker Remote API and the --privileged option to\n docker run.

                          " + "smithy.api#documentation": "

                          When this parameter is true, the container is given elevated permissions on the host container instance (similar\n to the root user). This parameter maps to Privileged in the\n Create a container section of the Docker Remote API and the --privileged option to\n docker run. The default value is false.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified\n as false.

                          \n
                          " } }, "ulimits": { "target": "com.amazonaws.batch#Ulimits", "traits": { - "smithy.api#documentation": "

                          A list of ulimits to set in the container. This parameter maps to Ulimits in the\n Create a container section of the Docker Remote API and the --ulimit option to docker run.

                          " + "smithy.api#documentation": "

                          A list of ulimits to set in the container. This parameter maps to Ulimits in the\n Create a container section of the Docker Remote API and the --ulimit option to docker run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "user": { @@ -964,13 +1020,13 @@ "instanceType": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The instance type to use for a multi-node parallel job. Currently all node groups in a multi-node parallel job\n must use the same instance type. This parameter is not valid for single-node container jobs.

                          " + "smithy.api#documentation": "

                          The instance type to use for a multi-node parallel job. All node groups in a multi-node parallel job must use\n the same instance type.

                          \n \n

                          This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and\n shouldn't be provided.

                          \n
                          " } }, "resourceRequirements": { "target": "com.amazonaws.batch#ResourceRequirements", "traits": { - "smithy.api#documentation": "

                          The type and amount of a resource to assign to a container. Currently, the only supported resource is\n GPU.

                          " + "smithy.api#documentation": "

                          The type and amount of resources to assign to a container. The supported resources include GPU,\n MEMORY, and VCPU.

                          " } }, "linuxParameters": { @@ -982,13 +1038,25 @@ "logConfiguration": { "target": "com.amazonaws.batch#LogConfiguration", "traits": { - "smithy.api#documentation": "

                          The log configuration specification for the container.

                          \n

                          This parameter maps to LogConfig in the Create a container section of the\n Docker Remote API and the --log-driver option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However the container may use a\n different logging driver than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured properly on the\n container instance (or on a different log server for remote logging options). For more information on the options for\n different supported log drivers, see Configure\n logging drivers in the Docker documentation.

                          \n \n

                          AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type).

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\" \n

                          \n \n

                          The Amazon ECS container agent running on a container instance must register the logging drivers available on that\n instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that\n instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the\n Amazon Elastic Container Service Developer Guide.

                          \n
                          " + "smithy.api#documentation": "

                          The log configuration specification for the container.

                          \n

                          This parameter maps to LogConfig in the Create a container section of the\n Docker Remote API and the --log-driver option to docker run.\n By default, containers use the same logging driver that the Docker daemon uses. However the container might use a\n different logging driver than the Docker daemon by specifying a log driver with this parameter in the container\n definition. To use a different logging driver for a container, the log system must be configured properly on the\n container instance (or on a different log server for remote logging options). For more information on the options for\n different supported log drivers, see Configure\n logging drivers in the Docker documentation.

                          \n \n

                          AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type).

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\" \n

                          \n \n

                          The Amazon ECS container agent running on a container instance must register the logging drivers available on that\n instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that\n instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the\n Amazon Elastic Container Service Developer Guide.

                          \n
                          " } }, "secrets": { "target": "com.amazonaws.batch#SecretList", "traits": { - "smithy.api#documentation": "

                          The secrets for the container. For more information, see Specifying Sensitive Data in the\n Amazon Elastic Container Service Developer Guide.

                          " + "smithy.api#documentation": "

                          The secrets for the container. For more information, see Specifying sensitive data in the\n AWS Batch User Guide.

                          " + } + }, + "networkConfiguration": { + "target": "com.amazonaws.batch#NetworkConfiguration", + "traits": { + "smithy.api#documentation": "

                          The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " + } + }, + "fargatePlatformConfiguration": { + "target": "com.amazonaws.batch#FargatePlatformConfiguration", + "traits": { + "smithy.api#documentation": "

                          The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " } } }, @@ -1033,7 +1101,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute\n environments.

                          \n

                          In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources\n within the environment. This is based on the compute resource specification that you define or the launch template that you\n specify when you create the compute environment. You can choose to use Amazon EC2 On-Demand Instances or Spot Instances in\n your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the\n Spot Instance price is below a specified percentage of the On-Demand price.

                          \n \n

                          Multi-node parallel jobs are not supported on Spot Instances.

                          \n
                          \n

                          In an unmanaged compute environment, you can manage your own compute resources. This provides more compute\n resource configuration options, such as using a custom AMI, but you must ensure that your AMI meets the Amazon ECS\n container instance AMI specification. For more information, see Container Instance AMIs in the\n Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the\n DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it. Then,\n manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS\n Container Instance in the Amazon Elastic Container Service Developer Guide.

                          \n \n

                          AWS Batch does not upgrade the AMIs in a compute environment after it is created (for example, when a newer\n version of the Amazon ECS-optimized AMI is available). You are responsible for the management of the guest operating\n system (including updates and security patches) and any additional application software or utilities that you\n install on the compute resources. To use a new AMI for your AWS Batch jobs:

                          \n
                            \n
                          1. \n

                            Create a new compute environment with the new AMI.

                            \n
                          2. \n
                          3. \n

                            Add the compute environment to an existing job queue.

                            \n
                          4. \n
                          5. \n

                            Remove the old compute environment from your job queue.

                            \n
                          6. \n
                          7. \n

                            Delete the old compute environment.

                            \n
                          8. \n
                          \n
                          ", + "smithy.api#documentation": "

                          Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute\n environments. MANAGED compute environments can use Amazon EC2 or AWS Fargate resources.\n UNMANAGED compute environments can only use EC2 resources.

                          \n

                          In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources\n within the environment. This is based on the compute resource specification that you define or the launch template that you\n specify when you create the compute environment. You can choose either to use EC2 On-Demand Instances and EC2 Spot\n Instances, or to use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally\n set a maximum price so that Spot Instances only launch when the Spot Instance price is below a specified percentage\n of the On-Demand price.

                          \n \n

                          Multi-node parallel jobs are not supported on Spot Instances.

                          \n
                          \n

                          In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility\n with how you configure your compute resources. For example, you can use custom AMI. However, you need to verify that\n your AMI meets the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the\n Amazon Elastic Container Service Developer Guide. After you have created your unmanaged compute environment, you can use the\n DescribeComputeEnvironments operation to find the Amazon ECS cluster that is associated with it. Then,\n manually launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS\n container instance in the Amazon Elastic Container Service Developer Guide.

                          \n \n

                          AWS Batch doesn't upgrade the AMIs in a compute environment after it's created. For example, it doesn't update\n the AMIs when a newer version of the Amazon ECS-optimized AMI is available. Therefore, you're responsible for the\n management of the guest operating system (including updates and security patches) and any additional application\n software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete\n these steps:

                          \n
                            \n
                          1. \n

                            Create a new compute environment with the new AMI.

                            \n
                          2. \n
                          3. \n

                            Add the compute environment to an existing job queue.

                            \n
                          4. \n
                          5. \n

                            Remove the earlier compute environment from your job queue.

                            \n
                          6. \n
                          7. \n

                            Delete the earlier compute environment.

                            \n
                          8. \n
                          \n
                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/createcomputeenvironment", @@ -1054,7 +1122,7 @@ "type": { "target": "com.amazonaws.batch#CEType", "traits": { - "smithy.api#documentation": "

                          The type of the compute environment. For more information, see Compute Environments in the\n AWS Batch User Guide.

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

                          The type of the compute environment: MANAGED or UNMANAGED. For more information, see\n Compute Environments in\n the AWS Batch User Guide.

                          ", "smithy.api#required": {} } }, @@ -1067,20 +1135,20 @@ "computeResources": { "target": "com.amazonaws.batch#ComputeResource", "traits": { - "smithy.api#documentation": "

                          Details of the compute resources managed by the compute environment. This parameter is required for managed\n compute environments. For more information, see Compute Environments in the\n AWS Batch User Guide.

                          " + "smithy.api#documentation": "

                          Details about the compute resources managed by the compute environment. This parameter is required for managed\n compute environments. For more information, see Compute Environments in the\n AWS Batch User Guide.

                          " } }, "serviceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your\n behalf.

                          \n

                          If your specified role has a path other than /, then you must either specify the full role ARN\n (this is recommended) or prefix the role name with the path.

                          \n \n

                          Depending on how you created your AWS Batch service role, its ARN may contain the service-role path\n prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

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

                          The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your\n behalf.

                          \n

                          If your specified role has a path other than /, then you must either specify the full role ARN\n (this is recommended) or prefix the role name with the path.

                          \n \n

                          Depending on how you created your AWS Batch service role, its ARN may contain the service-role path\n prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

                          \n
                          ", "smithy.api#required": {} } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

                          The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General\n Reference.

                          \n \n

                          These tags can be updated or removed using the TagResource and UntagResource API operations. These tags do not\n propagate to the underlying compute resources.

                          " + "smithy.api#documentation": "

                          The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General\n Reference.

                          \n

                          These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't\n propagate to the underlying compute resources.

                          " } } } @@ -1140,20 +1208,20 @@ "state": { "target": "com.amazonaws.batch#JQState", "traits": { - "smithy.api#documentation": "

                          The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the\n job queue state is DISABLED, new jobs cannot be added to the queue, but jobs already in the queue can\n finish.

                          " + "smithy.api#documentation": "

                          The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the\n job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can\n finish.

                          " } }, "priority": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The priority of the job queue. Job queues with a higher priority (or a higher integer value for the\n priority parameter) are evaluated first when associated with the same compute environment. Priority is\n determined in descending order, for example, a job queue with a priority value of 10 is given scheduling\n preference over a job queue with a priority value of 1.

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

                          The priority of the job queue. Job queues with a higher priority (or a higher integer value for the\n priority parameter) are evaluated first when associated with the same compute environment. Priority is\n determined in descending order. For example, a job queue with a priority value of 10 is given scheduling\n preference over a job queue with a priority value of 1.

                          ", "smithy.api#required": {} } }, "computeEnvironmentOrder": { "target": "com.amazonaws.batch#ComputeEnvironmentOrders", "traits": { - "smithy.api#documentation": "

                          The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler\n uses this parameter to determine which compute environment should execute a given job. Compute environments must be\n in the VALID state before you can associate them with a job queue. You can associate up to three compute\n environments with a job queue.

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

                          The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler\n uses this parameter to determine which compute environment should run a specific job. Compute environments must be in\n the VALID state before you can associate them with a job queue. You can associate up to three compute\n environments with a job queue. All of the compute environments must be either EC2 (EC2 or\n SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute\n environments can't be mixed.

                          ", "smithy.api#required": {} } }, @@ -1201,7 +1269,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deletes an AWS Batch compute environment.

                          \n

                          Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation.

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

                          Deletes an AWS Batch compute environment.

                          \n

                          Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use AWS Fargate resources must terminate all\n active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute\n environment will end up in an invalid state.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/deletecomputeenvironment", @@ -1242,7 +1310,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue.

                          \n

                          It is not necessary to disassociate compute environments from a queue before submitting a\n DeleteJobQueue request.

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

                          Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are terminated when you delete a job queue.

                          \n

                          It's not necessary to disassociate compute environments from a queue before submitting a\n DeleteJobQueue request.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/deletejobqueue", @@ -1283,7 +1351,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deregisters an AWS Batch job definition.\n Job definitions will be permanently deleted after 180 days.

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

                          Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/deregisterjobdefinition", @@ -1324,7 +1392,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Describes one or more of your compute environments.

                          \n

                          If you are using an unmanaged compute environment, you can use the DescribeComputeEnvironment\n operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances\n into.

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

                          Describes one or more of your compute environments.

                          \n

                          If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment\n operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances\n into.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/describecomputeenvironments", @@ -1349,7 +1417,7 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum number of cluster results returned by DescribeComputeEnvironments in paginated output.\n When this parameter is used, DescribeComputeEnvironments only returns maxResults results in\n a single page along with a nextToken response element. The remaining results of the initial request can\n be seen by sending another DescribeComputeEnvironments request with the returned nextToken\n value. This value can be between 1 and 100. If this parameter is not used, then\n DescribeComputeEnvironments returns up to 100 results and a nextToken\n value if applicable.

                          " + "smithy.api#documentation": "

                          The maximum number of cluster results returned by DescribeComputeEnvironments in paginated output.\n When this parameter is used, DescribeComputeEnvironments only returns maxResults results in\n a single page along with a nextToken response element. The remaining results of the initial request can\n be seen by sending another DescribeComputeEnvironments request with the returned nextToken\n value. This value can be between 1 and 100. If this parameter isn't used, then\n DescribeComputeEnvironments returns up to 100 results and a nextToken\n value if applicable.

                          " } }, "nextToken": { @@ -1419,7 +1487,7 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum number of results returned by DescribeJobDefinitions in paginated output. When this\n parameter is used, DescribeJobDefinitions only returns maxResults results in a single page\n along with a nextToken response element. The remaining results of the initial request can be seen by\n sending another DescribeJobDefinitions request with the returned nextToken value. This\n value can be between 1 and 100. If this parameter is not used, then\n DescribeJobDefinitions returns up to 100 results and a nextToken value\n if applicable.

                          " + "smithy.api#documentation": "

                          The maximum number of results returned by DescribeJobDefinitions in paginated output. When this\n parameter is used, DescribeJobDefinitions only returns maxResults results in a single page\n along with a nextToken response element. The remaining results of the initial request can be seen by\n sending another DescribeJobDefinitions request with the returned nextToken value. This\n value can be between 1 and 100. If this parameter isn't used, then\n DescribeJobDefinitions returns up to 100 results and a nextToken value\n if applicable.

                          " } }, "jobDefinitionName": { @@ -1431,7 +1499,7 @@ "status": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The status with which to filter job definitions.

                          " + "smithy.api#documentation": "

                          The status used to filter job definitions.

                          " } }, "nextToken": { @@ -1501,7 +1569,7 @@ "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum number of results returned by DescribeJobQueues in paginated output. When this\n parameter is used, DescribeJobQueues only returns maxResults results in a single page along\n with a nextToken response element. The remaining results of the initial request can be seen by sending\n another DescribeJobQueues request with the returned nextToken value. This value can be\n between 1 and 100. If this parameter is not used, then DescribeJobQueues\n returns up to 100 results and a nextToken value if applicable.

                          " + "smithy.api#documentation": "

                          The maximum number of results returned by DescribeJobQueues in paginated output. When this\n parameter is used, DescribeJobQueues only returns maxResults results in a single page along\n with a nextToken response element. The remaining results of the initial request can be seen by sending\n another DescribeJobQueues request with the returned nextToken value. This value can be\n between 1 and 100. If this parameter isn't used, then DescribeJobQueues\n returns up to 100 results and a nextToken value if applicable.

                          " } }, "nextToken": { @@ -1590,7 +1658,7 @@ "containerPath": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The path inside the container at which to expose the host device. By default the hostPath value is\n used.

                          " + "smithy.api#documentation": "

                          The path inside the container used to expose the host device. By default the hostPath value is\n used.

                          " } }, "permissions": { @@ -1601,7 +1669,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          An object representing a container instance host device.

                          " + "smithy.api#documentation": "

                          An object representing a container instance host device.

                          \n \n

                          This object isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "com.amazonaws.batch#DeviceCgroupPermission": { @@ -1641,7 +1709,7 @@ "imageType": { "target": "com.amazonaws.batch#ImageType", "traits": { - "smithy.api#documentation": "

                          The image type to match with the instance type to pick an AMI. If the imageIdOverride parameter is\n not specified, then a recent Amazon ECS-optimized AMI will be used.

                          \n
                          \n
                          ECS_AL2
                          \n
                          \n

                          \n Amazon Linux\n 2− Default for all AWS Graviton-based instance\n families (for example,\n C6g, M6g, R6g, and T4g) and can be used for all non-GPU\n instance types.

                          \n
                          \n
                          ECS_AL2_NVIDIA
                          \n
                          \n

                          \n Amazon Linux\n 2 (GPU)−Default for all GPU instance\n families (for example\n P4 and G4) and can be used for all non-AWS Graviton-based instance types.

                          \n
                          \n
                          ECS_AL1
                          \n
                          \n

                          \n Amazon\n Linux−Default for all non-GPU, non-AWS-Graviton instance\n families. Amazon Linux is\n reaching the end-of-life of standard support. For more information, see Amazon Linux AMI.

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

                          The image type to match with the instance type to select an AMI. If the imageIdOverride parameter\n isn't specified, then a recent Amazon ECS-optimized AMI is used.

                          \n
                          \n
                          ECS_AL2
                          \n
                          \n

                          \n Amazon Linux\n 2− Default for all AWS Graviton-based instance families (for example, C6g,\n M6g, R6g, and T4g) and can be used for all non-GPU instance types.

                          \n
                          \n
                          ECS_AL2_NVIDIA
                          \n
                          \n

                          \n Amazon Linux\n 2 (GPU)−Default for all GPU instance families (for example P4 and G4) and\n can be used for all non-AWS Graviton-based instance types.

                          \n
                          \n
                          ECS_AL1
                          \n
                          \n

                          \n Amazon\n Linux−Default for all non-GPU, non-AWS-Graviton instance families. Amazon Linux is reaching the\n end-of-life of standard support. For more information, see Amazon\n Linux AMI.

                          \n
                          \n
                          ", "smithy.api#required": {} } }, @@ -1653,7 +1721,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If\n the Ec2Configuration is not specified, the default is ECS_AL1.

                          " + "smithy.api#documentation": "

                          Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If\n the Ec2Configuration isn't specified, the default is ECS_AL1.

                          \n \n

                          This object isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "com.amazonaws.batch#Ec2ConfigurationList": { @@ -1674,13 +1742,13 @@ "onStatusReason": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          Contains a glob pattern to match against the StatusReason returned for a job. The patten can be up\n to 512 characters long, can contain letters, numbers, periods (.), colons (:), and whitespace (spaces, tabs). and can\n optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

                          " + "smithy.api#documentation": "

                          Contains a glob pattern to match against the StatusReason returned for a job. The patten can be up\n to 512 characters long, can contain letters, numbers, periods (.), colons (:), and white space (spaces, tabs). and\n can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

                          " } }, "onReason": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          Contains a glob pattern to match against the Reason returned for a job. The patten can be up to 512\n characters long, can contain letters, numbers, periods (.), colons (:), and whitespace (spaces, tabs), and can\n optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

                          " + "smithy.api#documentation": "

                          Contains a glob pattern to match against the Reason returned for a job. The patten can be up to 512\n characters long, can contain letters, numbers, periods (.), colons (:), and white space (spaces, tabs), and can\n optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

                          " } }, "onExitCode": { @@ -1692,7 +1760,7 @@ "action": { "target": "com.amazonaws.batch#RetryAction", "traits": { - "smithy.api#documentation": "

                          Specifies the action to take if all of the specified conditions (onStatusReason,\n onReason, and onExitCode) are met.

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

                          Specifies the action to take if all of the specified conditions (onStatusReason,\n onReason, and onExitCode) are met. The values are not case sensitive.

                          ", "smithy.api#required": {} } } @@ -1707,18 +1775,32 @@ "target": "com.amazonaws.batch#EvaluateOnExit" } }, + "com.amazonaws.batch#FargatePlatformConfiguration": { + "type": "structure", + "members": { + "platformVersion": { + "target": "com.amazonaws.batch#String", + "traits": { + "smithy.api#documentation": "

                          The AWS Fargate platform version on which the jobs are running. A platform version is specified only for jobs\n running on Fargate resources. If one isn't specified, the LATEST platform version is used by default.\n This will use a recent, approved version of the AWS Fargate platform for compute resources. For more information,\n see AWS Fargate platform\n versions in the Amazon Elastic Container Service Developer Guide.

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

                          The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " + } + }, "com.amazonaws.batch#Host": { "type": "structure", "members": { "sourcePath": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The path on the host container instance that is presented to the container. If this parameter is empty, then the\n Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume\n persists at the specified location on the host container instance until you delete it manually. If the source path\n location does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the\n contents of the source path folder are exported.

                          " + "smithy.api#documentation": "

                          The path on the host container instance that is presented to the container. If this parameter is empty, then the\n Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume\n persists at the specified location on the host container instance until you delete it manually. If the source path\n location does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the\n contents of the source path folder are exported.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

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

                          Determine whether your data volume persists on the host container instance and where it is stored. If this\n parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed\n to persist after the containers associated with it stop running.

                          " + "smithy.api#documentation": "

                          Determine whether your data volume persists on the host container instance and where it is stored. If this\n parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data isn't guaranteed to\n persist after the containers associated with it stop running.

                          " } }, "com.amazonaws.batch#ImageIdOverride": { @@ -1821,7 +1903,7 @@ "type": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The type of job definition.

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

                          The type of job definition. If the job is run on Fargate resources, then multinode isn't\n supported. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the\n AWS Batch User Guide.

                          ", "smithy.api#required": {} } }, @@ -1846,13 +1928,13 @@ "timeout": { "target": "com.amazonaws.batch#JobTimeout", "traits": { - "smithy.api#documentation": "

                          The timeout configuration for jobs that are submitted with this job definition. You can specify a timeout\n duration after which AWS Batch terminates your jobs if they have not finished.

                          " + "smithy.api#documentation": "

                          The timeout configuration for jobs that are submitted with this job definition. You can specify a timeout\n duration after which AWS Batch terminates your jobs if they haven't finished.

                          " } }, "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

                          An object with various properties specific to multi-node parallel jobs.

                          " + "smithy.api#documentation": "

                          An object with various properties specific to multi-node parallel jobs.

                          \n \n

                          If the job runs on Fargate resources, then you must not specify nodeProperties; use\n containerProperties instead.

                          \n
                          " } }, "tags": { @@ -1860,6 +1942,18 @@ "traits": { "smithy.api#documentation": "

                          The tags applied to the job definition.

                          " } + }, + "propagateTags": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

                          Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state.

                          " + } + }, + "platformCapabilities": { + "target": "com.amazonaws.batch#PlatformCapabilityList", + "traits": { + "smithy.api#documentation": "

                          The platform capabilities required by the job definition. If no value is specified, it defaults to\n EC2. Jobs run on Fargate resources specify FARGATE.

                          " + } } }, "traits": { @@ -1939,7 +2033,7 @@ "jobQueue": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the job queue with which the job is associated.

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

                          The Amazon Resource Name (ARN) of the job queue that the job is associated with.

                          ", "smithy.api#required": {} } }, @@ -1977,7 +2071,7 @@ "startedAt": { "target": "com.amazonaws.batch#Long", "traits": { - "smithy.api#documentation": "

                          The Unix timestamp (in milliseconds) for when the job was started (when the job transitioned from the\n STARTING state to the RUNNING\n state). This parameter is not provided for\n child jobs of array jobs or multi-node parallel jobs.

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

                          The Unix timestamp (in milliseconds) for when the job was started (when the job transitioned from the\n STARTING state to the RUNNING state). This parameter isn't provided for child jobs of\n array jobs or multi-node parallel jobs.

                          ", "smithy.api#required": {} } }, @@ -1990,7 +2084,7 @@ "dependsOn": { "target": "com.amazonaws.batch#JobDependencyList", "traits": { - "smithy.api#documentation": "

                          A list of job IDs on which this job depends.

                          " + "smithy.api#documentation": "

                          A list of job IDs that this job depends on.

                          " } }, "jobDefinition": { @@ -2009,7 +2103,7 @@ "container": { "target": "com.amazonaws.batch#ContainerDetail", "traits": { - "smithy.api#documentation": "

                          An object representing the details of the container that is associated with the job.

                          " + "smithy.api#documentation": "

                          An object representing the details of the container that's associated with the job.

                          " } }, "nodeDetails": { @@ -2021,7 +2115,7 @@ "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

                          An object representing the node properties of a multi-node parallel job.

                          " + "smithy.api#documentation": "

                          An object representing the node properties of a multi-node parallel job.

                          \n \n

                          This isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "arrayProperties": { @@ -2041,6 +2135,18 @@ "traits": { "smithy.api#documentation": "

                          The tags applied to the job.

                          " } + }, + "propagateTags": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

                          Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state.

                          " + } + }, + "platformCapabilities": { + "target": "com.amazonaws.batch#PlatformCapabilityList", + "traits": { + "smithy.api#documentation": "

                          The platform capabilities required by the job definition. If no value is specified, it defaults to\n EC2. Jobs run on Fargate resources specify FARGATE.

                          " + } } }, "traits": { @@ -2073,7 +2179,7 @@ "state": { "target": "com.amazonaws.batch#JQState", "traits": { - "smithy.api#documentation": "

                          Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it is\n able to accept jobs. If the job queue state is DISABLED, new jobs cannot be added to the queue, but jobs\n already in the queue can finish.

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

                          Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it's able\n to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs\n already in the queue can finish.

                          ", "smithy.api#required": {} } }, @@ -2099,7 +2205,7 @@ "computeEnvironmentOrder": { "target": "com.amazonaws.batch#ComputeEnvironmentOrders", "traits": { - "smithy.api#documentation": "

                          The compute environments that are attached to the job queue and the order in which job placement is preferred.\n Compute environments are selected for job placement in ascending order.

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

                          The compute environments that are attached to the job queue and the order that job placement is preferred.\n Compute environments are selected for job placement in ascending order.

                          ", "smithy.api#required": {} } }, @@ -2223,7 +2329,7 @@ "nodeProperties": { "target": "com.amazonaws.batch#NodePropertiesSummary", "traits": { - "smithy.api#documentation": "

                          The node properties for a single node in a job summary list.

                          " + "smithy.api#documentation": "

                          The node properties for a single node in a job summary list.

                          \n \n

                          This isn't applicable to jobs running on Fargate resources.

                          \n
                          " } } }, @@ -2243,7 +2349,7 @@ "attemptDurationSeconds": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The time duration in seconds (measured from the job attempt's startedAt timestamp) after which\n AWS Batch terminates your jobs if they have not finished.

                          " + "smithy.api#documentation": "

                          The time duration in seconds (measured from the job attempt's startedAt timestamp) after which\n AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds.

                          " } } }, @@ -2294,7 +2400,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          An object representing a launch template associated with a compute resource. You must specify either the launch\n template ID or launch template name in the request, but not both.

                          " + "smithy.api#documentation": "

                          An object representing a launch template associated with a compute resource. You must specify either the launch\n template ID or launch template name in the request, but not both.

                          \n

                          If security groups are specified using both the securityGroupIds parameter of\n CreateComputeEnvironment and the launch template, the values in the securityGroupIds\n parameter of CreateComputeEnvironment will be used.

                          \n \n

                          This object isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "com.amazonaws.batch#LinuxParameters": { @@ -2303,7 +2409,7 @@ "devices": { "target": "com.amazonaws.batch#DevicesList", "traits": { - "smithy.api#documentation": "

                          Any host devices to expose to the container. This parameter maps to Devices in the\n Create a container section of the Docker Remote API and the --device option to docker run.

                          " + "smithy.api#documentation": "

                          Any host devices to expose to the container. This parameter maps to Devices in the\n Create a container section of the Docker Remote API and the --device option to docker run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "initProcessEnabled": { @@ -2315,25 +2421,25 @@ "sharedMemorySize": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the\n --shm-size option to docker run.

                          " + "smithy.api#documentation": "

                          The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the\n --shm-size option to docker run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "tmpfs": { "target": "com.amazonaws.batch#TmpfsList", "traits": { - "smithy.api#documentation": "

                          The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the\n --tmpfs option to docker run.

                          " + "smithy.api#documentation": "

                          The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the\n --tmpfs option to docker run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "maxSwap": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the\n --memory-swap option to docker run where the value would be\n the sum of the container memory plus the maxSwap\n value. For more information,\n see \n --memory-swap details in the Docker\n documentation.

                          \n

                          If a maxSwap value of 0 is specified, the container will not use swap. Accepted values\n are 0 or any positive integer. If the maxSwap parameter is omitted, the container will use\n the swap configuration for the container instance it is running on. A maxSwap value must be set for the\n swappiness parameter to be used.

                          " + "smithy.api#documentation": "

                          The total amount of swap memory (in MiB) a container can use. This parameter is translated to the\n --memory-swap option to docker run where the value is the\n sum of the container memory plus the maxSwap value. For more information, see \n --memory-swap details in the Docker documentation.

                          \n

                          If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values\n are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't\n use the swap configuration for the container instance it is running on. A maxSwap value must be set for\n the swappiness parameter to be used.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "swappiness": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          This allows you to tune a container's memory swappiness behavior. A swappiness value of\n 0 will cause swapping to not happen unless absolutely necessary. A swappiness value of\n 100 will cause pages to be swapped very aggressively. Accepted values are whole numbers between\n 0 and 100. If the swappiness parameter is not specified, a default value of\n 60 is used. If a value is not specified for maxSwap then this parameter is ignored. This\n parameter maps to the --memory-swappiness option to docker\n run.

                          " + "smithy.api#documentation": "

                          This allows you to tune a container's memory swappiness behavior. A swappiness value of\n 0 causes swapping not to happen unless absolutely necessary. A swappiness value of\n 100 causes pages to be swapped very aggressively. Accepted values are whole numbers between\n 0 and 100. If the swappiness parameter isn't specified, a default value of\n 60 is used. If a value isn't specified for maxSwap then this parameter is ignored. This\n parameter maps to the --memory-swappiness option to docker\n run.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } } }, @@ -2358,7 +2464,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Returns a list of AWS Batch jobs.

                          \n

                          You must specify only one of the following:

                          \n
                            \n
                          • \n

                            a job queue ID to return a list of jobs in that job queue

                            \n
                          • \n
                          • \n

                            a multi-node parallel job ID to return a list of that job's nodes

                            \n
                          • \n
                          • \n

                            an array job ID to return a list of that job's children

                            \n
                          • \n
                          \n

                          You can filter the results by job status with the jobStatus parameter. If you do not specify a\n status, only RUNNING jobs are returned.

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

                          Returns a list of AWS Batch jobs.

                          \n

                          You must specify only one of the following items:

                          \n
                            \n
                          • \n

                            A job queue ID to return a list of jobs in that job queue

                            \n
                          • \n
                          • \n

                            A multi-node parallel job ID to return a list of that job's nodes

                            \n
                          • \n
                          • \n

                            An array job ID to return a list of that job's children

                            \n
                          • \n
                          \n

                          You can filter the results by job status with the jobStatus parameter. If you don't specify a\n status, only RUNNING jobs are returned.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/listjobs", @@ -2377,7 +2483,7 @@ "jobQueue": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs.

                          " + "smithy.api#documentation": "

                          The name or full Amazon Resource Name (ARN) of the job queue used to list jobs.

                          " } }, "arrayJobId": { @@ -2395,13 +2501,13 @@ "jobStatus": { "target": "com.amazonaws.batch#JobStatus", "traits": { - "smithy.api#documentation": "

                          The job status with which to filter jobs in the specified queue. If you do not specify a status, only\n RUNNING jobs are returned.

                          " + "smithy.api#documentation": "

                          The job status used to filter jobs in the specified queue. If you don't specify a status, only\n RUNNING jobs are returned.

                          " } }, "maxResults": { "target": "com.amazonaws.batch#Integer", "traits": { - "smithy.api#documentation": "

                          The maximum number of results returned by ListJobs in paginated output. When this parameter is\n used, ListJobs only returns maxResults results in a single page along with a\n nextToken response element. The remaining results of the initial request can be seen by sending another\n ListJobs request with the returned nextToken value. This value can be between\n 1 and 100. If this parameter is not used, then ListJobs returns up to\n 100 results and a nextToken value if applicable.

                          " + "smithy.api#documentation": "

                          The maximum number of results returned by ListJobs in paginated output. When this parameter is\n used, ListJobs only returns maxResults results in a single page along with a\n nextToken response element. The remaining results of the initial request can be seen by sending another\n ListJobs request with the returned nextToken value. This value can be between\n 1 and 100. If this parameter isn't used, then ListJobs returns up to\n 100 results and a nextToken value if applicable.

                          " } }, "nextToken": { @@ -2447,7 +2553,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          List the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

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

                          Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

                          ", "smithy.api#http": { "method": "GET", "uri": "/v1/tags/{resourceArn}", @@ -2461,7 +2567,7 @@ "resourceArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

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

                          The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

                          ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2485,7 +2591,7 @@ "logDriver": { "target": "com.amazonaws.batch#LogDriver", "traits": { - "smithy.api#documentation": "

                          The log driver to use for the container. The valid values listed for this parameter are log drivers that the\n Amazon ECS container agent can communicate with by default.

                          \n

                          The supported log drivers are awslogs, fluentd, gelf,\n json-file, journald, logentries, syslog, and\n splunk.

                          \n \n
                          \n
                          awslogs
                          \n
                          \n

                          Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs Log Driver in the\n AWS Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation.

                          \n
                          \n
                          fluentd
                          \n
                          \n

                          Specifies the Fluentd logging driver. For more information, including usage and options, see Fluentd logging driver in the Docker\n documentation.

                          \n
                          \n
                          gelf
                          \n
                          \n

                          Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and\n options, see Graylog Extended Format logging\n driver in the Docker documentation.

                          \n
                          \n
                          journald
                          \n
                          \n

                          Specifies the journald logging driver. For more information, including usage and options, see Journald logging driver in the Docker\n documentation.

                          \n
                          \n
                          json-file
                          \n
                          \n

                          Specifies the JSON file logging driver. For more information, including usage and options, see JSON File logging driver in the Docker\n documentation.

                          \n
                          \n
                          splunk
                          \n
                          \n

                          Specifies the Splunk logging driver. For more information, including usage and options, see Splunk logging driver in the Docker\n documentation.

                          \n
                          \n
                          syslog
                          \n
                          \n

                          Specifies the syslog logging driver. For more information, including usage and options, see Syslog logging driver in the Docker\n documentation.

                          \n
                          \n
                          \n \n \n

                          If you have a custom driver that is not listed earlier that you would like to work with the Amazon ECS container\n agent, you can fork the Amazon ECS container agent project that is available on GitHub and customize it to work with that driver. We encourage you to submit pull requests\n for changes that you would like to have included. However, Amazon Web Services does not currently support running modified\n copies of this software.

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\" \n

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

                          The log driver to use for the container. The valid values listed for this parameter are log drivers that the\n Amazon ECS container agent can communicate with by default.

                          \n

                          The supported log drivers are awslogs, fluentd, gelf,\n json-file, journald, logentries, syslog, and\n splunk.

                          \n \n

                          Jobs running on Fargate resources are restricted to the awslogs and splunk log\n drivers.

                          \n
                          \n
                          \n
                          awslogs
                          \n
                          \n

                          Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs Log Driver in the\n AWS Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation.

                          \n
                          \n
                          fluentd
                          \n
                          \n

                          Specifies the Fluentd logging driver. For more information, including usage and options, see Fluentd logging driver in the Docker\n documentation.

                          \n
                          \n
                          gelf
                          \n
                          \n

                          Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and\n options, see Graylog Extended Format logging\n driver in the Docker documentation.

                          \n
                          \n
                          journald
                          \n
                          \n

                          Specifies the journald logging driver. For more information, including usage and options, see Journald logging driver in the Docker\n documentation.

                          \n
                          \n
                          json-file
                          \n
                          \n

                          Specifies the JSON file logging driver. For more information, including usage and options, see JSON File logging driver in the Docker\n documentation.

                          \n
                          \n
                          splunk
                          \n
                          \n

                          Specifies the Splunk logging driver. For more information, including usage and options, see Splunk logging driver in the Docker\n documentation.

                          \n
                          \n
                          syslog
                          \n
                          \n

                          Specifies the syslog logging driver. For more information, including usage and options, see Syslog logging driver in the Docker\n documentation.

                          \n
                          \n
                          \n \n

                          If you have a custom driver that isn't listed earlier that you want to work with the Amazon ECS container agent, you\n can fork the Amazon ECS container agent project that is available on\n GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that\n you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this\n software.

                          \n
                          \n

                          This parameter requires version 1.18 of the Docker Remote API or greater on your\n container instance. To check the Docker Remote API version on your container instance, log into your\n container instance and run the following command: sudo docker version | grep \"Server API version\" \n

                          ", "smithy.api#required": {} } }, @@ -2559,13 +2665,13 @@ "containerPath": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The path on the container at which to mount the host volume.

                          " + "smithy.api#documentation": "

                          The path on the container where the host volume is mounted.

                          " } }, "readOnly": { "target": "com.amazonaws.batch#Boolean", "traits": { - "smithy.api#documentation": "

                          If this value is true, the container has read-only access to the volume; otherwise, the container\n can write to the volume. The default value is false.

                          " + "smithy.api#documentation": "

                          If this value is true, the container has read-only access to the volume. Otherwise, the container\n can write to the volume. The default value is false.

                          " } }, "sourceVolume": { @@ -2585,6 +2691,20 @@ "target": "com.amazonaws.batch#MountPoint" } }, + "com.amazonaws.batch#NetworkConfiguration": { + "type": "structure", + "members": { + "assignPublicIp": { + "target": "com.amazonaws.batch#AssignPublicIp", + "traits": { + "smithy.api#documentation": "

                          Indicates whether the job should have a public IP address.\n For a job running on Fargate resources in a\n private subnet to send outbound traffic to the internet (for example, in order to pull container images), the private\n subnet requires a NAT gateway be attached to route requests to the internet. For more information, see Amazon ECS task\n networking. The default value is \"DISABLED\".

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

                          The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not\n specify this parameter.

                          " + } + }, "com.amazonaws.batch#NetworkInterface": { "type": "structure", "members": { @@ -2654,7 +2774,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Object representing any node overrides to a job definition that is used in a SubmitJob API\n operation.

                          " + "smithy.api#documentation": "

                          Object representing any node overrides to a job definition that is used in a SubmitJob API\n operation.

                          \n \n

                          This isn't applicable to jobs running on Fargate resources and shouldn't be provided; use\n containerOverrides instead.

                          \n
                          " } }, "com.amazonaws.batch#NodeProperties": { @@ -2718,7 +2838,7 @@ "targetNodes": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The range of nodes, using node index values, with which to override. A range of 0:3 indicates nodes\n with index values of 0 through 3. If the starting range value is omitted (:n),\n then 0 is used to start the range. If the ending range value is omitted (n:), then the\n highest possible node index is used to end the range.

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

                          The range of nodes, using node index values, that's used to override. A range of 0:3 indicates\n nodes with index values of 0 through 3. If the starting range value is omitted\n (:n), then 0 is used to start the range. If the ending range value is omitted\n (n:), then the highest possible node index is used to end the range.

                          ", "smithy.api#required": {} } }, @@ -2751,7 +2871,7 @@ "targetNodes": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of\n 0 through 3. If the starting range value is omitted (:n), then 0\n is used to start the range. If the ending range value is omitted (n:), then the highest possible node\n index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You may nest node\n ranges, for example 0:10 and 4:5, in which case the 4:5 range properties override the 0:10 properties.

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

                          The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of\n 0 through 3. If the starting range value is omitted (:n), then 0\n is used to start the range. If the ending range value is omitted (n:), then the highest possible node\n index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You may\n nest node ranges, for example 0:10 and 4:5, in which case the 4:5 range\n properties override the 0:10 properties.

                          ", "smithy.api#required": {} } }, @@ -2775,6 +2895,27 @@ "target": "com.amazonaws.batch#String" } }, + "com.amazonaws.batch#PlatformCapability": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EC2", + "name": "EC2" + }, + { + "value": "FARGATE", + "name": "FARGATE" + } + ] + } + }, + "com.amazonaws.batch#PlatformCapabilityList": { + "type": "list", + "member": { + "target": "com.amazonaws.batch#PlatformCapability" + } + }, "com.amazonaws.batch#RegisterJobDefinition": { "type": "operation", "input": { @@ -2813,7 +2954,7 @@ "type": { "target": "com.amazonaws.batch#JobDefinitionType", "traits": { - "smithy.api#documentation": "

                          The type of job definition.

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

                          The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the\n AWS Batch User Guide.

                          \n \n

                          If the job is run on Fargate resources, then multinode isn't supported.

                          \n
                          ", "smithy.api#required": {} } }, @@ -2826,31 +2967,43 @@ "containerProperties": { "target": "com.amazonaws.batch#ContainerProperties", "traits": { - "smithy.api#documentation": "

                          An object with various properties specific to single-node container-based jobs. If the job definition's\n type parameter is container, then you must specify either containerProperties\n or nodeProperties.

                          " + "smithy.api#documentation": "

                          An object with various properties specific to single-node container-based jobs. If the job definition's\n type parameter is container, then you must specify either containerProperties\n or nodeProperties.

                          \n \n

                          If the job runs on Fargate resources, then you must not specify nodeProperties; use only\n containerProperties.

                          \n
                          " } }, "nodeProperties": { "target": "com.amazonaws.batch#NodeProperties", "traits": { - "smithy.api#documentation": "

                          An object with various properties specific to multi-node parallel jobs. If you specify node properties for a\n job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the\n AWS Batch User Guide. If the job definition's type parameter is\n container, then you must specify either containerProperties or\n nodeProperties.

                          " + "smithy.api#documentation": "

                          An object with various properties specific to multi-node parallel jobs. If you specify node properties for a\n job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the\n AWS Batch User Guide. If the job definition's type parameter is\n container, then you must specify either containerProperties or\n nodeProperties.

                          \n \n

                          If the job runs on Fargate resources, then you must not specify nodeProperties; use\n containerProperties instead.

                          \n
                          " } }, "retryStrategy": { "target": "com.amazonaws.batch#RetryStrategy", "traits": { - "smithy.api#documentation": "

                          The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that\n is specified during a SubmitJob operation overrides the retry strategy defined here. If a job is\n terminated due to a timeout, it is not retried.

                          " + "smithy.api#documentation": "

                          The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that\n is specified during a SubmitJob operation overrides the retry strategy defined here. If a job is\n terminated due to a timeout, it isn't retried.

                          " + } + }, + "propagateTags": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

                          Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state.

                          " } }, "timeout": { "target": "com.amazonaws.batch#JobTimeout", "traits": { - "smithy.api#documentation": "

                          The timeout configuration for jobs that are submitted with this job definition, after which AWS Batch terminates\n your jobs if they have not finished. If a job is terminated due to a timeout, it is not retried. The minimum value\n for the timeout is 60 seconds. Any timeout configuration that is specified during a SubmitJob\n operation overrides the timeout configuration defined here. For more information, see Job Timeouts in the\n Amazon Elastic Container Service Developer Guide.

                          " + "smithy.api#documentation": "

                          The timeout configuration for jobs that are submitted with this job definition, after which AWS Batch terminates\n your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for\n the timeout is 60 seconds. Any timeout configuration that is specified during a SubmitJob operation\n overrides the timeout configuration defined here. For more information, see Job Timeouts in the\n AWS Batch User Guide.

                          " } }, "tags": { "target": "com.amazonaws.batch#TagrisTagsMap", "traits": { - "smithy.api#documentation": "

                          The tags that you apply to the job definition to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General\n Reference.

                          " + "smithy.api#documentation": "

                          The tags that you apply to the job definition to help you categorize and organize your resources. Each tag\n consists of a key and an optional value. For more information, see Tagging AWS Resources in\n AWS Batch User Guide.

                          " + } + }, + "platformCapabilities": { + "target": "com.amazonaws.batch#PlatformCapabilityList", + "traits": { + "smithy.api#documentation": "

                          The platform capabilities required by the job definition. If no value is specified, it defaults to\n EC2. To run the job on Fargate resources, specify FARGATE.

                          " } } } @@ -2887,20 +3040,20 @@ "value": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a\n job should not exceed the number of available GPUs on the compute resource that the job is launched on.

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

                          The quantity of the specified resource to reserve for the container. The values vary based on the\n type specified.

                          \n
                          \n
                          type=\"GPU\"
                          \n
                          \n

                          The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a\n job shouldn't exceed the number of available GPUs on the compute resource that the job is launched on.

                          \n \n

                          GPUs are not available for jobs running on Fargate resources.

                          \n
                          \n
                          \n
                          type=\"MEMORY\"
                          \n
                          \n

                          For jobs running on EC2 resources, the hard limit (in MiB) of memory to present to the container. If your\n container attempts to exceed the memory specified here, the container is killed. This parameter maps to\n Memory in the Create a container section of the Docker Remote API and the\n --memory option to docker run. You must specify at least\n 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP)\n jobs. It must be specified for each node at least once. This parameter maps to Memory in the\n Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job.

                          \n \n

                          If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for\n a particular instance type, see Memory\n Management in the AWS Batch User Guide.

                          \n
                          \n

                          For jobs running on Fargate resources, then value is the hard limit (in GiB), represented in\n decimal form, and must match one of the supported values (0.5 and whole numbers between 1 and 30, inclusive) and\n the VCPU values must be one of the values supported for that memory value.

                          \n
                          \n
                          value = 0.5
                          \n
                          \n

                          \n VCPU = 0.25

                          \n
                          \n
                          value = 1
                          \n
                          \n

                          \n VCPU = 0.25 or 0.5

                          \n
                          \n
                          value = 2
                          \n
                          \n

                          \n VCPU = 0.25, 0.5, or 1

                          \n
                          \n
                          value = 3
                          \n
                          \n

                          \n VCPU = 0.5, or 1

                          \n
                          \n
                          value = 4
                          \n
                          \n

                          \n VCPU = 0.5, 1, or 2

                          \n
                          \n
                          value = 5, 6, or 7
                          \n
                          \n

                          \n VCPU = 1 or 2

                          \n
                          \n
                          value = 8
                          \n
                          \n

                          \n VCPU = 1, 2, or 4

                          \n
                          \n
                          value = 9, 10, 11, 12, 13, 14, 15, or 16
                          \n
                          \n

                          \n VCPU = 2 or 4

                          \n
                          \n
                          value = 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, or 30
                          \n
                          \n

                          \n VCPU = 4

                          \n
                          \n
                          \n
                          \n
                          type=\"VCPU\"
                          \n
                          \n

                          The number of vCPUs reserved for the container. This parameter maps to CpuShares in the\n Create a container section of the Docker Remote API and the --cpu-shares option to\n docker run. Each vCPU is equivalent to 1,024 CPU shares. You must\n specify at least one vCPU. This is required but can be specified in several places; it must be specified for each\n node at least once.

                          \n

                          For jobs running on Fargate resources, then value must match one of the supported values and\n the MEMORY values must be one of the values supported for that VCPU value. The supported values are\n 0.25, 0.5, 1, 2, and 4

                          \n
                          \n
                          value = 0.25
                          \n
                          \n

                          \n MEMORY = 0.5, 1, or 2

                          \n
                          \n
                          value = 0.5
                          \n
                          \n

                          \n MEMORY = 1, 2, 3, or 4

                          \n
                          \n
                          value = 1
                          \n
                          \n

                          \n MEMORY = 2, 3, 4, 5, 6, 7, or 8

                          \n
                          \n
                          value = 2
                          \n
                          \n

                          \n MEMORY = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, or 16

                          \n
                          \n
                          value = 4
                          \n
                          \n

                          \n MEMORY = 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, or 30

                          \n
                          \n
                          \n
                          \n
                          ", "smithy.api#required": {} } }, "type": { "target": "com.amazonaws.batch#ResourceType", "traits": { - "smithy.api#documentation": "

                          The type of resource to assign to a container. Currently, the only supported resource type is\n GPU.

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

                          The type of resource to assign to a container. The supported resources include GPU,\n MEMORY, and VCPU.

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

                          The type and amount of a resource to assign to a container. Currently, the only supported resource type is\n GPU.

                          " + "smithy.api#documentation": "

                          The type and amount of a resource to assign to a container. The supported resources include GPU,\n MEMORY, and VCPU.

                          " } }, "com.amazonaws.batch#ResourceRequirements": { @@ -2916,6 +3069,14 @@ { "value": "GPU", "name": "GPU" + }, + { + "value": "VCPU", + "name": "VCPU" + }, + { + "value": "MEMORY", + "name": "MEMORY" } ] } @@ -2947,12 +3108,12 @@ "evaluateOnExit": { "target": "com.amazonaws.batch#EvaluateOnExitList", "traits": { - "smithy.api#documentation": "

                          Array of up to 5 objects that specify\n conditions under which the job should be retried or failed. If this parameter is specified, then the\n attempts parameter must also be specified.

                          " + "smithy.api#documentation": "

                          Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this\n parameter is specified, then the attempts parameter must also be specified.

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

                          The retry strategy associated with a job.

                          " + "smithy.api#documentation": "

                          The retry strategy associated with a job. For more information, see Automated job retries in the\n AWS Batch User Guide.

                          " } }, "com.amazonaws.batch#Secret": { @@ -2968,13 +3129,13 @@ "valueFrom": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the\n full ARN of the parameter in the AWS Systems Manager Parameter Store.

                          \n \n

                          If the AWS Systems Manager Parameter Store parameter exists in the same Region as the task you are launching, then you can\n use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN\n must be specified.

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

                          The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the\n full ARN of the parameter in the AWS Systems Manager Parameter Store.

                          \n \n

                          If the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you are launching, then you can use\n either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must\n be specified.

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

                          An object representing the secret to expose to your container. Secrets can be exposed to a container in the\n following ways:

                          \n
                            \n
                          • \n

                            To inject sensitive data into your containers as environment variables, use the secrets container\n definition parameter.

                            \n
                          • \n
                          • \n

                            To reference sensitive information in the log configuration of a container, use the secretOptions\n container definition parameter.

                            \n
                          • \n
                          \n

                          For more information, see Specifying Sensitive Data in the\n Amazon Elastic Container Service Developer Guide.

                          " + "smithy.api#documentation": "

                          An object representing the secret to expose to your container. Secrets can be exposed to a container in the\n following ways:

                          \n
                            \n
                          • \n

                            To inject sensitive data into your containers as environment variables, use the secrets container\n definition parameter.

                            \n
                          • \n
                          • \n

                            To reference sensitive information in the log configuration of a container, use the secretOptions\n container definition parameter.

                            \n
                          • \n
                          \n

                          For more information, see Specifying sensitive data in the\n AWS Batch User Guide.

                          " } }, "com.amazonaws.batch#SecretList": { @@ -3022,7 +3183,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override\n parameters defined in the job definition.

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

                          Submits an AWS Batch job from a job definition. Parameters specified during SubmitJob override\n parameters defined in the job definition.

                          \n \n

                          Jobs run on Fargate resources\n don't\n run for more than 14 days. After 14 days, the Fargate resources might no longer be available and the job is\n terminated.

                          \n
                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/submitjob", @@ -3062,7 +3223,7 @@ "jobDefinition": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The job definition used by this job. This value can be one of name, name:revision, or\n the Amazon Resource Name (ARN) for the job definition. If\n name is specified without a revision then the latest active revision is used.

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

                          The job definition used by this job. This value can be one of name, name:revision, or\n the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active\n revision is used.

                          ", "smithy.api#required": {} } }, @@ -3081,7 +3242,7 @@ "nodeOverrides": { "target": "com.amazonaws.batch#NodeOverrides", "traits": { - "smithy.api#documentation": "

                          A list of node overrides in JSON format that specify the node range to target and the container overrides for\n that node range.

                          " + "smithy.api#documentation": "

                          A list of node overrides in JSON format that specify the node range to target and the container overrides for\n that node range.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources; use containerOverrides\n instead.

                          \n
                          " } }, "retryStrategy": { @@ -3090,10 +3251,16 @@ "smithy.api#documentation": "

                          The retry strategy to use for failed jobs from this SubmitJob operation. When a retry strategy\n is specified here, it overrides the retry strategy defined in the job definition.

                          " } }, + "propagateTags": { + "target": "com.amazonaws.batch#Boolean", + "traits": { + "smithy.api#documentation": "

                          Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no\n value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For\n tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags\n from the job and job definition is over 50, the job is moved to the FAILED state. When specified, this\n overrides the tag propagation setting in the job definition.

                          " + } + }, "timeout": { "target": "com.amazonaws.batch#JobTimeout", "traits": { - "smithy.api#documentation": "

                          The timeout configuration for this SubmitJob operation. You can specify a timeout duration\n after which AWS Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it is\n not retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration\n specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job.\n For more information, see Job\n Timeouts in the Amazon Elastic Container Service Developer Guide.

                          " + "smithy.api#documentation": "

                          The timeout configuration for this SubmitJob operation. You can specify a timeout duration\n after which AWS Batch terminates your jobs if they haven't finished. If a job is terminated due to a timeout, it isn't\n retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration\n specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job.\n For more information, see Job\n Timeouts in the Amazon Elastic Container Service Developer Guide.

                          " } }, "tags": { @@ -3167,7 +3334,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Associates the specified tags to a resource with the specified resourceArn. If existing tags on a\n resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags\n associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

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

                          Associates the specified tags to a resource with the specified resourceArn. If existing tags on a\n resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags\n associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

                          ", "smithy.api#http": { "method": "POST", "uri": "/v1/tags/{resourceArn}", @@ -3181,7 +3348,7 @@ "resourceArn": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the resource to which to add tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

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

                          The Amazon Resource Name (ARN) of the resource that tags are added to. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job\n queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

                          ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3286,7 +3453,7 @@ "containerPath": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The absolute file path in the container where the tmpfs volume is to be mounted.

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

                          The absolute file path in the container where the tmpfs volume is mounted.

                          ", "smithy.api#required": {} } }, @@ -3305,7 +3472,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The container path, mount options, and size of the tmpfs mount.

                          " + "smithy.api#documentation": "

                          The container path, mount options, and size of the tmpfs mount.

                          \n \n

                          This object isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "com.amazonaws.batch#TmpfsList": { @@ -3340,7 +3507,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The ulimit settings to pass to the container.

                          " + "smithy.api#documentation": "

                          The ulimit settings to pass to the container.

                          \n \n

                          This object isn't applicable to jobs running on Fargate resources.

                          \n
                          " } }, "com.amazonaws.batch#Ulimits": { @@ -3449,7 +3616,7 @@ "serviceRole": { "target": "com.amazonaws.batch#String", "traits": { - "smithy.api#documentation": "

                          The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your\n behalf.

                          \n

                          If your specified role has a path other than /, then you must either specify the full role ARN\n (this is recommended) or prefix the role name with the path.

                          \n \n

                          Depending on how you created your AWS Batch service role, its ARN may contain the service-role path\n prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

                          \n
                          " + "smithy.api#documentation": "

                          The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your\n behalf.

                          \n

                          If your specified role has a path other than /, then you must either specify the full role ARN\n (this is recommended) or prefix the role name with the path.

                          \n \n

                          Depending on how you created your AWS Batch service role, its ARN might contain the service-role\n path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN does not use the\n service-role path prefix. Because of this, we recommend that you specify the full ARN of your service\n role when you create compute environments.

                          \n
                          " } } } @@ -3521,7 +3688,7 @@ "computeEnvironmentOrder": { "target": "com.amazonaws.batch#ComputeEnvironmentOrders", "traits": { - "smithy.api#documentation": "

                          Details the set of compute environments mapped to a job queue and their order relative to each other. This is\n one of the parameters used by the job scheduler to determine which compute environment should execute a given\n job.

                          " + "smithy.api#documentation": "

                          Details the set of compute environments mapped to a job queue and their order relative to each other. This is\n one of the parameters used by the job scheduler to determine which compute environment should run a given job. All of\n the compute environments must be either EC2 (EC2 or SPOT) or Fargate\n (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

                          " } } } @@ -3549,7 +3716,7 @@ "host": { "target": "com.amazonaws.batch#Host", "traits": { - "smithy.api#documentation": "

                          The contents of the host parameter determine whether your data volume persists on the host\n container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path\n for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop\n running.

                          " + "smithy.api#documentation": "

                          The contents of the host parameter determine whether your data volume persists on the host\n container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path\n for your data volume. However, the data isn't guaranteed to persist after the containers associated with it stop\n running.

                          \n \n

                          This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided.

                          \n
                          " } }, "name": { diff --git a/codegen/sdk-codegen/aws-models/compute-optimizer.2019-11-01.json b/codegen/sdk-codegen/aws-models/compute-optimizer.2019-11-01.json index 13bf0edab09ea..705d7424c0c50 100644 --- a/codegen/sdk-codegen/aws-models/compute-optimizer.2019-11-01.json +++ b/codegen/sdk-codegen/aws-models/compute-optimizer.2019-11-01.json @@ -63,18 +63,6 @@ "com.amazonaws.computeoptimizer#AutoScalingGroupConfiguration": { "type": "structure", "members": { - "instanceType": { - "target": "com.amazonaws.computeoptimizer#InstanceType", - "traits": { - "smithy.api#documentation": "

                          The instance type for the Auto Scaling group.

                          " - } - }, - "maxSize": { - "target": "com.amazonaws.computeoptimizer#MaxSize", - "traits": { - "smithy.api#documentation": "

                          The maximum size, or maximum number of instances, for the Auto Scaling group.

                          " - } - }, "desiredCapacity": { "target": "com.amazonaws.computeoptimizer#DesiredCapacity", "traits": { @@ -86,6 +74,18 @@ "traits": { "smithy.api#documentation": "

                          The minimum size, or minimum number of instances, for the Auto Scaling group.

                          " } + }, + "maxSize": { + "target": "com.amazonaws.computeoptimizer#MaxSize", + "traits": { + "smithy.api#documentation": "

                          The maximum size, or maximum number of instances, for the Auto Scaling group.

                          " + } + }, + "instanceType": { + "target": "com.amazonaws.computeoptimizer#InstanceType", + "traits": { + "smithy.api#documentation": "

                          The instance type for the Auto Scaling group.

                          " + } } }, "traits": { @@ -98,40 +98,34 @@ "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendation": { "type": "structure", "members": { - "finding": { - "target": "com.amazonaws.computeoptimizer#Finding", - "traits": { - "smithy.api#documentation": "

                          The finding classification for the Auto Scaling group.

                          \n

                          Findings for Auto Scaling groups include:

                          \n
                            \n
                          • \n

                            \n \n NotOptimized\n —An Auto Scaling group is\n considered not optimized when AWS Compute Optimizer identifies a recommendation that can\n provide better performance for your workload.

                            \n
                          • \n
                          • \n

                            \n \n Optimized\n —An Auto Scaling group is\n considered optimized when Compute Optimizer determines that the group is correctly\n provisioned to run your workload based on the chosen instance type. For\n optimized resources, Compute Optimizer might recommend a new generation instance type.

                            \n
                          • \n
                          \n \n

                          The values that are returned might be NOT_OPTIMIZED or\n OPTIMIZED.

                          \n
                          " - } - }, - "autoScalingGroupName": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupName", + "accountId": { + "target": "com.amazonaws.computeoptimizer#AccountId", "traits": { - "smithy.api#documentation": "

                          The name of the Auto Scaling group.

                          " + "smithy.api#documentation": "

                          The AWS account ID of the Auto Scaling group.

                          " } }, - "recommendationOptions": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendationOptions", + "autoScalingGroupArn": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupArn", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the recommendation options for the Auto Scaling\n group.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Auto Scaling group.

                          " } }, - "currentConfiguration": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupConfiguration", + "autoScalingGroupName": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupName", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the current configuration of the Auto Scaling group.

                          " + "smithy.api#documentation": "

                          The name of the Auto Scaling group.

                          " } }, - "accountId": { - "target": "com.amazonaws.computeoptimizer#AccountId", + "finding": { + "target": "com.amazonaws.computeoptimizer#Finding", "traits": { - "smithy.api#documentation": "

                          The AWS account ID of the Auto Scaling group.

                          " + "smithy.api#documentation": "

                          The finding classification for the Auto Scaling group.

                          \n

                          Findings for Auto Scaling groups include:

                          \n
                            \n
                          • \n

                            \n \n NotOptimized\n —An Auto Scaling group is\n considered not optimized when AWS Compute Optimizer identifies a recommendation that can\n provide better performance for your workload.

                            \n
                          • \n
                          • \n

                            \n \n Optimized\n —An Auto Scaling group is\n considered optimized when Compute Optimizer determines that the group is correctly\n provisioned to run your workload based on the chosen instance type. For\n optimized resources, Compute Optimizer might recommend a new generation instance type.

                            \n
                          • \n
                          " } }, - "autoScalingGroupArn": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupArn", + "utilizationMetrics": { + "target": "com.amazonaws.computeoptimizer#UtilizationMetrics", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Auto Scaling group.

                          " + "smithy.api#documentation": "

                          An array of objects that describe the utilization metrics of the Auto Scaling group.

                          " } }, "lookBackPeriodInDays": { @@ -140,10 +134,16 @@ "smithy.api#documentation": "

                          The number of days for which utilization metrics were analyzed for the Auto Scaling\n group.

                          " } }, - "utilizationMetrics": { - "target": "com.amazonaws.computeoptimizer#UtilizationMetrics", + "currentConfiguration": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupConfiguration", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the utilization metrics of the Auto Scaling group.

                          " + "smithy.api#documentation": "

                          An array of objects that describe the current configuration of the Auto Scaling group.

                          " + } + }, + "recommendationOptions": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendationOptions", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the recommendation options for the Auto Scaling\n group.

                          " } }, "lastRefreshTimestamp": { @@ -160,18 +160,18 @@ "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendationOption": { "type": "structure", "members": { - "projectedUtilizationMetrics": { - "target": "com.amazonaws.computeoptimizer#ProjectedUtilizationMetrics", - "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the projected utilization metrics of the Auto Scaling group\n recommendation option.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned. Additionally, the Memory metric is\n returned only for resources that have the unified CloudWatch agent installed on them. For\n more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " - } - }, "configuration": { "target": "com.amazonaws.computeoptimizer#AutoScalingGroupConfiguration", "traits": { "smithy.api#documentation": "

                          An array of objects that describe an Auto Scaling group configuration.

                          " } }, + "projectedUtilizationMetrics": { + "target": "com.amazonaws.computeoptimizer#ProjectedUtilizationMetrics", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the projected utilization metrics of the Auto Scaling group\n recommendation option.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned. Additionally, the Memory metric is\n returned only for resources that have the unified CloudWatch agent installed on them. For\n more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " + } + }, "performanceRisk": { "target": "com.amazonaws.computeoptimizer#PerformanceRisk", "traits": { @@ -220,6 +220,9 @@ { "target": "com.amazonaws.computeoptimizer#GetAutoScalingGroupRecommendations" }, + { + "target": "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendations" + }, { "target": "com.amazonaws.computeoptimizer#GetEC2InstanceRecommendations" }, @@ -241,13 +244,13 @@ "sdkId": "Compute Optimizer", "arnNamespace": "compute-optimizer", "cloudFormationName": "ComputeOptimizer", - "cloudTrailEventSource": "version_2019_11_01.computeoptimizer.amazonaws.com" + "cloudTrailEventSource": "computeoptimizer.amazonaws.com" }, "aws.auth#sigv4": { "name": "compute-optimizer" }, "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "

                          AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your\n AWS resources, such as EC2 instances and Auto Scaling groups. It reports whether your\n resources are optimal, and generates optimization recommendations to reduce the cost and\n improve the performance of your workloads. Compute Optimizer also provides recent utilization metric\n data, as well as projected utilization metric data for the recommendations, which you\n can use to evaluate which recommendation provides the best price-performance trade-off.\n The analysis of your usage patterns can help you decide when to move or resize your\n running resources, and still meet your performance and capacity requirements. For more\n information about Compute Optimizer, including the required permissions to use the service, see the\n AWS Compute Optimizer User\n Guide.

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

                          AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your\n AWS compute resources, such as EC2 instances, Auto Scaling groups, and Amazon EBS volumes. It\n reports whether your resources are optimal, and generates optimization recommendations\n to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides\n recent utilization metric data, as well as projected utilization metric data for the\n recommendations, which you can use to evaluate which recommendation provides the best\n price-performance trade-off. The analysis of your usage patterns can help you decide\n when to move or resize your running resources, and still meet your performance and\n capacity requirements. For more information about Compute Optimizer, including the required\n permissions to use the service, see the AWS Compute Optimizer User Guide.

                          ", "smithy.api#title": "AWS Compute Optimizer" } }, @@ -298,46 +301,46 @@ "com.amazonaws.computeoptimizer#DescribeRecommendationExportJobsRequest": { "type": "structure", "members": { - "filters": { - "target": "com.amazonaws.computeoptimizer#JobFilters", - "traits": { - "smithy.api#documentation": "

                          An array of objects that describe a filter to return a more specific list of export\n jobs.

                          " - } - }, - "maxResults": { - "target": "com.amazonaws.computeoptimizer#MaxResults", - "traits": { - "smithy.api#documentation": "

                          The maximum number of export jobs to return with a single request.

                          \n

                          To retrieve the remaining results, make another request with the returned\n NextToken value.

                          " - } - }, "jobIds": { "target": "com.amazonaws.computeoptimizer#JobIds", "traits": { "smithy.api#documentation": "

                          The identification numbers of the export jobs to return.

                          \n\n

                          An export job ID is returned when you create an export using the\n ExportAutoScalingGroupRecommendations or\n ExportEC2InstanceRecommendations actions.

                          \n\n

                          All export jobs created in the last seven days are returned if this parameter is\n omitted.

                          " } }, + "filters": { + "target": "com.amazonaws.computeoptimizer#JobFilters", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe a filter to return a more specific list of export\n jobs.

                          " + } + }, "nextToken": { "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { "smithy.api#documentation": "

                          The token to advance to the next page of export jobs.

                          " } + }, + "maxResults": { + "target": "com.amazonaws.computeoptimizer#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of export jobs to return with a single request.

                          \n

                          To retrieve the remaining results, make another request with the returned\n NextToken value.

                          " + } } } }, "com.amazonaws.computeoptimizer#DescribeRecommendationExportJobsResponse": { "type": "structure", "members": { - "nextToken": { - "target": "com.amazonaws.computeoptimizer#NextToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to advance to the next page of export jobs.

                          \n

                          This value is null when there are no more pages of export jobs to return.

                          " - } - }, "recommendationExportJobs": { "target": "com.amazonaws.computeoptimizer#RecommendationExportJobs", "traits": { "smithy.api#documentation": "

                          An array of objects that describe recommendation export jobs.

                          " } + }, + "nextToken": { + "target": "com.amazonaws.computeoptimizer#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to advance to the next page of export jobs.

                          \n

                          This value is null when there are no more pages of export jobs to return.

                          " + } } } }, @@ -353,6 +356,113 @@ "com.amazonaws.computeoptimizer#DestinationKeyPrefix": { "type": "string" }, + "com.amazonaws.computeoptimizer#EBSFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.computeoptimizer#EBSFilterName", + "traits": { + "smithy.api#documentation": "

                          The name of the filter.

                          \n\n

                          Specify Finding to return recommendations with a specific finding\n classification (e.g., Optimized).

                          " + } + }, + "values": { + "target": "com.amazonaws.computeoptimizer#FilterValues", + "traits": { + "smithy.api#documentation": "

                          The value of the filter.

                          \n\n

                          The valid values are Optimized, or NotOptimized.

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

                          Describes a filter that returns a more specific list of Amazon Elastic Block Store (Amazon EBS) volume\n recommendations.

                          \n\n

                          This filter is used with the GetEBSVolumeRecommendations action.

                          " + } + }, + "com.amazonaws.computeoptimizer#EBSFilterName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Finding", + "name": "FINDING" + } + ] + } + }, + "com.amazonaws.computeoptimizer#EBSFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.computeoptimizer#EBSFilter" + } + }, + "com.amazonaws.computeoptimizer#EBSFinding": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Optimized", + "name": "OPTIMIZED" + }, + { + "value": "NotOptimized", + "name": "NOT_OPTIMIZED" + } + ] + } + }, + "com.amazonaws.computeoptimizer#EBSMetricName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "VolumeReadOpsPerSecond", + "name": "VOLUME_READ_OPS_PER_SECOND" + }, + { + "value": "VolumeWriteOpsPerSecond", + "name": "VOLUME_WRITE_OPS_PER_SECOND" + }, + { + "value": "VolumeReadBytesPerSecond", + "name": "VOLUME_READ_BYTES_PER_SECOND" + }, + { + "value": "VolumeWriteBytesPerSecond", + "name": "VOLUME_WRITE_BYTES_PER_SECOND" + } + ] + } + }, + "com.amazonaws.computeoptimizer#EBSUtilizationMetric": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.computeoptimizer#EBSMetricName", + "traits": { + "smithy.api#documentation": "

                          The name of the utilization metric.

                          \n

                          The following utilization metrics are available:

                          \n
                            \n
                          • \n

                            \n VolumeReadOpsPerSecond - The completed read operations per second\n from the volume in a specified period of time.

                            \n

                            Unit: Count

                            \n
                          • \n
                          • \n

                            \n VolumeWriteOpsPerSecond - The completed write operations per\n second to the volume in a specified period of time.

                            \n

                            Unit: Count

                            \n
                          • \n
                          • \n

                            \n VolumeReadBytesPerSecond - The bytes read per second from the\n volume in a specified period of time.

                            \n

                            Unit: Bytes

                            \n
                          • \n
                          • \n

                            \n VolumeWriteBytesPerSecond - The bytes written to the volume in a\n specified period of time.

                            \n

                            Unit: Bytes

                            \n
                          • \n
                          " + } + }, + "statistic": { + "target": "com.amazonaws.computeoptimizer#MetricStatistic", + "traits": { + "smithy.api#documentation": "

                          The statistic of the utilization metric.

                          \n

                          The following statistics are available:

                          \n
                            \n
                          • \n

                            \n Average - This is the value of Sum / SampleCount during the\n specified period, or the average value observed during the specified\n period.

                            \n
                          • \n
                          • \n

                            \n Maximum - The highest value observed during the specified period.\n Use this value to determine high volumes of activity for your\n application.

                            \n
                          • \n
                          " + } + }, + "value": { + "target": "com.amazonaws.computeoptimizer#MetricValue", + "traits": { + "smithy.api#documentation": "

                          The value of the utilization metric.

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

                          Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS) volume.

                          \n\n

                          Compare the utilization metric data of your resource against its projected utilization\n metric data to determine the performance difference between your current resource and\n the recommended option.

                          " + } + }, + "com.amazonaws.computeoptimizer#EBSUtilizationMetrics": { + "type": "list", + "member": { + "target": "com.amazonaws.computeoptimizer#EBSUtilizationMetric" + } + }, "com.amazonaws.computeoptimizer#ErrorMessage": { "type": "string" }, @@ -397,23 +507,10 @@ "com.amazonaws.computeoptimizer#ExportAutoScalingGroupRecommendationsRequest": { "type": "structure", "members": { - "s3DestinationConfig": { - "target": "com.amazonaws.computeoptimizer#S3DestinationConfig", - "traits": { - "smithy.api#documentation": "

                          An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for\n the export job.

                          \n

                          You must create the destination Amazon S3 bucket for your recommendations export before you\n create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the\n S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the\n export file to it. If you plan to specify an object prefix when you create the export\n job, you must include the object prefix in the policy that you add to the S3 bucket. For\n more information, see Amazon S3 Bucket Policy for Compute Optimizer in the Compute Optimizer user\n guide.

                          ", - "smithy.api#required": {} - } - }, - "includeMemberAccounts": { - "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", - "traits": { - "smithy.api#documentation": "

                          Indicates whether to include recommendations for resources in all member accounts of\n the organization if your account is the master account of an organization.

                          \n

                          The member accounts must also be opted in to Compute Optimizer.

                          \n

                          Recommendations for member accounts of the organization are not included in the export\n file if this parameter is omitted.

                          \n

                          This parameter cannot be specified together with the account IDs parameter. The\n parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the account IDs parameter, is omitted.

                          " - } - }, - "fileFormat": { - "target": "com.amazonaws.computeoptimizer#FileFormat", + "accountIds": { + "target": "com.amazonaws.computeoptimizer#AccountIds", "traits": { - "smithy.api#documentation": "

                          The format of the export file.

                          \n

                          The only export file format currently supported is Csv.

                          " + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to export Auto Scaling group recommendations.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to export recommendations.

                          \n

                          This parameter cannot be specified together with the include member accounts\n parameter. The parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the include member accounts parameter, is omitted.

                          \n

                          You can specify multiple account IDs per request.

                          " } }, "filters": { @@ -428,10 +525,23 @@ "smithy.api#documentation": "

                          The recommendations data to include in the export file. For more information about the\n fields that can be exported, see Exported files in the Compute Optimizer User Guide.

                          " } }, - "accountIds": { - "target": "com.amazonaws.computeoptimizer#AccountIds", + "s3DestinationConfig": { + "target": "com.amazonaws.computeoptimizer#S3DestinationConfig", "traits": { - "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to export Auto Scaling group recommendations.

                          \n

                          If your account is the master account of an organization, use this parameter to\n specify the member accounts for which you want to export recommendations.

                          \n

                          This parameter cannot be specified together with the include member accounts\n parameter. The parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the include member accounts parameter, is omitted.

                          \n

                          You can specify multiple account IDs per request.

                          " + "smithy.api#documentation": "

                          An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for\n the export job.

                          \n

                          You must create the destination Amazon S3 bucket for your recommendations export before you\n create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the\n S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the\n export file to it. If you plan to specify an object prefix when you create the export\n job, you must include the object prefix in the policy that you add to the S3 bucket. For\n more information, see Amazon S3 Bucket Policy for Compute Optimizer in the Compute Optimizer user\n guide.

                          ", + "smithy.api#required": {} + } + }, + "fileFormat": { + "target": "com.amazonaws.computeoptimizer#FileFormat", + "traits": { + "smithy.api#documentation": "

                          The format of the export file.

                          \n

                          The only export file format currently supported is Csv.

                          " + } + }, + "includeMemberAccounts": { + "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", + "traits": { + "smithy.api#documentation": "

                          Indicates whether to include recommendations for resources in all member accounts of\n the organization if your account is the management account of an organization.

                          \n

                          The member accounts must also be opted in to Compute Optimizer.

                          \n

                          Recommendations for member accounts of the organization are not included in the export\n file if this parameter is omitted.

                          \n

                          This parameter cannot be specified together with the account IDs parameter. The\n parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the account IDs parameter, is omitted.

                          " } } } @@ -439,17 +549,17 @@ "com.amazonaws.computeoptimizer#ExportAutoScalingGroupRecommendationsResponse": { "type": "structure", "members": { - "s3Destination": { - "target": "com.amazonaws.computeoptimizer#S3Destination", - "traits": { - "smithy.api#documentation": "

                          An object that describes the destination Amazon S3 bucket of a recommendations export\n file.

                          " - } - }, "jobId": { "target": "com.amazonaws.computeoptimizer#JobId", "traits": { "smithy.api#documentation": "

                          The identification number of the export job.

                          \n

                          Use the DescribeRecommendationExportJobs action, and specify the job ID\n to view the status of an export job.

                          " } + }, + "s3Destination": { + "target": "com.amazonaws.computeoptimizer#S3Destination", + "traits": { + "smithy.api#documentation": "

                          An object that describes the destination Amazon S3 bucket of a recommendations export\n file.

                          " + } } } }, @@ -508,23 +618,16 @@ "com.amazonaws.computeoptimizer#ExportEC2InstanceRecommendationsRequest": { "type": "structure", "members": { - "s3DestinationConfig": { - "target": "com.amazonaws.computeoptimizer#S3DestinationConfig", - "traits": { - "smithy.api#documentation": "

                          An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for\n the export job.

                          \n

                          You must create the destination Amazon S3 bucket for your recommendations export before you\n create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the\n S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the\n export file to it. If you plan to specify an object prefix when you create the export\n job, you must include the object prefix in the policy that you add to the S3 bucket. For\n more information, see Amazon S3 Bucket Policy for Compute Optimizer in the Compute Optimizer user\n guide.

                          ", - "smithy.api#required": {} - } - }, - "includeMemberAccounts": { - "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", + "accountIds": { + "target": "com.amazonaws.computeoptimizer#AccountIds", "traits": { - "smithy.api#documentation": "

                          Indicates whether to include recommendations for resources in all member accounts of\n the organization if your account is the master account of an organization.

                          \n

                          The member accounts must also be opted in to Compute Optimizer.

                          \n

                          Recommendations for member accounts of the organization are not included in the export\n file if this parameter is omitted.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the account IDs parameter, is omitted.

                          " + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to export instance recommendations.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to export recommendations.

                          \n

                          This parameter cannot be specified together with the include member accounts\n parameter. The parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the include member accounts parameter, is omitted.

                          \n

                          You can specify multiple account IDs per request.

                          " } }, - "fileFormat": { - "target": "com.amazonaws.computeoptimizer#FileFormat", + "filters": { + "target": "com.amazonaws.computeoptimizer#Filters", "traits": { - "smithy.api#documentation": "

                          The format of the export file.

                          \n

                          The only export file format currently supported is Csv.

                          " + "smithy.api#documentation": "

                          An array of objects that describe a filter to export a more specific set of instance\n recommendations.

                          " } }, "fieldsToExport": { @@ -533,16 +636,23 @@ "smithy.api#documentation": "

                          The recommendations data to include in the export file. For more information about the\n fields that can be exported, see Exported files in the Compute Optimizer User Guide.

                          " } }, - "accountIds": { - "target": "com.amazonaws.computeoptimizer#AccountIds", + "s3DestinationConfig": { + "target": "com.amazonaws.computeoptimizer#S3DestinationConfig", + "traits": { + "smithy.api#documentation": "

                          An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for\n the export job.

                          \n

                          You must create the destination Amazon S3 bucket for your recommendations export before you\n create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the\n S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the\n export file to it. If you plan to specify an object prefix when you create the export\n job, you must include the object prefix in the policy that you add to the S3 bucket. For\n more information, see Amazon S3 Bucket Policy for Compute Optimizer in the Compute Optimizer user\n guide.

                          ", + "smithy.api#required": {} + } + }, + "fileFormat": { + "target": "com.amazonaws.computeoptimizer#FileFormat", "traits": { - "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to export instance recommendations.

                          \n

                          If your account is the master account of an organization, use this parameter to\n specify the member accounts for which you want to export recommendations.

                          \n

                          This parameter cannot be specified together with the include member accounts\n parameter. The parameters are mutually exclusive.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the include member accounts parameter, is omitted.

                          \n

                          You can specify multiple account IDs per request.

                          " + "smithy.api#documentation": "

                          The format of the export file.

                          \n

                          The only export file format currently supported is Csv.

                          " } }, - "filters": { - "target": "com.amazonaws.computeoptimizer#Filters", + "includeMemberAccounts": { + "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe a filter to export a more specific set of instance\n recommendations.

                          " + "smithy.api#documentation": "

                          Indicates whether to include recommendations for resources in all member accounts of\n the organization if your account is the management account of an organization.

                          \n

                          The member accounts must also be opted in to Compute Optimizer.

                          \n

                          Recommendations for member accounts of the organization are not included in the export\n file if this parameter is omitted.

                          \n

                          Recommendations for member accounts are not included in the export if this parameter,\n or the account IDs parameter, is omitted.

                          " } } } @@ -550,17 +660,17 @@ "com.amazonaws.computeoptimizer#ExportEC2InstanceRecommendationsResponse": { "type": "structure", "members": { - "s3Destination": { - "target": "com.amazonaws.computeoptimizer#S3Destination", - "traits": { - "smithy.api#documentation": "

                          An object that describes the destination Amazon S3 bucket of a recommendations export\n file.

                          " - } - }, "jobId": { "target": "com.amazonaws.computeoptimizer#JobId", "traits": { "smithy.api#documentation": "

                          The identification number of the export job.

                          \n

                          Use the DescribeRecommendationExportJobs action, and specify the job ID\n to view the status of an export job.

                          " } + }, + "s3Destination": { + "target": "com.amazonaws.computeoptimizer#S3Destination", + "traits": { + "smithy.api#documentation": "

                          An object that describes the destination Amazon S3 bucket of a recommendations export\n file.

                          " + } } } }, @@ -887,21 +997,21 @@ "com.amazonaws.computeoptimizer#Filter": { "type": "structure", "members": { - "values": { - "target": "com.amazonaws.computeoptimizer#FilterValues", + "name": { + "target": "com.amazonaws.computeoptimizer#FilterName", "traits": { - "smithy.api#documentation": "

                          The value of the filter.

                          \n

                          If you specify the name parameter as Finding, and you\n request recommendations for an instance, then the valid values are\n Underprovisioned, Overprovisioned,\n NotOptimized, or Optimized.

                          \n

                          If you specify the name parameter as Finding, and you\n request recommendations for an Auto Scaling group, then the valid values\n are Optimized, or NotOptimized.

                          \n

                          If you specify the name parameter as\n RecommendationSourceType, then the valid values are\n Ec2Instance, or AutoScalingGroup.

                          " + "smithy.api#documentation": "

                          The name of the filter.

                          \n\n

                          Specify Finding to return recommendations with a specific finding\n classification (e.g., Overprovisioned).

                          \n\n

                          Specify RecommendationSourceType to return recommendations of a specific\n resource type (e.g., AutoScalingGroup).

                          " } }, - "name": { - "target": "com.amazonaws.computeoptimizer#FilterName", + "values": { + "target": "com.amazonaws.computeoptimizer#FilterValues", "traits": { - "smithy.api#documentation": "

                          The name of the filter.

                          \n

                          Specify Finding to return recommendations with a specific findings\n classification (e.g., Overprovisioned).

                          \n

                          Specify RecommendationSourceType to return recommendations of a specific\n resource type (e.g., AutoScalingGroup).

                          " + "smithy.api#documentation": "

                          The value of the filter.

                          \n\n

                          The valid values for this parameter are as follows, depending on what you specify for\n the name parameter and the resource type that you wish to filter results\n for:

                          \n\n
                            \n
                          • \n

                            Specify Optimized or NotOptimized if you specified\n the name parameter as Finding and you want to filter\n results for Auto Scaling groups.

                            \n
                          • \n
                          • \n

                            Specify Underprovisioned, Overprovisioned, or\n Optimized if you specified the name parameter as\n Finding and you want to filter results for EC2\n instances.

                            \n
                          • \n
                          • \n

                            Specify Ec2Instance or AutoScalingGroup if you\n specified the name parameter as\n RecommendationSourceType.

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

                          Describes a filter that returns a more specific list of recommendations.

                          " + "smithy.api#documentation": "

                          Describes a filter that returns a more specific list of recommendations.

                          \n\n

                          This filter is used with the GetAutoScalingGroupRecommendations and\n GetEC2InstanceRecommendations actions.

                          " } }, "com.amazonaws.computeoptimizer#FilterName": { @@ -1001,13 +1111,19 @@ "accountIds": { "target": "com.amazonaws.computeoptimizer#AccountIds", "traits": { - "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return Auto Scaling group recommendations.

                          \n

                          If your account is the master account of an organization, use this parameter to\n specify the member accounts for which you want to return Auto Scaling group\n recommendations.

                          \n

                          Only one account ID can be specified per request.

                          " + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return Auto Scaling group recommendations.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to return Auto Scaling group\n recommendations.

                          \n

                          Only one account ID can be specified per request.

                          " } }, - "filters": { - "target": "com.amazonaws.computeoptimizer#Filters", + "autoScalingGroupArns": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupArns", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe a filter that returns a more specific list of Auto Scaling\n group recommendations.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return\n recommendations.

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.computeoptimizer#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token to advance to the next page of Auto Scaling group recommendations.

                          " } }, "maxResults": { @@ -1016,39 +1132,129 @@ "smithy.api#documentation": "

                          The maximum number of Auto Scaling group recommendations to return with a single\n request.

                          \n

                          To retrieve the remaining results, make another request with the returned\n NextToken value.

                          " } }, + "filters": { + "target": "com.amazonaws.computeoptimizer#Filters", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe a filter that returns a more specific list of Auto Scaling\n group recommendations.

                          " + } + } + } + }, + "com.amazonaws.computeoptimizer#GetAutoScalingGroupRecommendationsResponse": { + "type": "structure", + "members": { "nextToken": { "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { - "smithy.api#documentation": "

                          The token to advance to the next page of Auto Scaling group recommendations.

                          " + "smithy.api#documentation": "

                          The token to use to advance to the next page of Auto Scaling group recommendations.

                          \n

                          This value is null when there are no more pages of Auto Scaling group recommendations to\n return.

                          " } }, - "autoScalingGroupArns": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupArns", + "autoScalingGroupRecommendations": { + "target": "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendations", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return\n recommendations.

                          " + "smithy.api#documentation": "

                          An array of objects that describe Auto Scaling group recommendations.

                          " + } + }, + "errors": { + "target": "com.amazonaws.computeoptimizer#GetRecommendationErrors", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe errors of the request.

                          \n

                          For example, an error is returned if you request recommendations for an unsupported\n Auto Scaling group.

                          " } } } }, - "com.amazonaws.computeoptimizer#GetAutoScalingGroupRecommendationsResponse": { + "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendationsRequest" + }, + "output": { + "target": "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.computeoptimizer#AccessDeniedException" + }, + { + "target": "com.amazonaws.computeoptimizer#InternalServerException" + }, + { + "target": "com.amazonaws.computeoptimizer#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.computeoptimizer#MissingAuthenticationToken" + }, + { + "target": "com.amazonaws.computeoptimizer#OptInRequiredException" + }, + { + "target": "com.amazonaws.computeoptimizer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.computeoptimizer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.computeoptimizer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations.

                          \n\n

                          AWS Compute Optimizer generates recommendations for Amazon EBS volumes that meet a specific set of\n requirements. For more information, see the Supported resources and\n requirements in the AWS Compute Optimizer User Guide.

                          " + } + }, + "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendationsRequest": { "type": "structure", "members": { - "errors": { - "target": "com.amazonaws.computeoptimizer#GetRecommendationErrors", + "volumeArns": { + "target": "com.amazonaws.computeoptimizer#VolumeArns", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe errors of the request.

                          \n

                          For example, an error is returned if you request recommendations for an unsupported\n Auto Scaling group.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the volumes for which to return\n recommendations.

                          " } }, "nextToken": { "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { - "smithy.api#documentation": "

                          The token to use to advance to the next page of Auto Scaling group recommendations.

                          \n

                          This value is null when there are no more pages of Auto Scaling group recommendations to\n return.

                          " + "smithy.api#documentation": "

                          The token to advance to the next page of volume recommendations.

                          " } }, - "autoScalingGroupRecommendations": { - "target": "com.amazonaws.computeoptimizer#AutoScalingGroupRecommendations", + "maxResults": { + "target": "com.amazonaws.computeoptimizer#MaxResults", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe Auto Scaling group recommendations.

                          " + "smithy.api#documentation": "

                          The maximum number of volume recommendations to return with a single request.

                          \n

                          To retrieve the remaining results, make another request with the returned\n NextToken value.

                          " + } + }, + "filters": { + "target": "com.amazonaws.computeoptimizer#EBSFilters", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe a filter that returns a more specific list of volume\n recommendations.

                          " + } + }, + "accountIds": { + "target": "com.amazonaws.computeoptimizer#AccountIds", + "traits": { + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return volume recommendations.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to return volume recommendations.

                          \n

                          Only one account ID can be specified per request.

                          " + } + } + } + }, + "com.amazonaws.computeoptimizer#GetEBSVolumeRecommendationsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.computeoptimizer#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to advance to the next page of volume recommendations.

                          \n

                          This value is null when there are no more pages of volume recommendations to\n return.

                          " + } + }, + "volumeRecommendations": { + "target": "com.amazonaws.computeoptimizer#VolumeRecommendations", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe volume recommendations.

                          " + } + }, + "errors": { + "target": "com.amazonaws.computeoptimizer#GetRecommendationErrors", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe errors of the request.

                          \n

                          For example, an error is returned if you request recommendations for an unsupported\n volume.

                          " } } } @@ -1094,16 +1300,16 @@ "com.amazonaws.computeoptimizer#GetEC2InstanceRecommendationsRequest": { "type": "structure", "members": { - "nextToken": { - "target": "com.amazonaws.computeoptimizer#NextToken", + "instanceArns": { + "target": "com.amazonaws.computeoptimizer#InstanceArns", "traits": { - "smithy.api#documentation": "

                          The token to advance to the next page of instance recommendations.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the instances for which to return\n recommendations.

                          " } }, - "accountIds": { - "target": "com.amazonaws.computeoptimizer#AccountIds", + "nextToken": { + "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { - "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return instance recommendations.

                          \n

                          If your account is the master account of an organization, use this parameter to\n specify the member accounts for which you want to return instance\n recommendations.

                          \n

                          Only one account ID can be specified per request.

                          " + "smithy.api#documentation": "

                          The token to advance to the next page of instance recommendations.

                          " } }, "maxResults": { @@ -1118,10 +1324,10 @@ "smithy.api#documentation": "

                          An array of objects that describe a filter that returns a more specific list of\n instance recommendations.

                          " } }, - "instanceArns": { - "target": "com.amazonaws.computeoptimizer#InstanceArns", + "accountIds": { + "target": "com.amazonaws.computeoptimizer#AccountIds", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the instances for which to return\n recommendations.

                          " + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return instance recommendations.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to return instance\n recommendations.

                          \n

                          Only one account ID can be specified per request.

                          " } } } @@ -1129,18 +1335,18 @@ "com.amazonaws.computeoptimizer#GetEC2InstanceRecommendationsResponse": { "type": "structure", "members": { - "instanceRecommendations": { - "target": "com.amazonaws.computeoptimizer#InstanceRecommendations", - "traits": { - "smithy.api#documentation": "

                          An array of objects that describe instance recommendations.

                          " - } - }, "nextToken": { "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { "smithy.api#documentation": "

                          The token to use to advance to the next page of instance recommendations.

                          \n

                          This value is null when there are no more pages of instance recommendations to\n return.

                          " } }, + "instanceRecommendations": { + "target": "com.amazonaws.computeoptimizer#InstanceRecommendations", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe instance recommendations.

                          " + } + }, "errors": { "target": "com.amazonaws.computeoptimizer#GetRecommendationErrors", "traits": { @@ -1190,38 +1396,38 @@ "com.amazonaws.computeoptimizer#GetEC2RecommendationProjectedMetricsRequest": { "type": "structure", "members": { - "period": { - "target": "com.amazonaws.computeoptimizer#Period", + "instanceArn": { + "target": "com.amazonaws.computeoptimizer#InstanceArn", "traits": { - "smithy.api#documentation": "

                          The granularity, in seconds, of the projected metrics data points.

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

                          The Amazon Resource Name (ARN) of the instances for which to return recommendation\n projected metrics.

                          ", "smithy.api#required": {} } }, - "startTime": { - "target": "com.amazonaws.computeoptimizer#Timestamp", + "stat": { + "target": "com.amazonaws.computeoptimizer#MetricStatistic", "traits": { - "smithy.api#documentation": "

                          The time stamp of the first projected metrics data point to return.

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

                          The statistic of the projected metrics.

                          ", "smithy.api#required": {} } }, - "stat": { - "target": "com.amazonaws.computeoptimizer#MetricStatistic", + "period": { + "target": "com.amazonaws.computeoptimizer#Period", "traits": { - "smithy.api#documentation": "

                          The statistic of the projected metrics.

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

                          The granularity, in seconds, of the projected metrics data points.

                          ", "smithy.api#required": {} } }, - "endTime": { + "startTime": { "target": "com.amazonaws.computeoptimizer#Timestamp", "traits": { - "smithy.api#documentation": "

                          The time stamp of the last projected metrics data point to return.

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

                          The time stamp of the first projected metrics data point to return.

                          ", "smithy.api#required": {} } }, - "instanceArn": { - "target": "com.amazonaws.computeoptimizer#InstanceArn", + "endTime": { + "target": "com.amazonaws.computeoptimizer#Timestamp", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the instances for which to return recommendation\n projected metrics.

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

                          The time stamp of the last projected metrics data point to return.

                          ", "smithy.api#required": {} } } @@ -1267,7 +1473,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

                          \n

                          If the account is the master account of an organization, this action also confirms the\n enrollment status of member accounts within the organization.

                          " + "smithy.api#documentation": "

                          Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

                          \n

                          If the account is the management account of an organization, this action also confirms\n the enrollment status of member accounts within the organization.

                          " } }, "com.amazonaws.computeoptimizer#GetEnrollmentStatusRequest": { @@ -1277,10 +1483,10 @@ "com.amazonaws.computeoptimizer#GetEnrollmentStatusResponse": { "type": "structure", "members": { - "memberAccountsEnrolled": { - "target": "com.amazonaws.computeoptimizer#MemberAccountsEnrolled", + "status": { + "target": "com.amazonaws.computeoptimizer#Status", "traits": { - "smithy.api#documentation": "

                          Confirms the enrollment status of member accounts within the organization, if the\n account is a master account of an organization.

                          " + "smithy.api#documentation": "

                          The enrollment status of the account.

                          " } }, "statusReason": { @@ -1289,10 +1495,10 @@ "smithy.api#documentation": "

                          The reason for the enrollment status of the account.

                          \n

                          For example, an account might show a status of Pending because member\n accounts of an organization require more time to be enrolled in the service.

                          " } }, - "status": { - "target": "com.amazonaws.computeoptimizer#Status", + "memberAccountsEnrolled": { + "target": "com.amazonaws.computeoptimizer#MemberAccountsEnrolled", "traits": { - "smithy.api#documentation": "

                          The enrollment status of the account.

                          " + "smithy.api#documentation": "

                          Confirms the enrollment status of member accounts within the organization, if the\n account is a management account of an organization.

                          " } } } @@ -1300,6 +1506,12 @@ "com.amazonaws.computeoptimizer#GetRecommendationError": { "type": "structure", "members": { + "identifier": { + "target": "com.amazonaws.computeoptimizer#Identifier", + "traits": { + "smithy.api#documentation": "

                          The ID of the error.

                          " + } + }, "code": { "target": "com.amazonaws.computeoptimizer#Code", "traits": { @@ -1311,12 +1523,6 @@ "traits": { "smithy.api#documentation": "

                          The message, or reason, for the error.

                          " } - }, - "identifier": { - "target": "com.amazonaws.computeoptimizer#Identifier", - "traits": { - "smithy.api#documentation": "

                          The ID of the error.

                          " - } } }, "traits": { @@ -1367,6 +1573,12 @@ "com.amazonaws.computeoptimizer#GetRecommendationSummariesRequest": { "type": "structure", "members": { + "accountIds": { + "target": "com.amazonaws.computeoptimizer#AccountIds", + "traits": { + "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return recommendation summaries.

                          \n

                          If your account is the management account of an organization, use this parameter to\n specify the member accounts for which you want to return recommendation\n summaries.

                          \n

                          Only one account ID can be specified per request.

                          " + } + }, "nextToken": { "target": "com.amazonaws.computeoptimizer#NextToken", "traits": { @@ -1378,12 +1590,6 @@ "traits": { "smithy.api#documentation": "

                          The maximum number of recommendation summaries to return with a single request.

                          \n

                          To retrieve the remaining results, make another request with the returned\n NextToken value.

                          " } - }, - "accountIds": { - "target": "com.amazonaws.computeoptimizer#AccountIds", - "traits": { - "smithy.api#documentation": "

                          The IDs of the AWS accounts for which to return recommendation summaries.

                          \n

                          If your account is the master account of an organization, use this parameter to\n specify the member accounts for which you want to return recommendation\n summaries.

                          \n

                          Only one account ID can be specified per request.

                          " - } } } }, @@ -1425,22 +1631,10 @@ "com.amazonaws.computeoptimizer#InstanceRecommendation": { "type": "structure", "members": { - "instanceName": { - "target": "com.amazonaws.computeoptimizer#InstanceName", - "traits": { - "smithy.api#documentation": "

                          The name of the current instance.

                          " - } - }, - "currentInstanceType": { - "target": "com.amazonaws.computeoptimizer#CurrentInstanceType", - "traits": { - "smithy.api#documentation": "

                          The instance type of the current instance.

                          " - } - }, - "utilizationMetrics": { - "target": "com.amazonaws.computeoptimizer#UtilizationMetrics", + "instanceArn": { + "target": "com.amazonaws.computeoptimizer#InstanceArn", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the utilization metrics of the instance.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the current instance.

                          " } }, "accountId": { @@ -1449,28 +1643,28 @@ "smithy.api#documentation": "

                          The AWS account ID of the instance.

                          " } }, - "recommendationOptions": { - "target": "com.amazonaws.computeoptimizer#RecommendationOptions", + "instanceName": { + "target": "com.amazonaws.computeoptimizer#InstanceName", "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the recommendation options for the instance.

                          " + "smithy.api#documentation": "

                          The name of the current instance.

                          " + } + }, + "currentInstanceType": { + "target": "com.amazonaws.computeoptimizer#CurrentInstanceType", + "traits": { + "smithy.api#documentation": "

                          The instance type of the current instance.

                          " } }, "finding": { "target": "com.amazonaws.computeoptimizer#Finding", "traits": { - "smithy.api#documentation": "

                          The finding classification for the instance.

                          \n

                          Findings for instances include:

                          \n
                            \n
                          • \n

                            \n \n Underprovisioned\n —An instance is\n considered under-provisioned when at least one specification of your instance,\n such as CPU, memory, or network, does not meet the performance requirements of\n your workload. Under-provisioned instances may lead to poor application\n performance.

                            \n
                          • \n
                          • \n

                            \n \n Overprovisioned\n —An instance is\n considered over-provisioned when at least one specification of your instance,\n such as CPU, memory, or network, can be sized down while still meeting the\n performance requirements of your workload, and no specification is\n under-provisioned. Over-provisioned instances may lead to unnecessary\n infrastructure cost.

                            \n
                          • \n
                          • \n

                            \n \n Optimized\n —An instance is\n considered optimized when all specifications of your instance, such as CPU,\n memory, and network, meet the performance requirements of your workload and is\n not over provisioned. An optimized instance runs your workloads with optimal\n performance and infrastructure cost. For optimized resources, AWS Compute Optimizer might\n recommend a new generation instance type.

                            \n
                          • \n
                          \n \n

                          The values that are returned might be UNDER_PROVISIONED,\n OVER_PROVISIONED, or OPTIMIZED.

                          \n
                          " - } - }, - "instanceArn": { - "target": "com.amazonaws.computeoptimizer#InstanceArn", - "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the current instance.

                          " + "smithy.api#documentation": "

                          The finding classification for the instance.

                          \n

                          Findings for instances include:

                          \n
                            \n
                          • \n

                            \n \n Underprovisioned\n —An instance is\n considered under-provisioned when at least one specification of your instance,\n such as CPU, memory, or network, does not meet the performance requirements of\n your workload. Under-provisioned instances may lead to poor application\n performance.

                            \n
                          • \n
                          • \n

                            \n \n Overprovisioned\n —An instance is\n considered over-provisioned when at least one specification of your instance,\n such as CPU, memory, or network, can be sized down while still meeting the\n performance requirements of your workload, and no specification is\n under-provisioned. Over-provisioned instances may lead to unnecessary\n infrastructure cost.

                            \n
                          • \n
                          • \n

                            \n \n Optimized\n —An instance is\n considered optimized when all specifications of your instance, such as CPU,\n memory, and network, meet the performance requirements of your workload and is\n not over provisioned. An optimized instance runs your workloads with optimal\n performance and infrastructure cost. For optimized resources, AWS Compute Optimizer might\n recommend a new generation instance type.

                            \n
                          • \n
                          " } }, - "lastRefreshTimestamp": { - "target": "com.amazonaws.computeoptimizer#LastRefreshTimestamp", + "utilizationMetrics": { + "target": "com.amazonaws.computeoptimizer#UtilizationMetrics", "traits": { - "smithy.api#documentation": "

                          The time stamp of when the instance recommendation was last refreshed.

                          " + "smithy.api#documentation": "

                          An array of objects that describe the utilization metrics of the instance.

                          " } }, "lookBackPeriodInDays": { @@ -1479,11 +1673,23 @@ "smithy.api#documentation": "

                          The number of days for which utilization metrics were analyzed for the\n instance.

                          " } }, + "recommendationOptions": { + "target": "com.amazonaws.computeoptimizer#RecommendationOptions", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the recommendation options for the instance.

                          " + } + }, "recommendationSources": { "target": "com.amazonaws.computeoptimizer#RecommendationSources", "traits": { "smithy.api#documentation": "

                          An array of objects that describe the source resource of the recommendation.

                          " } + }, + "lastRefreshTimestamp": { + "target": "com.amazonaws.computeoptimizer#LastRefreshTimestamp", + "traits": { + "smithy.api#documentation": "

                          The time stamp of when the instance recommendation was last refreshed.

                          " + } } }, "traits": { @@ -1493,22 +1699,16 @@ "com.amazonaws.computeoptimizer#InstanceRecommendationOption": { "type": "structure", "members": { - "projectedUtilizationMetrics": { - "target": "com.amazonaws.computeoptimizer#ProjectedUtilizationMetrics", - "traits": { - "smithy.api#documentation": "

                          An array of objects that describe the projected utilization metrics of the instance\n recommendation option.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned. Additionally, the Memory metric is\n returned only for resources that have the unified CloudWatch agent installed on them. For\n more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " - } - }, "instanceType": { "target": "com.amazonaws.computeoptimizer#InstanceType", "traits": { "smithy.api#documentation": "

                          The instance type of the instance recommendation.

                          " } }, - "rank": { - "target": "com.amazonaws.computeoptimizer#Rank", + "projectedUtilizationMetrics": { + "target": "com.amazonaws.computeoptimizer#ProjectedUtilizationMetrics", "traits": { - "smithy.api#documentation": "

                          The rank of the instance recommendation option.

                          \n

                          The top recommendation option is ranked as 1.

                          " + "smithy.api#documentation": "

                          An array of objects that describe the projected utilization metrics of the instance\n recommendation option.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned. Additionally, the Memory metric is\n returned only for resources that have the unified CloudWatch agent installed on them. For\n more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " } }, "performanceRisk": { @@ -1516,6 +1716,12 @@ "traits": { "smithy.api#documentation": "

                          The performance risk of the instance recommendation option.

                          \n

                          Performance risk is the likelihood of the recommended instance type not meeting the\n performance requirement of your workload.

                          \n

                          The lowest performance risk is categorized as 0, and the highest as\n 5.

                          " } + }, + "rank": { + "target": "com.amazonaws.computeoptimizer#Rank", + "traits": { + "smithy.api#documentation": "

                          The rank of the instance recommendation option.

                          \n

                          The top recommendation option is ranked as 1.

                          " + } } }, "traits": { @@ -1563,18 +1769,18 @@ "name": { "target": "com.amazonaws.computeoptimizer#JobFilterName", "traits": { - "smithy.api#documentation": "

                          The name of the filter.

                          \n

                          Specify ResourceType to return export jobs of a specific resource type\n (e.g., Ec2Instance).

                          \n

                          Specify JobStatus to return export jobs with a specific status (e.g,\n Complete).

                          " + "smithy.api#documentation": "

                          The name of the filter.

                          \n\n

                          Specify ResourceType to return export jobs of a specific resource type\n (e.g., Ec2Instance).

                          \n\n

                          Specify JobStatus to return export jobs with a specific status (e.g,\n Complete).

                          " } }, "values": { "target": "com.amazonaws.computeoptimizer#FilterValues", "traits": { - "smithy.api#documentation": "

                          The value of the filter.

                          \n

                          If you specify the name parameter as ResourceType, the valid\n values are Ec2Instance or AutoScalingGroup.

                          \n

                          If you specify the name parameter as JobStatus, the valid\n values are Queued, InProgress, Complete, or\n Failed.

                          " + "smithy.api#documentation": "

                          The value of the filter.

                          \n\n

                          The valid values for this parameter are as follows, depending on what you specify for\n the name parameter:

                          \n\n
                            \n
                          • \n

                            Specify Ec2Instance or AutoScalingGroup if you\n specified the name parameter as ResourceType. There is\n no filter for EBS volumes because volume recommendations cannot be exported at\n this time.

                            \n
                          • \n
                          • \n

                            Specify Queued, InProgress, Complete,\n or Failed if you specified the name parameter as\n JobStatus.

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

                          Describes a filter that returns a more specific list of recommendation export\n jobs.

                          \n

                          This filter is used with the DescribeRecommendationExportJobs\n action.

                          " + "smithy.api#documentation": "

                          Describes a filter that returns a more specific list of recommendation export\n jobs.

                          \n\n

                          This filter is used with the DescribeRecommendationExportJobs\n action.

                          " } }, "com.amazonaws.computeoptimizer#JobFilterName": { @@ -1775,13 +1981,7 @@ "name": { "target": "com.amazonaws.computeoptimizer#MetricName", "traits": { - "smithy.api#documentation": "

                          The name of the projected utilization metric.

                          " - } - }, - "values": { - "target": "com.amazonaws.computeoptimizer#MetricValues", - "traits": { - "smithy.api#documentation": "

                          The values of the projected utilization metrics.

                          " + "smithy.api#documentation": "

                          The name of the projected utilization metric.

                          \n

                          The following projected utilization metrics are returned:

                          \n
                            \n
                          • \n

                            \n Cpu - The projected percentage of allocated EC2 compute units\n that would be in use on the recommendation option had you used that resource\n during the analyzed period. This metric identifies the processing power required\n to run an application on the recommendation option.

                            \n

                            Depending on the instance type, tools in your operating system can show a\n lower percentage than CloudWatch when the instance is not allocated a full\n processor core.

                            \n

                            Units: Percent

                            \n
                          • \n
                          • \n

                            \n Memory - The percentage of memory that would be in use on the\n recommendation option had you used that resource during the analyzed period.\n This metric identifies the amount of memory required to run an application on\n the recommendation option.

                            \n

                            Units: Percent

                            \n \n

                            The Memory metric is returned only for resources that have\n the unified CloudWatch agent installed on them. For more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                            \n
                            \n
                          • \n
                          " } }, "timestamps": { @@ -1789,10 +1989,16 @@ "traits": { "smithy.api#documentation": "

                          The time stamps of the projected utilization metric.

                          " } + }, + "values": { + "target": "com.amazonaws.computeoptimizer#MetricValues", + "traits": { + "smithy.api#documentation": "

                          The values of the projected utilization metrics.

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

                          Describes a projected utilization metric of a recommendation option, such as an Amazon EC2\n instance.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned when you run the\n GetEC2RecommendationProjectedMetrics action. Additionally, the\n Memory metric is returned only for resources that have the unified\n CloudWatch agent installed on them. For more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " + "smithy.api#documentation": "

                          Describes a projected utilization metric of a recommendation option, such as an Amazon EC2\n instance. This represents the projected utilization of a recommendation option had you\n used that resource during the analyzed period.

                          \n\n

                          Compare the utilization metric data of your resource against its projected utilization\n metric data to determine the performance difference between your current resource and\n the recommended option.

                          \n\n \n

                          The Cpu and Memory metrics are the only projected\n utilization metrics returned when you run the\n GetEC2RecommendationProjectedMetrics action. Additionally, the\n Memory metric is returned only for resources that have the unified\n CloudWatch agent installed on them. For more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                          \n
                          " } }, "com.amazonaws.computeoptimizer#ProjectedMetrics": { @@ -1813,16 +2019,22 @@ "com.amazonaws.computeoptimizer#RecommendationExportJob": { "type": "structure", "members": { + "jobId": { + "target": "com.amazonaws.computeoptimizer#JobId", + "traits": { + "smithy.api#documentation": "

                          The identification number of the export job.

                          " + } + }, "destination": { "target": "com.amazonaws.computeoptimizer#ExportDestination", "traits": { "smithy.api#documentation": "

                          An object that describes the destination of the export file.

                          " } }, - "creationTimestamp": { - "target": "com.amazonaws.computeoptimizer#CreationTimestamp", + "resourceType": { + "target": "com.amazonaws.computeoptimizer#ResourceType", "traits": { - "smithy.api#documentation": "

                          The timestamp of when the export job was created.

                          " + "smithy.api#documentation": "

                          The resource type of the exported recommendations.

                          " } }, "status": { @@ -1831,10 +2043,10 @@ "smithy.api#documentation": "

                          The status of the export job.

                          " } }, - "resourceType": { - "target": "com.amazonaws.computeoptimizer#ResourceType", + "creationTimestamp": { + "target": "com.amazonaws.computeoptimizer#CreationTimestamp", "traits": { - "smithy.api#documentation": "

                          The resource type of the exported recommendations.

                          " + "smithy.api#documentation": "

                          The timestamp of when the export job was created.

                          " } }, "lastUpdatedTimestamp": { @@ -1843,12 +2055,6 @@ "smithy.api#documentation": "

                          The timestamp of when the export job was last updated.

                          " } }, - "jobId": { - "target": "com.amazonaws.computeoptimizer#JobId", - "traits": { - "smithy.api#documentation": "

                          The identification number of the export job.

                          " - } - }, "failureReason": { "target": "com.amazonaws.computeoptimizer#FailureReason", "traits": { @@ -1875,17 +2081,17 @@ "com.amazonaws.computeoptimizer#RecommendationSource": { "type": "structure", "members": { - "recommendationSourceType": { - "target": "com.amazonaws.computeoptimizer#RecommendationSourceType", - "traits": { - "smithy.api#documentation": "

                          The resource type of the recommendation source.

                          " - } - }, "recommendationSourceArn": { "target": "com.amazonaws.computeoptimizer#RecommendationSourceArn", "traits": { "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the recommendation source.

                          " } + }, + "recommendationSourceType": { + "target": "com.amazonaws.computeoptimizer#RecommendationSourceType", + "traits": { + "smithy.api#documentation": "

                          The resource type of the recommendation source.

                          " + } } }, "traits": { @@ -1906,6 +2112,10 @@ { "value": "AutoScalingGroup", "name": "AUTO_SCALING_GROUP" + }, + { + "value": "EbsVolume", + "name": "EBS_VOLUME" } ] } @@ -1925,18 +2135,18 @@ "com.amazonaws.computeoptimizer#RecommendationSummary": { "type": "structure", "members": { - "recommendationResourceType": { - "target": "com.amazonaws.computeoptimizer#RecommendationSourceType", - "traits": { - "smithy.api#documentation": "

                          The resource type of the recommendation.

                          " - } - }, "summaries": { "target": "com.amazonaws.computeoptimizer#Summaries", "traits": { "smithy.api#documentation": "

                          An array of objects that describe a recommendation summary.

                          " } }, + "recommendationResourceType": { + "target": "com.amazonaws.computeoptimizer#RecommendationSourceType", + "traits": { + "smithy.api#documentation": "

                          The resource type of the recommendation.

                          " + } + }, "accountId": { "target": "com.amazonaws.computeoptimizer#AccountId", "traits": { @@ -2014,10 +2224,10 @@ "com.amazonaws.computeoptimizer#S3Destination": { "type": "structure", "members": { - "metadataKey": { - "target": "com.amazonaws.computeoptimizer#MetadataKey", + "bucket": { + "target": "com.amazonaws.computeoptimizer#DestinationBucket", "traits": { - "smithy.api#documentation": "

                          The Amazon S3 bucket key of a metadata file.

                          \n

                          The key uniquely identifies the object, or metadata file, in the S3 bucket.

                          " + "smithy.api#documentation": "

                          The name of the Amazon S3 bucket used as the destination of an export file.

                          " } }, "key": { @@ -2026,10 +2236,10 @@ "smithy.api#documentation": "

                          The Amazon S3 bucket key of an export file.

                          \n

                          The key uniquely identifies the object, or export file, in the S3 bucket.

                          " } }, - "bucket": { - "target": "com.amazonaws.computeoptimizer#DestinationBucket", + "metadataKey": { + "target": "com.amazonaws.computeoptimizer#MetadataKey", "traits": { - "smithy.api#documentation": "

                          The name of the Amazon S3 bucket used as the destination of an export file.

                          " + "smithy.api#documentation": "

                          The Amazon S3 bucket key of a metadata file.

                          \n

                          The key uniquely identifies the object, or metadata file, in the S3 bucket.

                          " } } }, @@ -2040,17 +2250,17 @@ "com.amazonaws.computeoptimizer#S3DestinationConfig": { "type": "structure", "members": { - "keyPrefix": { - "target": "com.amazonaws.computeoptimizer#DestinationKeyPrefix", - "traits": { - "smithy.api#documentation": "

                          The Amazon S3 bucket prefix for an export job.

                          " - } - }, "bucket": { "target": "com.amazonaws.computeoptimizer#DestinationBucket", "traits": { "smithy.api#documentation": "

                          The name of the Amazon S3 bucket to use as the destination for an export job.

                          " } + }, + "keyPrefix": { + "target": "com.amazonaws.computeoptimizer#DestinationKeyPrefix", + "traits": { + "smithy.api#documentation": "

                          The Amazon S3 bucket prefix for an export job.

                          " + } } }, "traits": { @@ -2179,24 +2389,24 @@ } ], "traits": { - "smithy.api#documentation": "

                          Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

                          \n

                          If the account is a master account of an organization, this action can also be used to\n enroll member accounts within the organization.

                          " + "smithy.api#documentation": "

                          Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer service.

                          \n

                          If the account is a management account of an organization, this action can also be used\n to enroll member accounts within the organization.

                          " } }, "com.amazonaws.computeoptimizer#UpdateEnrollmentStatusRequest": { "type": "structure", "members": { - "includeMemberAccounts": { - "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", - "traits": { - "smithy.api#documentation": "

                          Indicates whether to enroll member accounts of the organization if the your account is\n the master account of an organization.

                          " - } - }, "status": { "target": "com.amazonaws.computeoptimizer#Status", "traits": { "smithy.api#documentation": "

                          The new enrollment status of the account.

                          \n

                          Accepted options are Active or Inactive. You will get an\n error if Pending or Failed are specified.

                          ", "smithy.api#required": {} } + }, + "includeMemberAccounts": { + "target": "com.amazonaws.computeoptimizer#IncludeMemberAccounts", + "traits": { + "smithy.api#documentation": "

                          Indicates whether to enroll member accounts of the organization if the your account is\n the management account of an organization.

                          " + } } } }, @@ -2223,7 +2433,13 @@ "name": { "target": "com.amazonaws.computeoptimizer#MetricName", "traits": { - "smithy.api#documentation": "

                          The name of the utilization metric.

                          \n \n

                          The Memory metric is returned only for resources that have the\n unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent.

                          \n
                          " + "smithy.api#documentation": "

                          The name of the utilization metric.

                          \n

                          The following utilization metrics are available:

                          \n
                            \n
                          • \n

                            \n Cpu - The percentage of allocated EC2 compute units that are\n currently in use on the instance. This metric identifies the processing power\n required to run an application on the instance.

                            \n

                            Depending on the instance type, tools in your operating system can show a\n lower percentage than CloudWatch when the instance is not allocated a full\n processor core.

                            \n

                            Units: Percent

                            \n
                          • \n
                          • \n

                            \n Memory - The percentage of memory that is currently in use on the\n instance. This metric identifies the amount of memory required to run an\n application on the instance.

                            \n

                            Units: Percent

                            \n \n

                            The Memory metric is returned only for resources that have\n the unified CloudWatch agent installed on them. For more information, see Enabling Memory\n Utilization with the CloudWatch Agent.

                            \n
                            \n
                          • \n
                          • \n

                            \n EBS_READ_OPS_PER_SECOND - The completed read operations from all\n EBS volumes attached to the instance in a specified period of time.

                            \n

                            Unit: Count

                            \n
                          • \n
                          • \n

                            \n EBS_WRITE_OPS_PER_SECOND - The completed write operations to all\n EBS volumes attached to the instance in a specified period of time.

                            \n

                            Unit: Count

                            \n
                          • \n
                          • \n

                            \n EBS_READ_BYTES_PER_SECOND - The bytes read from all EBS volumes\n attached to the instance in a specified period of time.

                            \n

                            Unit: Bytes

                            \n
                          • \n
                          • \n

                            \n EBS_WRITE_BYTES_PER_SECOND - The bytes written to all EBS volumes\n attached to the instance in a specified period of time.

                            \n

                            Unit: Bytes

                            \n
                          • \n
                          " + } + }, + "statistic": { + "target": "com.amazonaws.computeoptimizer#MetricStatistic", + "traits": { + "smithy.api#documentation": "

                          The statistic of the utilization metric.

                          \n

                          The following statistics are available:

                          \n
                            \n
                          • \n

                            \n Average - This is the value of Sum / SampleCount during the\n specified period, or the average value observed during the specified\n period.

                            \n
                          • \n
                          • \n

                            \n Maximum - The highest value observed during the specified period.\n Use this value to determine high volumes of activity for your\n application.

                            \n
                          • \n
                          " } }, "value": { @@ -2231,23 +2447,182 @@ "traits": { "smithy.api#documentation": "

                          The value of the utilization metric.

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

                          Describes a utilization metric of a resource, such as an Amazon EC2 instance.

                          \n\n

                          Compare the utilization metric data of your resource against its projected utilization\n metric data to determine the performance difference between your current resource and\n the recommended option.

                          " + } + }, + "com.amazonaws.computeoptimizer#UtilizationMetrics": { + "type": "list", + "member": { + "target": "com.amazonaws.computeoptimizer#UtilizationMetric" + } + }, + "com.amazonaws.computeoptimizer#VolumeArn": { + "type": "string" + }, + "com.amazonaws.computeoptimizer#VolumeArns": { + "type": "list", + "member": { + "target": "com.amazonaws.computeoptimizer#VolumeArn" + } + }, + "com.amazonaws.computeoptimizer#VolumeBaselineIOPS": { + "type": "integer" + }, + "com.amazonaws.computeoptimizer#VolumeBaselineThroughput": { + "type": "integer" + }, + "com.amazonaws.computeoptimizer#VolumeBurstIOPS": { + "type": "integer" + }, + "com.amazonaws.computeoptimizer#VolumeBurstThroughput": { + "type": "integer" + }, + "com.amazonaws.computeoptimizer#VolumeConfiguration": { + "type": "structure", + "members": { + "volumeType": { + "target": "com.amazonaws.computeoptimizer#VolumeType", + "traits": { + "smithy.api#documentation": "

                          The volume type.

                          \n

                          This can be gp2 for General Purpose SSD, io1 or\n io2 for Provisioned IOPS SSD, st1 for Throughput Optimized\n HDD, sc1 for Cold HDD, or standard for Magnetic\n volumes.

                          " + } }, - "statistic": { - "target": "com.amazonaws.computeoptimizer#MetricStatistic", + "volumeSize": { + "target": "com.amazonaws.computeoptimizer#VolumeSize", + "traits": { + "smithy.api#documentation": "

                          The size of the volume, in GiB.

                          " + } + }, + "volumeBaselineIOPS": { + "target": "com.amazonaws.computeoptimizer#VolumeBaselineIOPS", + "traits": { + "smithy.api#documentation": "

                          The baseline IOPS of the volume.

                          " + } + }, + "volumeBurstIOPS": { + "target": "com.amazonaws.computeoptimizer#VolumeBurstIOPS", + "traits": { + "smithy.api#documentation": "

                          The burst IOPS of the volume.

                          " + } + }, + "volumeBaselineThroughput": { + "target": "com.amazonaws.computeoptimizer#VolumeBaselineThroughput", "traits": { - "smithy.api#documentation": "

                          The statistic of the utilization metric.

                          " + "smithy.api#documentation": "

                          The baseline throughput of the volume.

                          " + } + }, + "volumeBurstThroughput": { + "target": "com.amazonaws.computeoptimizer#VolumeBurstThroughput", + "traits": { + "smithy.api#documentation": "

                          The burst throughput of the volume.

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

                          Describes a utilization metric of a resource, such as an Amazon EC2 instance.

                          " + "smithy.api#documentation": "

                          Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) volume.

                          " } }, - "com.amazonaws.computeoptimizer#UtilizationMetrics": { + "com.amazonaws.computeoptimizer#VolumeRecommendation": { + "type": "structure", + "members": { + "volumeArn": { + "target": "com.amazonaws.computeoptimizer#VolumeArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the current volume.

                          " + } + }, + "accountId": { + "target": "com.amazonaws.computeoptimizer#AccountId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID of the volume.

                          " + } + }, + "currentConfiguration": { + "target": "com.amazonaws.computeoptimizer#VolumeConfiguration", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the current configuration of the volume.

                          " + } + }, + "finding": { + "target": "com.amazonaws.computeoptimizer#EBSFinding", + "traits": { + "smithy.api#documentation": "

                          The finding classification for the volume.

                          \n

                          Findings for volumes include:

                          \n
                            \n
                          • \n

                            \n \n NotOptimized\n —A volume is\n considered not optimized when AWS Compute Optimizer identifies a recommendation that can\n provide better performance for your workload.

                            \n \n
                          • \n
                          • \n

                            \n \n Optimized\n —An volume is\n considered optimized when Compute Optimizer determines that the volume is correctly\n provisioned to run your workload based on the chosen volume type. For optimized\n resources, Compute Optimizer might recommend a new generation volume type.

                            \n \n
                          • \n
                          " + } + }, + "utilizationMetrics": { + "target": "com.amazonaws.computeoptimizer#EBSUtilizationMetrics", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the utilization metrics of the volume.

                          " + } + }, + "lookBackPeriodInDays": { + "target": "com.amazonaws.computeoptimizer#LookBackPeriodInDays", + "traits": { + "smithy.api#documentation": "

                          The number of days for which utilization metrics were analyzed for the volume.

                          " + } + }, + "volumeRecommendationOptions": { + "target": "com.amazonaws.computeoptimizer#VolumeRecommendationOptions", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe the recommendation options for the volume.

                          " + } + }, + "lastRefreshTimestamp": { + "target": "com.amazonaws.computeoptimizer#LastRefreshTimestamp", + "traits": { + "smithy.api#documentation": "

                          The time stamp of when the volume recommendation was last refreshed.

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

                          Describes an Amazon Elastic Block Store (Amazon EBS) volume recommendation.

                          " + } + }, + "com.amazonaws.computeoptimizer#VolumeRecommendationOption": { + "type": "structure", + "members": { + "configuration": { + "target": "com.amazonaws.computeoptimizer#VolumeConfiguration", + "traits": { + "smithy.api#documentation": "

                          An array of objects that describe a volume configuration.

                          " + } + }, + "performanceRisk": { + "target": "com.amazonaws.computeoptimizer#PerformanceRisk", + "traits": { + "smithy.api#documentation": "

                          The performance risk of the volume recommendation option.

                          \n

                          Performance risk is the likelihood of the recommended volume type not meeting the\n performance requirement of your workload.

                          \n

                          The lowest performance risk is categorized as 0, and the highest as\n 5.

                          " + } + }, + "rank": { + "target": "com.amazonaws.computeoptimizer#Rank", + "traits": { + "smithy.api#documentation": "

                          The rank of the volume recommendation option.

                          \n

                          The top recommendation option is ranked as 1.

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

                          Describes a recommendation option for an Amazon Elastic Block Store (Amazon EBS) instance.

                          " + } + }, + "com.amazonaws.computeoptimizer#VolumeRecommendationOptions": { "type": "list", "member": { - "target": "com.amazonaws.computeoptimizer#UtilizationMetric" + "target": "com.amazonaws.computeoptimizer#VolumeRecommendationOption" } + }, + "com.amazonaws.computeoptimizer#VolumeRecommendations": { + "type": "list", + "member": { + "target": "com.amazonaws.computeoptimizer#VolumeRecommendation" + } + }, + "com.amazonaws.computeoptimizer#VolumeSize": { + "type": "integer" + }, + "com.amazonaws.computeoptimizer#VolumeType": { + "type": "string" } } } diff --git a/codegen/sdk-codegen/aws-models/customer-profiles.2020-08-15.json b/codegen/sdk-codegen/aws-models/customer-profiles.2020-08-15.json new file mode 100644 index 0000000000000..01f276cd85a43 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/customer-profiles.2020-08-15.json @@ -0,0 +1,3729 @@ +{ + "smithy": "1.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.customerprofiles#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message" + } + }, + "traits": { + "smithy.api#documentation": "

                          You do not have sufficient access to perform this action.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.customerprofiles#AddProfileKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#AddProfileKeyRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#AddProfileKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Associates a new key value with a specific profile, such as a Contact Trace Record (CTR)\n ContactId.

                          \n

                          A profile object can have a single unique key and any number of additional keys that can\n be used to identify the profile that it belongs to.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/keys", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#AddProfileKeyRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "KeyName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A searchable identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#requestValueList", + "traits": { + "smithy.api#documentation": "

                          A list of key values.

                          ", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#AddProfileKeyResponse": { + "type": "structure", + "members": { + "KeyName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A searchable identifier of a customer profile.

                          " + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#requestValueList", + "traits": { + "smithy.api#documentation": "

                          A list of key values.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#Address": { + "type": "structure", + "members": { + "Address1": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The first line of a customer address.

                          " + } + }, + "Address2": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The second line of a customer address.

                          " + } + }, + "Address3": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The third line of a customer address.

                          " + } + }, + "Address4": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The fourth line of a customer address.

                          " + } + }, + "City": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The city in which a customer lives.

                          " + } + }, + "County": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The county in which a customer lives.

                          " + } + }, + "State": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The state in which a customer lives.

                          " + } + }, + "Province": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The province in which a customer lives.

                          " + } + }, + "Country": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The country in which a customer lives.

                          " + } + }, + "PostalCode": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The postal code of a customer address.

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

                          A generic address associated with the customer that is not mailing, shipping, or\n billing.

                          " + } + }, + "com.amazonaws.customerprofiles#Attributes": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "value": { + "target": "com.amazonaws.customerprofiles#string1To255" + } + }, + "com.amazonaws.customerprofiles#BadRequestException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The input you provided is invalid.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.customerprofiles#CreateDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateDomainRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a domain, which is a container for all customer data, such as customer profile\n attributes, object types, profile keys, and encryption keys. You can create multiple\n domains, and each domain can have multiple third-party integrations.

                          \n

                          Each Amazon Connect instance can be associated with only one domain. Multiple Amazon\n Connect instances can be associated with one domain.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The default number of days until the data within the domain expires.

                          ", + "smithy.api#required": {} + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

                          " + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

                          The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications. You must set up a policy on the\n DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to\n send messages to the DeadLetterQueue.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#CreateDomainResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The default number of days until the data within the domain expires.

                          ", + "smithy.api#required": {} + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

                          " + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

                          The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

                          " + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#CreateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a standard profile.

                          \n

                          A standard profile represents the following attributes for a customer profile in a\n domain.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateProfileRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          A unique account number that you have given to the customer.

                          " + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

                          Any additional information relevant to the customer's profile.

                          " + } + }, + "PartyType": { + "target": "com.amazonaws.customerprofiles#PartyType", + "traits": { + "smithy.api#documentation": "

                          The type of profile used to describe the customer.

                          " + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The name of the customer’s business.

                          " + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s first name.

                          " + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s middle name.

                          " + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s last name.

                          " + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s birth date.

                          " + } + }, + "Gender": { + "target": "com.amazonaws.customerprofiles#Gender", + "traits": { + "smithy.api#documentation": "

                          The gender with which the customer identifies.

                          " + } + }, + "PhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer's phone number, which has not been specified as a mobile, home, or business\n number.

                          " + } + }, + "MobilePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s mobile phone number.

                          " + } + }, + "HomePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s home phone number.

                          " + } + }, + "BusinessPhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s business phone number.

                          " + } + }, + "EmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer's email address, which has not been specified as a personal or business\n address.

                          " + } + }, + "PersonalEmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s personal email address.

                          " + } + }, + "BusinessEmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s business email address.

                          " + } + }, + "Address": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          A generic address associated with the customer that is not mailing, shipping, or\n billing.

                          " + } + }, + "ShippingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s shipping address.

                          " + } + }, + "MailingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s mailing address.

                          " + } + }, + "BillingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s billing address.

                          " + } + }, + "Attributes": { + "target": "com.amazonaws.customerprofiles#Attributes", + "traits": { + "smithy.api#documentation": "

                          A key value pair of attributes of a customer profile.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#CreateProfileResponse": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#CustomerProfiles_20200815": { + "type": "service", + "version": "2020-08-15", + "operations": [ + { + "target": "com.amazonaws.customerprofiles#AddProfileKey" + }, + { + "target": "com.amazonaws.customerprofiles#CreateDomain" + }, + { + "target": "com.amazonaws.customerprofiles#CreateProfile" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteDomain" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteIntegration" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteProfile" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteProfileKey" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteProfileObject" + }, + { + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectType" + }, + { + "target": "com.amazonaws.customerprofiles#GetDomain" + }, + { + "target": "com.amazonaws.customerprofiles#GetIntegration" + }, + { + "target": "com.amazonaws.customerprofiles#GetProfileObjectType" + }, + { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate" + }, + { + "target": "com.amazonaws.customerprofiles#ListAccountIntegrations" + }, + { + "target": "com.amazonaws.customerprofiles#ListDomains" + }, + { + "target": "com.amazonaws.customerprofiles#ListIntegrations" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjects" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypes" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplates" + }, + { + "target": "com.amazonaws.customerprofiles#ListTagsForResource" + }, + { + "target": "com.amazonaws.customerprofiles#PutIntegration" + }, + { + "target": "com.amazonaws.customerprofiles#PutProfileObject" + }, + { + "target": "com.amazonaws.customerprofiles#PutProfileObjectType" + }, + { + "target": "com.amazonaws.customerprofiles#SearchProfiles" + }, + { + "target": "com.amazonaws.customerprofiles#TagResource" + }, + { + "target": "com.amazonaws.customerprofiles#UntagResource" + }, + { + "target": "com.amazonaws.customerprofiles#UpdateDomain" + }, + { + "target": "com.amazonaws.customerprofiles#UpdateProfile" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Customer Profiles", + "arnNamespace": "profile", + "cloudFormationName": "CustomerProfiles", + "cloudTrailEventSource": "customerprofiles.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "profile" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "Amazon Connect Customer Profiles\n

                          Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides\n information about the Amazon Connect Customer Profiles API, including supported operations,\n data types, parameters, and schemas.

                          \n

                          Amazon Connect Customer Profiles is a unified customer profile for your contact center\n that has pre-built connectors powered by AppFlow that make it easy to combine customer\n information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and\n your enterprise resource planning (ERP), with contact history from your Amazon Connect\n contact center.

                          \n

                          If you're new to Amazon Connect, you might find it helpful to also review the Amazon Connect Administrator Guide.

                          ", + "smithy.api#title": "Amazon Connect Customer Profiles" + } + }, + "com.amazonaws.customerprofiles#DeleteDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteDomainRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a specific domain and all of its customer data, such as customer profile\n attributes and their related objects.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domains/{DomainName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteDomainResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteIntegrationRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteIntegrationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes an integration from a specific domain.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/integrations/delete", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteIntegrationRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteIntegrationResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the standard customer profile and all data pertaining to the profile.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/delete", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileKey": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteProfileKeyRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteProfileKeyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes a searchable key from a customer profile.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/keys/delete", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileKeyRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "KeyName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A searchable identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#requestValueList", + "traits": { + "smithy.api#documentation": "

                          A list of key values.

                          ", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileKeyResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes an object associated with a profile of a given ProfileObjectType.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/objects/delete", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "ProfileObjectUniqueKey": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of the profile object generated by the service.

                          ", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectType": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectTypeRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectTypeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes a ProfileObjectType from a specific domain as well as removes all the\n ProfileObjects of that type. It also disables integrations from this specific\n ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that\n were populated from this ProfileObjectType.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectTypeRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectTypeResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#DeleteProfileResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

                          A message that indicates the delete request is done.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#DomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListDomainItem" + } + }, + "com.amazonaws.customerprofiles#DomainStats": { + "type": "structure", + "members": { + "ProfileCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#documentation": "

                          The total number of profiles currently in the domain.

                          " + } + }, + "MeteringProfileCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#documentation": "

                          The number of profiles that you are currently paying for in the domain. If you have more\n than 100 objects associated with a single profile, that profile counts as two profiles. If\n you have more than 200 objects, that profile counts as three, and so on.

                          " + } + }, + "ObjectCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#documentation": "

                          The total number of objects in domain.

                          " + } + }, + "TotalSize": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#documentation": "

                          The total size, in bytes, of all objects in the domain.

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

                          Usage-specific statistics about the domain.

                          " + } + }, + "com.amazonaws.customerprofiles#FieldContentType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "STRING", + "name": "STRING" + }, + { + "value": "NUMBER", + "name": "NUMBER" + }, + { + "value": "PHONE_NUMBER", + "name": "PHONE_NUMBER" + }, + { + "value": "EMAIL_ADDRESS", + "name": "EMAIL_ADDRESS" + }, + { + "value": "NAME", + "name": "NAME" + } + ] + } + }, + "com.amazonaws.customerprofiles#FieldMap": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#name" + }, + "value": { + "target": "com.amazonaws.customerprofiles#ObjectTypeField" + } + }, + "com.amazonaws.customerprofiles#FieldNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#name" + } + }, + "com.amazonaws.customerprofiles#Gender": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MALE", + "name": "MALE" + }, + { + "value": "FEMALE", + "name": "FEMALE" + }, + { + "value": "UNSPECIFIED", + "name": "UNSPECIFIED" + } + ] + } + }, + "com.amazonaws.customerprofiles#GetDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetDomainRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns information about a specific domain.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique name for the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#GetDomainResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The default number of days until the data within the domain expires.

                          " + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

                          " + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

                          The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

                          " + } + }, + "Stats": { + "target": "com.amazonaws.customerprofiles#DomainStats", + "traits": { + "smithy.api#documentation": "

                          Usage-specific statistics about the domain.

                          " + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#GetIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetIntegrationRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetIntegrationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns an integration for a domain.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/integrations", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetIntegrationRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#GetIntegrationResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          ", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectType": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns the object types for a specific domain.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse": { + "type": "structure", + "members": { + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          The description of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          " + } + }, + "ExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The number of days until the data in the object expires.

                          " + } + }, + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The customer-provided key to encrypt the profile object that will be created in this\n profile object type.

                          " + } + }, + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

                          " + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

                          A map of the name and ObjectType field.

                          " + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

                          A list of unique keys that can be used to map data to the profile.

                          " + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          " + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns the template information for a specific object type.

                          \n

                          A template is a predefined ProfileObjectType, such as “Salesforce-Account” or\n “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API,\n with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the\n template.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/templates/{TemplateId}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest": { + "type": "structure", + "members": { + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse": { + "type": "structure", + "members": { + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          " + } + }, + "SourceName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The name of the source of the object template.

                          " + } + }, + "SourceObject": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The source of the object template.

                          " + } + }, + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

                          " + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

                          A map of the name and ObjectType field.

                          " + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

                          A list of unique keys that can be used to map data to the profile.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#IntegrationList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListIntegrationItem" + } + }, + "com.amazonaws.customerprofiles#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message" + } + }, + "traits": { + "smithy.api#documentation": "

                          An internal service error occurred.

                          ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.customerprofiles#KeyMap": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#name" + }, + "value": { + "target": "com.amazonaws.customerprofiles#ObjectTypeKeyList" + } + }, + "com.amazonaws.customerprofiles#ListAccountIntegrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListAccountIntegrationsRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListAccountIntegrationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all of the integrations associated to a specific URI in the AWS account.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/integrations", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListAccountIntegrationsRequest": { + "type": "structure", + "members": { + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListAccountIntegrations API call.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + } + } + }, + "com.amazonaws.customerprofiles#ListAccountIntegrationsResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#IntegrationList", + "traits": { + "smithy.api#documentation": "

                          The list of ListAccountIntegration instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListAccountIntegrations API call.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListDomainItem": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

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

                          An object in a list that represents a domain.

                          " + } + }, + "com.amazonaws.customerprofiles#ListDomains": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListDomainsRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListDomainsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns a list of all the domains for an AWS account that have been created.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/domains", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListDomainsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListDomain API call.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + } + } + }, + "com.amazonaws.customerprofiles#ListDomainsResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#DomainList", + "traits": { + "smithy.api#documentation": "

                          The list of ListDomains instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListDomains API call.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListIntegrationItem": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          ", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

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

                          An integration in list of integrations.

                          " + } + }, + "com.amazonaws.customerprofiles#ListIntegrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListIntegrationsRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListIntegrationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all of the integrations in your domain.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/integrations", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListIntegrationsRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListIntegrations API call.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + } + } + }, + "com.amazonaws.customerprofiles#ListIntegrationsResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#IntegrationList", + "traits": { + "smithy.api#documentation": "

                          The list of ListIntegrations instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListIntegrations API call.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypeItem": { + "type": "structure", + "members": { + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          Description of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          " + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

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

                          A ProfileObjectType instance.

                          " + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplateItem": { + "type": "structure", + "members": { + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          " + } + }, + "SourceName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The name of the source of the object template.

                          " + } + }, + "SourceObject": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The source of the object template.

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

                          A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.

                          " + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplates": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplatesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all of the template information for object types.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/templates", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplatesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListObjectTypeTemplates API call.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplatesResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#ProfileObjectTypeTemplateList", + "traits": { + "smithy.api#documentation": "

                          The list of ListProfileObjectType template instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous ListObjectTypeTemplates API call.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all of the templates available within the service.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/object-types", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypesRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          Identifies the next page of results to return.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectTypesResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#ProfileObjectTypeList", + "traits": { + "smithy.api#documentation": "

                          The list of ListProfileObjectTypes instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          Identifies the next page of results to return.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjects": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectsRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns a list of objects associated with a profile of a given ProfileObjectType.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/objects", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectsItem": { + "type": "structure", + "members": { + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          Specifies the kind of object being added to a profile, such as\n \"Salesforce-Account.\"

                          " + } + }, + "ProfileObjectUniqueKey": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of the ProfileObject generated by the service.

                          " + } + }, + "Object": { + "target": "com.amazonaws.customerprofiles#stringifiedJson", + "traits": { + "smithy.api#documentation": "

                          A JSON representation of a ProfileObject that belongs to a profile.

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

                          A ProfileObject in a list of ProfileObjects.

                          " + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous call to ListProfileObjects.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#ListProfileObjectsResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#ProfileObjectList", + "traits": { + "smithy.api#documentation": "

                          The list of ListProfileObject instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous call to ListProfileObjects.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Displays the tags associated with an Amazon Connect Customer Profiles resource. In\n Connect Customer Profiles, domains, profile object types, and integrations can be\n tagged.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.customerprofiles#TagArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the resource for which you want to view tags.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ObjectTypeField": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          A field of a ProfileObject. For example: _source.FirstName, where “_source” is a\n ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

                          " + } + }, + "Target": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          The location of the data in the standard ProfileObject model. For example:\n _profile.Address.PostalCode.

                          " + } + }, + "ContentType": { + "target": "com.amazonaws.customerprofiles#FieldContentType", + "traits": { + "smithy.api#documentation": "

                          The content type of the field. Used for determining equality when searching.

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

                          Represents a field in a ProfileObjectType.

                          " + } + }, + "com.amazonaws.customerprofiles#ObjectTypeKey": { + "type": "structure", + "members": { + "StandardIdentifiers": { + "target": "com.amazonaws.customerprofiles#StandardIdentifierList", + "traits": { + "smithy.api#documentation": "

                          The types of keys that a ProfileObject can have. Each ProfileObject can have only 1\n UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be used to tie an\n object to a PROFILE. UNIQUE means that it can be used to uniquely identify an object. If a\n key a is marked as SECONDARY, it will be used to search for profiles after all other\n PROFILE keys have been searched. A LOOKUP_ONLY key is only used to match a profile but is\n not persisted to be used for searching of the profile. A NEW_ONLY key is only used if the\n profile does not already exist before the object is ingested, otherwise it is only used for\n matching objects to profiles.

                          " + } + }, + "FieldNames": { + "target": "com.amazonaws.customerprofiles#FieldNameList", + "traits": { + "smithy.api#documentation": "

                          The reference for the key name of the fields map.

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

                          An object that defines the Key element of a ProfileObject. A Key is a special element\n that can be used to search for a customer profile.

                          " + } + }, + "com.amazonaws.customerprofiles#ObjectTypeKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ObjectTypeKey" + } + }, + "com.amazonaws.customerprofiles#PartyType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "INDIVIDUAL", + "name": "INDIVIDUAL" + }, + { + "value": "BUSINESS", + "name": "BUSINESS" + }, + { + "value": "OTHER", + "name": "OTHER" + } + ] + } + }, + "com.amazonaws.customerprofiles#Profile": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          " + } + }, + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          A unique account number that you have given to the customer.

                          " + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

                          Any additional information relevant to the customer's profile.

                          " + } + }, + "PartyType": { + "target": "com.amazonaws.customerprofiles#PartyType", + "traits": { + "smithy.api#documentation": "

                          The type of profile used to describe the customer.

                          " + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The name of the customer’s business.

                          " + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s first name.

                          " + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s middle name.

                          " + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s last name.

                          " + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s birth date.

                          " + } + }, + "Gender": { + "target": "com.amazonaws.customerprofiles#Gender", + "traits": { + "smithy.api#documentation": "

                          The gender with which the customer identifies.

                          " + } + }, + "PhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer's phone number, which has not been specified as a mobile, home, or business\n number.

                          " + } + }, + "MobilePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s mobile phone number.

                          " + } + }, + "HomePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s home phone number.

                          " + } + }, + "BusinessPhoneNumber": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s home phone number.

                          " + } + }, + "EmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer's email address, which has not been specified as a personal or business\n address.

                          " + } + }, + "PersonalEmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s personal email address.

                          " + } + }, + "BusinessEmailAddress": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s business email address.

                          " + } + }, + "Address": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          A generic address associated with the customer that is not mailing, shipping, or\n billing.

                          " + } + }, + "ShippingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s shipping address.

                          " + } + }, + "MailingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s mailing address.

                          " + } + }, + "BillingAddress": { + "target": "com.amazonaws.customerprofiles#Address", + "traits": { + "smithy.api#documentation": "

                          The customer’s billing address.

                          " + } + }, + "Attributes": { + "target": "com.amazonaws.customerprofiles#Attributes", + "traits": { + "smithy.api#documentation": "

                          A key value pair of attributes of a customer profile.

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

                          The standard profile of a customer.

                          " + } + }, + "com.amazonaws.customerprofiles#ProfileList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#Profile" + } + }, + "com.amazonaws.customerprofiles#ProfileObjectList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectsItem" + } + }, + "com.amazonaws.customerprofiles#ProfileObjectTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeItem" + } + }, + "com.amazonaws.customerprofiles#ProfileObjectTypeTemplateList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplateItem" + } + }, + "com.amazonaws.customerprofiles#PutIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#PutIntegrationRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#PutIntegrationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Adds an integration between the service and a third-party service, which includes Amazon\n AppFlow and Amazon Connect.

                          \n

                          An integration can belong to only one domain.

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/domains/{DomainName}/integrations", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#PutIntegrationRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          ", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#PutIntegrationResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The URI of the S3 bucket or any other type of data source.

                          ", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObject": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#PutProfileObjectRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#PutProfileObjectResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Adds additional objects to customer profiles of a given ObjectType.

                          \n

                          When adding a specific profile object, like a Contact Trace Record (CTR), an inferred\n profile can get created if it is not mapped to an existing profile. The resulting profile\n will only have a phone number populated in the standard ProfileObject. Any additional CTRs\n with the same phone number will be mapped to the same inferred profile.

                          \n

                          When a ProfileObject is created and if a ProfileObjectType already exists for the\n ProfileObject, it will provide data to a standard profile depending on the\n ProfileObjectType definition.

                          \n

                          PutProfileObject needs an ObjectType, which can be created using\n PutProfileObjectType.

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/domains/{DomainName}/profiles/objects", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObjectRequest": { + "type": "structure", + "members": { + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "Object": { + "target": "com.amazonaws.customerprofiles#stringifiedJson", + "traits": { + "smithy.api#documentation": "

                          A string that is serialized from a JSON object.

                          ", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObjectResponse": { + "type": "structure", + "members": { + "ProfileObjectUniqueKey": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of the profile object generated by the service.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObjectType": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#PutProfileObjectTypeRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#PutProfileObjectTypeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Defines a ProfileObjectType.

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObjectTypeRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          Description of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          " + } + }, + "ExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The number of days until the data in the object expires.

                          " + } + }, + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The customer-provided key to encrypt the profile object that will be created in this\n profile object type.

                          " + } + }, + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

                          " + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

                          A map of the name and ObjectType field.

                          " + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

                          A list of unique keys that can be used to map data to the profile.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#PutProfileObjectTypeResponse": { + "type": "structure", + "members": { + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

                          The name of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#text", + "traits": { + "smithy.api#documentation": "

                          Description of the profile object type.

                          ", + "smithy.api#required": {} + } + }, + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A unique identifier for the object template.

                          " + } + }, + "ExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The number of days until the data in the object expires.

                          " + } + }, + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The customer-provided key to encrypt the profile object that will be created in this\n profile object type.

                          " + } + }, + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

                          " + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

                          A map of the name and ObjectType field.

                          " + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

                          A list of unique keys that can be used to map data to the profile.

                          " + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          " + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The requested resource does not exist, or access was denied.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.customerprofiles#SearchProfiles": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#SearchProfilesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#SearchProfilesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Searches for profiles within a specific domain name using name, phone number, email\n address, account number, or a custom defined index.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles/search", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#SearchProfilesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous SearchProfiles API call.

                          ", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

                          The maximum number of objects returned per page.

                          ", + "smithy.api#httpQuery": "max-results" + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "KeyName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          A searchable identifier of a customer profile. The predefined keys you can use to search\n include: _account, _profileId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId,\n _salesforceAccountId, _salesforceContactId, _zendeskUserId, _zendeskExternalId,\n _serviceNowSystemId.

                          ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#requestValueList", + "traits": { + "smithy.api#documentation": "

                          A list of key values.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#SearchProfilesResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#ProfileList", + "traits": { + "smithy.api#documentation": "

                          The list of SearchProfiles instances.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

                          The pagination token from the previous SearchProfiles API call.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#StandardIdentifier": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PROFILE", + "name": "PROFILE" + }, + { + "value": "UNIQUE", + "name": "UNIQUE" + }, + { + "value": "SECONDARY", + "name": "SECONDARY" + }, + { + "value": "LOOKUP_ONLY", + "name": "LOOKUP_ONLY" + }, + { + "value": "NEW_ONLY", + "name": "NEW_ONLY" + } + ] + } + }, + "com.amazonaws.customerprofiles#StandardIdentifierList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#StandardIdentifier" + } + }, + "com.amazonaws.customerprofiles#TagArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^arn:[a-z0-9]{1,10}:profile" + } + }, + "com.amazonaws.customerprofiles#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" + } + }, + "com.amazonaws.customerprofiles#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.customerprofiles#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#TagKey" + }, + "value": { + "target": "com.amazonaws.customerprofiles#TagValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.customerprofiles#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer\n Profiles resource. Tags can help you organize and categorize your resources. You can also\n use them to scope user permissions by granting a user permission to access or change only\n resources with certain tag values. In Connect Customer Profiles, domains, profile object\n types, and integrations can be tagged.

                          \n

                          Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of\n characters.

                          \n

                          You can use the TagResource action with a resource that already has tags. If you specify\n a new tag key, this tag is appended to the list of tags associated with the resource. If\n you specify a tag key that is already associated with the resource, the new tag value that\n you specify replaces the previous value for that tag.

                          \n

                          You can associate as many as 50 tags with a resource.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.customerprofiles#TagArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the resource that you're adding tags to.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.customerprofiles#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, + "com.amazonaws.customerprofiles#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message" + } + }, + "traits": { + "smithy.api#documentation": "

                          You exceeded the maximum number of requests.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.customerprofiles#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes one or more tags from the specified Amazon Connect Customer Profiles resource.\n In Connect Customer Profiles, domains, profile object types, and integrations can be\n tagged.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.customerprofiles#TagArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the resource from which you are removing tags.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.customerprofiles#TagKeyList", + "traits": { + "smithy.api#documentation": "

                          The list of tag keys to remove from the resource.

                          ", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#UntagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.customerprofiles#UpdateAddress": { + "type": "structure", + "members": { + "Address1": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The first line of a customer address.

                          " + } + }, + "Address2": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The second line of a customer address.

                          " + } + }, + "Address3": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The third line of a customer address.

                          " + } + }, + "Address4": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The fourth line of a customer address.

                          " + } + }, + "City": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The city in which a customer lives.

                          " + } + }, + "County": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The county in which a customer lives.

                          " + } + }, + "State": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The state in which a customer lives.

                          " + } + }, + "Province": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The province in which a customer lives.

                          " + } + }, + "Country": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The country in which a customer lives.

                          " + } + }, + "PostalCode": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The postal code of a customer address.

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

                          Updates associated with the address properties of a customer profile.

                          " + } + }, + "com.amazonaws.customerprofiles#UpdateAttributes": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "value": { + "target": "com.amazonaws.customerprofiles#string0To255" + } + }, + "com.amazonaws.customerprofiles#UpdateDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#UpdateDomainRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#UpdateDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Updates the properties of a domain, including creating or selecting a dead letter queue\n or an encryption key.

                          \n

                          Once a domain is created, the name can’t be changed.

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/domains/{DomainName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#UpdateDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name for the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The default number of days until the data within the domain expires.

                          " + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage. If specified as an empty string, it will clear any\n existing value.

                          " + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

                          The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications. If specified as an empty string, it will\n clear any existing value. You must set up a policy on the DeadLetterQueue for the\n SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the\n DeadLetterQueue.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#UpdateDomainResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name for the domain.

                          ", + "smithy.api#required": {} + } + }, + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "traits": { + "smithy.api#documentation": "

                          The default number of days until the data within the domain expires.

                          " + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

                          The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

                          " + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

                          The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

                          " + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was created.

                          ", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the domain was most recently edited.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags used to organize, track, or control access for this resource.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#UpdateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#UpdateProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#UpdateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Updates the properties of a profile. The ProfileId is required for updating a customer\n profile.

                          \n

                          When calling the UpdateProfile API, specifying an empty string value means that any\n existing value will be removed. Not specifying a string value means that any value already\n there will be kept.

                          ", + "smithy.api#http": { + "method": "PUT", + "uri": "/domains/{DomainName}/profiles", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#UpdateProfileRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

                          The unique name of the domain.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#string0To1000", + "traits": { + "smithy.api#documentation": "

                          Any additional information relevant to the customer's profile.

                          " + } + }, + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          A unique account number that you have given to the customer.

                          " + } + }, + "PartyType": { + "target": "com.amazonaws.customerprofiles#PartyType", + "traits": { + "smithy.api#documentation": "

                          The type of profile used to describe the customer.

                          " + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The name of the customer’s business.

                          " + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s first name.

                          " + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s middle name.

                          " + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s last name.

                          " + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s birth date.

                          " + } + }, + "Gender": { + "target": "com.amazonaws.customerprofiles#Gender", + "traits": { + "smithy.api#documentation": "

                          The gender with which the customer identifies.

                          " + } + }, + "PhoneNumber": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer's phone number, which has not been specified as a mobile, home, or business\n number.

                          " + } + }, + "MobilePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s mobile phone number.

                          " + } + }, + "HomePhoneNumber": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s home phone number.

                          " + } + }, + "BusinessPhoneNumber": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s business phone number.

                          " + } + }, + "EmailAddress": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer's email address, which has not been specified as a personal or business\n address.

                          " + } + }, + "PersonalEmailAddress": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s personal email address.

                          " + } + }, + "BusinessEmailAddress": { + "target": "com.amazonaws.customerprofiles#string0To255", + "traits": { + "smithy.api#documentation": "

                          The customer’s business email address.

                          " + } + }, + "Address": { + "target": "com.amazonaws.customerprofiles#UpdateAddress", + "traits": { + "smithy.api#documentation": "

                          A generic address associated with the customer that is not mailing, shipping, or\n billing.

                          " + } + }, + "ShippingAddress": { + "target": "com.amazonaws.customerprofiles#UpdateAddress", + "traits": { + "smithy.api#documentation": "

                          The customer’s shipping address.

                          " + } + }, + "MailingAddress": { + "target": "com.amazonaws.customerprofiles#UpdateAddress", + "traits": { + "smithy.api#documentation": "

                          The customer’s mailing address.

                          " + } + }, + "BillingAddress": { + "target": "com.amazonaws.customerprofiles#UpdateAddress", + "traits": { + "smithy.api#documentation": "

                          The customer’s billing address.

                          " + } + }, + "Attributes": { + "target": "com.amazonaws.customerprofiles#UpdateAttributes", + "traits": { + "smithy.api#documentation": "

                          A key value pair of attributes of a customer profile.

                          " + } + } + } + }, + "com.amazonaws.customerprofiles#UpdateProfileResponse": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of a customer profile.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.customerprofiles#boolean": { + "type": "boolean" + }, + "com.amazonaws.customerprofiles#encryptionKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.customerprofiles#expirationDaysInteger": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 1098 + } + } + }, + "com.amazonaws.customerprofiles#long": { + "type": "long" + }, + "com.amazonaws.customerprofiles#maxSize100": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.customerprofiles#message": { + "type": "string" + }, + "com.amazonaws.customerprofiles#name": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "com.amazonaws.customerprofiles#requestValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#string1To255" + } + }, + "com.amazonaws.customerprofiles#sqsQueueUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.customerprofiles#string0To1000": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + } + } + }, + "com.amazonaws.customerprofiles#string0To255": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.customerprofiles#string1To1000": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.customerprofiles#string1To255": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.customerprofiles#stringifiedJson": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256000 + } + } + }, + "com.amazonaws.customerprofiles#text": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.customerprofiles#timestamp": { + "type": "timestamp" + }, + "com.amazonaws.customerprofiles#token": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.customerprofiles#typeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z_][a-zA-Z_0-9-]*$" + } + }, + "com.amazonaws.customerprofiles#uuid": { + "type": "string", + "traits": { + "smithy.api#pattern": "[a-f0-9]{32}" + } + } + } +} diff --git a/codegen/sdk-codegen/aws-models/database-migration-service.2016-01-01.json b/codegen/sdk-codegen/aws-models/database-migration-service.2016-01-01.json index 27a56b8d217c4..a9d82e0fdddec 100644 --- a/codegen/sdk-codegen/aws-models/database-migration-service.2016-01-01.json +++ b/codegen/sdk-codegen/aws-models/database-migration-service.2016-01-01.json @@ -7221,6 +7221,30 @@ "traits": { "smithy.api#documentation": "

                          Specifies a date separating delimiter to use during folder partitioning. The default value is \n SLASH. Use this parameter when DatePartitionedEnabled is set to true.

                          " } + }, + "UseCsvNoSupValue": { + "target": "com.amazonaws.databasemigrationservice#BooleanOptional", + "traits": { + "smithy.api#documentation": "

                          This setting applies if the S3 output files during a change data capture (CDC) load are\n written in .csv format. If set to true for columns not included in the\n supplemental log, AWS DMS uses the value specified by \n CsvNoSupValue\n . If not set or set to false, AWS DMS\n uses the null value for these columns.

                          \n \n

                          This setting is supported in AWS DMS versions 3.4.1 and later.

                          \n
                          " + } + }, + "CsvNoSupValue": { + "target": "com.amazonaws.databasemigrationservice#String", + "traits": { + "smithy.api#documentation": "

                          This setting only applies if your Amazon S3 output files during a change data capture\n (CDC) load are written in .csv format. If \n UseCsvNoSupValue\n is set to true, specify a string value that\n you want AWS DMS to use for all columns not included in the supplemental log. If you do not\n specify a string value, AWS DMS uses the null value for these columns regardless of the\n UseCsvNoSupValue setting.

                          \n \n

                          This setting is supported in AWS DMS versions 3.4.1 and later.

                          \n
                          " + } + }, + "PreserveTransactions": { + "target": "com.amazonaws.databasemigrationservice#BooleanOptional", + "traits": { + "smithy.api#documentation": "

                          If set to true, AWS DMS saves the transaction order for a change data\n capture (CDC) load on the Amazon S3 target specified by \n CdcPath\n .

                          \n \n

                          This setting is supported in AWS DMS versions 3.4.2 and later.

                          \n
                          " + } + }, + "CdcPath": { + "target": "com.amazonaws.databasemigrationservice#String", + "traits": { + "smithy.api#documentation": "

                          Specifies the folder path of CDC files. For an S3 source, this setting is required if a\n task captures change data; otherwise, it's optional. If CdcPath is set, AWS\n DMS reads CDC files from this path and replicates the data changes to the target endpoint.\n For an S3 target, if CdcPathis set, it is the folder path where data changes\n are replicated. If you set \n PreserveTransactions\n to true, AWS DMS verifies\n that you have set this parameter to a folder path on your S3 target where AWS DMS can save\n the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your\n S3 target working directory or the S3 target location specified by \n BucketFolder\n and \n BucketName\n .

                          \n

                          For example, if you specify CdcPath as MyChangedData, and you\n specify BucketName as MyTargetBucket but do not specify\n BucketFolder, AWS DMS creates the CDC folder path following:\n MyTargetBucket/MyChangedData.

                          \n

                          If you specify the same CdcPath, and you specify BucketName as\n MyTargetBucket and BucketFolder as MyTargetData,\n AWS DMS creates the CDC folder path following:\n MyTargetBucket/MyTargetData/MyChangedData.

                          \n \n

                          This setting is supported in AWS DMS versions 3.4.2 and later.

                          \n
                          " + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/directory-service.2015-04-16.json b/codegen/sdk-codegen/aws-models/directory-service.2015-04-16.json index 4196963b23582..301c439e887cb 100644 --- a/codegen/sdk-codegen/aws-models/directory-service.2015-04-16.json +++ b/codegen/sdk-codegen/aws-models/directory-service.2015-04-16.json @@ -92,7 +92,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          You do not have sufficient access to perform this action.

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

                          Client authentication is not available in this region at this time.

                          ", "smithy.api#error": "client" } }, @@ -226,7 +226,7 @@ "RegionName": { "target": "com.amazonaws.directoryservice#RegionName", "traits": { - "smithy.api#documentation": "

                          The name of the Region where you want to add domain controllers for replication. For example, us-east-1.

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

                          The name of the Region where you want to add domain controllers for replication. For\n example, us-east-1.

                          ", "smithy.api#required": {} } }, @@ -468,13 +468,13 @@ "Type": { "target": "com.amazonaws.directoryservice#CertificateType", "traits": { - "smithy.api#documentation": "

                          Select ClientCertAuth for smart card integration.

                          " + "smithy.api#documentation": "

                          The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

                          " } }, "ClientCertAuthSettings": { "target": "com.amazonaws.directoryservice#ClientCertAuthSettings", "traits": { - "smithy.api#documentation": "

                          Provides information about the client certificate authentication settings. The default value is ClientLDAPS.

                          " + "smithy.api#documentation": "

                          A ClientCertAuthSettings object that contains client certificate authentication settings.

                          " } } }, @@ -578,7 +578,7 @@ "Type": { "target": "com.amazonaws.directoryservice#CertificateType", "traits": { - "smithy.api#documentation": "

                          Displays the type of certificate.

                          " + "smithy.api#documentation": "

                          The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

                          " } } }, @@ -688,12 +688,12 @@ "OCSPUrl": { "target": "com.amazonaws.directoryservice#OCSPUrl", "traits": { - "smithy.api#documentation": "

                          Specifies the URL of the default OCSP server used to check for revocation status.

                          " + "smithy.api#documentation": "

                          Specifies the URL of the default OCSP server used to check for revocation status. A secondary value to any OCSP address found in the AIA extension of the user certificate.

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

                          Contains information about the client certificate authentication settings, such as ClientLDAPS or ClientCertAuth.

                          " + "smithy.api#documentation": "

                          Contains information about the client certificate authentication settings for the RegisterCertificate and DescribeCertificate operations.

                          " } }, "com.amazonaws.directoryservice#ClientException": { @@ -1179,7 +1179,7 @@ "Password": { "target": "com.amazonaws.directoryservice#Password", "traits": { - "smithy.api#documentation": "

                          The password for the directory administrator. The directory creation process creates a\n directory administrator account with the user name Administrator and this\n password.

                          \n

                          If you need to change the password for the administrator account, you can use the ResetUserPassword API call.

                          \n

                          The regex pattern for this string is made up of the following conditions:

                          \n
                            \n
                          • \n

                            Length (?=^.{8,64}$) – Must be between 8 and 64 characters

                            \n
                          • \n
                          \n

                          AND any 3 of the following password complexity rules required by Active Directory:

                          \n
                            \n
                          • \n

                            Numbers and upper case and lowercase (?=.*\\d)(?=.*[A-Z])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Numbers and special characters and lower case (?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Special characters and upper case and lower case (?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Numbers and upper case and special characters (?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s])

                            \n
                          • \n
                          \n

                          For additional information about how Active Directory passwords are enforced, see Password must meet complexity requirements on the Microsoft website.

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

                          The password for the directory administrator. The directory creation process creates a\n directory administrator account with the user name Administrator and this\n password.

                          \n

                          If you need to change the password for the administrator account, you can use the ResetUserPassword API call.

                          \n

                          The regex pattern for this string is made up of the following conditions:

                          \n
                            \n
                          • \n

                            Length (?=^.{8,64}$) – Must be between 8 and 64 characters

                            \n
                          • \n
                          \n

                          AND any 3 of the following password complexity rules required by Active Directory:

                          \n
                            \n
                          • \n

                            Numbers and upper case and lowercase (?=.*\\d)(?=.*[A-Z])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Numbers and special characters and lower case\n (?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Special characters and upper case and lower case\n (?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])

                            \n
                          • \n
                          • \n

                            Numbers and upper case and special characters\n (?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s])

                            \n
                          • \n
                          \n

                          For additional information about how Active Directory passwords are enforced, see Password must meet complexity requirements on the Microsoft website.

                          ", "smithy.api#required": {} } }, @@ -1876,7 +1876,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deletes from the system the certificate that was registered for a secured LDAP\n connection.

                          " + "smithy.api#documentation": "

                          Deletes from the system the certificate that was registered for secure LDAP or client certificate authentication.

                          " } }, "com.amazonaws.directoryservice#DeregisterCertificateRequest": { @@ -1986,7 +1986,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Displays information about the certificate registered for a secured LDAP\n connection.

                          " + "smithy.api#documentation": "

                          Displays information about the certificate registered for secure LDAP or client certificate authentication.

                          " } }, "com.amazonaws.directoryservice#DescribeCertificateRequest": { @@ -2416,7 +2416,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Provides information about the Regions that are configured for multi-Region replication.

                          " + "smithy.api#documentation": "

                          Provides information about the Regions that are configured for multi-Region\n replication.

                          " } }, "com.amazonaws.directoryservice#DescribeRegionsRequest": { @@ -2438,7 +2438,7 @@ "NextToken": { "target": "com.amazonaws.directoryservice#NextToken", "traits": { - "smithy.api#documentation": "

                          The DescribeRegionsResult.NextToken value from a previous call to\n DescribeRegions. Pass null if this is the first call.

                          " + "smithy.api#documentation": "

                          The DescribeRegionsResult.NextToken value from a previous call to DescribeRegions. Pass null if this is the first call.

                          " } } } @@ -2455,7 +2455,7 @@ "NextToken": { "target": "com.amazonaws.directoryservice#NextToken", "traits": { - "smithy.api#documentation": "

                          If not null, more results are available. Pass this value for the NextToken parameter\n in a subsequent call to DescribeRegions to retrieve the next set of items.

                          " + "smithy.api#documentation": "

                          If not null, more results are available. Pass this value for the NextToken\n parameter in a subsequent call to DescribeRegions to retrieve the next set\n of items.

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

                          The Region you specified is the same Region where the AWS Managed Microsoft AD directory was created. Specify a different Region and try again.

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

                          The Region you specified is the same Region where the AWS Managed Microsoft AD directory\n was created. Specify a different Region and try again.

                          ", "smithy.api#error": "client" } }, @@ -3544,7 +3544,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Disable client authentication for smart cards.

                          " + "smithy.api#documentation": "

                          Disables alternative client authentication methods for the specified directory.

                          " } }, "com.amazonaws.directoryservice#DisableClientAuthenticationRequest": { @@ -3553,14 +3553,14 @@ "DirectoryId": { "target": "com.amazonaws.directoryservice#DirectoryId", "traits": { - "smithy.api#documentation": "

                          Disable client authentication in a specified directory for smart cards.

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

                          The identifier of the directory

                          ", "smithy.api#required": {} } }, "Type": { "target": "com.amazonaws.directoryservice#ClientAuthenticationType", "traits": { - "smithy.api#documentation": "

                          Disable the type of client authentication request.

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

                          The type of client authentication to disable. Currently, only the parameter, SmartCard is supported.

                          ", "smithy.api#required": {} } } @@ -3913,7 +3913,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Enable client authentication for smardtcards.

                          " + "smithy.api#documentation": "

                          Enables alternative client authentication methods for the specified directory.

                          " } }, "com.amazonaws.directoryservice#EnableClientAuthenticationRequest": { @@ -3922,14 +3922,14 @@ "DirectoryId": { "target": "com.amazonaws.directoryservice#DirectoryId", "traits": { - "smithy.api#documentation": "

                          Enable client authentication in a specified directory for smart cards.

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

                          The identifier of the specified directory.

                          ", "smithy.api#required": {} } }, "Type": { "target": "com.amazonaws.directoryservice#ClientAuthenticationType", "traits": { - "smithy.api#documentation": "

                          Enable the type of client authentication request.

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

                          The type of client authentication to enable. Currently only the value SmartCard is\n supported. Smart card authentication in AD Connector requires that you enable Kerberos\n Constrained Delegation for the Service User to the LDAP service in the on-premises AD.\n

                          ", "smithy.api#required": {} } } @@ -4341,7 +4341,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The client authorization was invalid.

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

                          Client authentication is already enabled.

                          ", "smithy.api#error": "client" } }, @@ -4679,7 +4679,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          For the specified directory, lists all the certificates registered for a secured LDAP\n connection.

                          " + "smithy.api#documentation": "

                          For the specified directory, lists all the certificates registered for a secure LDAP or client certificate authentication.

                          " } }, "com.amazonaws.directoryservice#ListCertificatesRequest": { @@ -5055,7 +5055,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The LDAP activities could not be performed because at least one valid certificate must be\n registered with the system.

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

                          Client authentication setup could not be completed because at least one valid certificate must be\n registered in the system.

                          ", "smithy.api#error": "client" } }, @@ -5341,7 +5341,7 @@ "DesiredNumberOfDomainControllers": { "target": "com.amazonaws.directoryservice#DesiredNumberOfDomainControllers", "traits": { - "smithy.api#documentation": "

                          The desired number of domain controllers in the specified Region for the specified directory.

                          " + "smithy.api#documentation": "

                          The desired number of domain controllers in the specified Region for the specified\n directory.

                          " } }, "LaunchTime": { @@ -5378,7 +5378,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          You have reached the limit for maximum number of simultaneous Region replications per directory.

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

                          You have reached the limit for maximum number of simultaneous Region replications per\n directory.

                          ", "smithy.api#error": "client" } }, @@ -5424,12 +5424,12 @@ "AdditionalRegions": { "target": "com.amazonaws.directoryservice#AdditionalRegions", "traits": { - "smithy.api#documentation": "

                          Lists the Regions where the directory has been replicated, excluding the primary Region.

                          " + "smithy.api#documentation": "

                          Lists the Regions where the directory has been replicated, excluding the primary\n Region.

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

                          Provides information about the Regions that are configured for multi-Region replication.

                          " + "smithy.api#documentation": "

                          Provides information about the Regions that are configured for multi-Region\n replication.

                          " } }, "com.amazonaws.directoryservice#RegisterCertificate": { @@ -5470,7 +5470,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Registers a certificate for secured LDAP connection.

                          " + "smithy.api#documentation": "

                          Registers a certificate for a secure LDAP or client certificate authentication.

                          " } }, "com.amazonaws.directoryservice#RegisterCertificateRequest": { @@ -5493,11 +5493,14 @@ "Type": { "target": "com.amazonaws.directoryservice#CertificateType", "traits": { - "smithy.api#documentation": "

                          The certificate type to register for the request.

                          " + "smithy.api#documentation": "

                          The function that the registered certificate performs. Valid values include ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.

                          " } }, "ClientCertAuthSettings": { - "target": "com.amazonaws.directoryservice#ClientCertAuthSettings" + "target": "com.amazonaws.directoryservice#ClientCertAuthSettings", + "traits": { + "smithy.api#documentation": "

                          A ClientCertAuthSettings object that contains client certificate authentication settings.

                          " + } } } }, @@ -5712,7 +5715,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Stops all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation. Instead, use the DeleteDirectory API.

                          " + "smithy.api#documentation": "

                          Stops all replication and removes the domain controllers from the specified Region. You\n cannot remove the primary Region with this operation. Instead, use the\n DeleteDirectory API.

                          " } }, "com.amazonaws.directoryservice#RemoveRegionRequest": { diff --git a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json index 2b8193d9e6e5a..051cd38ba57d7 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -8684,9 +8684,16 @@ "target": "com.amazonaws.ec2#Boolean", "traits": { "aws.protocols#ec2QueryName": "NoReboot", - "smithy.api#documentation": "

                          By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the 'No Reboot' option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

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

                          By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the No Reboot option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.

                          ", "smithy.api#xmlName": "noReboot" } + }, + "TagSpecifications": { + "target": "com.amazonaws.ec2#TagSpecificationList", + "traits": { + "smithy.api#documentation": "

                          The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the\n snapshots, or both.

                          \n
                            \n
                          • \n

                            To tag the AMI, the value for ResourceType must be\n image.

                            \n
                          • \n
                          • \n

                            To tag the snapshots that are created of the root volume and of other EBS volumes that\n are attached to the instance, the value for ResourceType must be\n snapshot. The same tag is applied to all of the snapshots that are\n created.

                            \n
                          • \n
                          \n

                          If you specify other values for ResourceType, the request fails.

                          \n

                          To tag an AMI or snapshot after it has been created, see CreateTags.

                          ", + "smithy.api#xmlName": "TagSpecification" + } } } }, @@ -35364,6 +35371,15 @@ { "value": "g3s.xlarge" }, + { + "value": "g4ad.4xlarge" + }, + { + "value": "g4ad.8xlarge" + }, + { + "value": "g4ad.16xlarge" + }, { "value": "g4dn.xlarge" }, @@ -54802,7 +54818,7 @@ "target": "com.amazonaws.ec2#ResourceType", "traits": { "aws.protocols#ec2QueryName": "ResourceType", - "smithy.api#documentation": "

                          The type of resource to tag. Currently, the resource types that support tagging on\n creation are: capacity-reservation | carrier-gateway |\n client-vpn-endpoint | customer-gateway |\n dedicated-host | dhcp-options | export-image-task\n | export-instance-task | fleet | fpga-image |\n host-reservation | import-image-task |\n import-snapshot-task | instance |\n internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 |\n key-pair | launch-template | placement-group |\n prefix-list | natgateway | network-acl |\n route-table | security-group | spot-fleet-request\n | spot-instances-request | snapshot | subnet |\n traffic-mirror-filter | traffic-mirror-session |\n traffic-mirror-target | transit-gateway |\n transit-gateway-attachment | transit-gateway-route-table |\n volume |vpc | vpc-peering-connection |\n vpc-endpoint (for interface and gateway endpoints) |\n vpc-endpoint-service (for AWS PrivateLink) | vpc-flow-log |\n vpn-connection | vpn-gateway.

                          \n

                          To tag a resource after it has been created, see CreateTags.

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

                          The type of resource to tag. Currently, the resource types that support tagging on\n creation are: capacity-reservation | carrier-gateway |\n client-vpn-endpoint | customer-gateway |\n dedicated-host | dhcp-options | export-image-task\n | export-instance-task | fleet | fpga-image |\n \t host-reservation | image| import-image-task |\n import-snapshot-task | instance |\n internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 |\n key-pair | launch-template | placement-group |\n prefix-list | natgateway | network-acl |\n \t route-table | security-group| snapshot | spot-fleet-request\n | spot-instances-request | snapshot | subnet |\n traffic-mirror-filter | traffic-mirror-session |\n traffic-mirror-target | transit-gateway |\n transit-gateway-attachment | transit-gateway-route-table |\n volume |vpc | vpc-peering-connection |\n vpc-endpoint (for interface and gateway endpoints) |\n vpc-endpoint-service (for AWS PrivateLink) | vpc-flow-log |\n vpn-connection | vpn-gateway.

                          \n

                          To tag a resource after it has been created, see CreateTags.

                          ", "smithy.api#xmlName": "resourceType" } }, diff --git a/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json b/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json index a0e829d4e3e17..36a22e2439a79 100644 --- a/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json +++ b/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json @@ -51,6 +51,9 @@ { "target": "com.amazonaws.ecr#DeleteLifecyclePolicy" }, + { + "target": "com.amazonaws.ecr#DeleteRegistryPolicy" + }, { "target": "com.amazonaws.ecr#DeleteRepository" }, @@ -63,6 +66,9 @@ { "target": "com.amazonaws.ecr#DescribeImageScanFindings" }, + { + "target": "com.amazonaws.ecr#DescribeRegistry" + }, { "target": "com.amazonaws.ecr#DescribeRepositories" }, @@ -78,6 +84,9 @@ { "target": "com.amazonaws.ecr#GetLifecyclePolicyPreview" }, + { + "target": "com.amazonaws.ecr#GetRegistryPolicy" + }, { "target": "com.amazonaws.ecr#GetRepositoryPolicy" }, @@ -102,6 +111,12 @@ { "target": "com.amazonaws.ecr#PutLifecyclePolicy" }, + { + "target": "com.amazonaws.ecr#PutRegistryPolicy" + }, + { + "target": "com.amazonaws.ecr#PutReplicationConfiguration" + }, { "target": "com.amazonaws.ecr#SetRepositoryPolicy" }, @@ -282,17 +297,17 @@ "com.amazonaws.ecr#BatchCheckLayerAvailabilityResponse": { "type": "structure", "members": { - "failures": { - "target": "com.amazonaws.ecr#LayerFailureList", - "traits": { - "smithy.api#documentation": "

                          Any failures associated with the call.

                          " - } - }, "layers": { "target": "com.amazonaws.ecr#LayerList", "traits": { "smithy.api#documentation": "

                          A list of image layer objects corresponding to the image layer references in the\n request.

                          " } + }, + "failures": { + "target": "com.amazonaws.ecr#LayerFailureList", + "traits": { + "smithy.api#documentation": "

                          Any failures associated with the call.

                          " + } } } }, @@ -322,6 +337,12 @@ "com.amazonaws.ecr#BatchDeleteImageRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the image to delete.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -335,12 +356,6 @@ "smithy.api#documentation": "

                          A list of image ID references that correspond to images to delete. The format of the\n imageIds reference is imageTag=tag or\n imageDigest=digest.

                          ", "smithy.api#required": {} } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the image to delete.\n If you do not specify a registry, the default registry is assumed.

                          " - } } }, "traits": { @@ -390,6 +405,12 @@ "com.amazonaws.ecr#BatchGetImageRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the images to describe.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -397,41 +418,35 @@ "smithy.api#required": {} } }, - "acceptedMediaTypes": { - "target": "com.amazonaws.ecr#MediaTypeList", - "traits": { - "smithy.api#documentation": "

                          The accepted media types for the request.

                          \n

                          Valid values: application/vnd.docker.distribution.manifest.v1+json |\n application/vnd.docker.distribution.manifest.v2+json |\n application/vnd.oci.image.manifest.v1+json\n

                          " - } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the images to describe.\n If you do not specify a registry, the default registry is assumed.

                          " - } - }, "imageIds": { "target": "com.amazonaws.ecr#ImageIdentifierList", "traits": { "smithy.api#documentation": "

                          A list of image ID references that correspond to images to describe. The format of the\n imageIds reference is imageTag=tag or\n imageDigest=digest.

                          ", "smithy.api#required": {} } + }, + "acceptedMediaTypes": { + "target": "com.amazonaws.ecr#MediaTypeList", + "traits": { + "smithy.api#documentation": "

                          The accepted media types for the request.

                          \n

                          Valid values: application/vnd.docker.distribution.manifest.v1+json |\n application/vnd.docker.distribution.manifest.v2+json |\n application/vnd.oci.image.manifest.v1+json\n

                          " + } } } }, "com.amazonaws.ecr#BatchGetImageResponse": { "type": "structure", "members": { - "failures": { - "target": "com.amazonaws.ecr#ImageFailureList", - "traits": { - "smithy.api#documentation": "

                          Any failures associated with the call.

                          " - } - }, "images": { "target": "com.amazonaws.ecr#ImageList", "traits": { "smithy.api#documentation": "

                          A list of image objects corresponding to the image references in the request.

                          " } + }, + "failures": { + "target": "com.amazonaws.ecr#ImageFailureList", + "traits": { + "smithy.api#documentation": "

                          Any failures associated with the call.

                          " + } } } }, @@ -500,10 +515,16 @@ "com.amazonaws.ecr#CompleteLayerUploadRequest": { "type": "structure", "members": { - "layerDigests": { - "target": "com.amazonaws.ecr#LayerDigestList", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The sha256 digest of the image layer.

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

                          The AWS account ID associated with the registry to which to upload layers.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The name of the repository to associate with the image layer.

                          ", "smithy.api#required": {} } }, @@ -514,18 +535,12 @@ "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "layerDigests": { + "target": "com.amazonaws.ecr#LayerDigestList", "traits": { - "smithy.api#documentation": "

                          The name of the repository to associate with the image layer.

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

                          The sha256 digest of the image layer.

                          ", "smithy.api#required": {} } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which to upload layers.\n If you do not specify a registry, the default registry is assumed.

                          " - } } } }, @@ -538,6 +553,12 @@ "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + } + }, "uploadId": { "target": "com.amazonaws.ecr#UploadId", "traits": { @@ -549,12 +570,6 @@ "traits": { "smithy.api#documentation": "

                          The sha256 digest of the image layer.

                          " } - }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", - "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " - } } } }, @@ -596,12 +611,6 @@ "com.amazonaws.ecr#CreateRepositoryRequest": { "type": "structure", "members": { - "imageTagMutability": { - "target": "com.amazonaws.ecr#ImageTagMutability", - "traits": { - "smithy.api#documentation": "

                          The tag mutability setting for the repository. If this parameter is omitted, the\n default setting of MUTABLE will be used which will allow image tags to be\n overwritten. If IMMUTABLE is specified, all image tags within the\n repository will be immutable which will prevent them from being overwritten.

                          " - } - }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -615,6 +624,12 @@ "smithy.api#documentation": "

                          The metadata that you apply to the repository to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

                          " } }, + "imageTagMutability": { + "target": "com.amazonaws.ecr#ImageTagMutability", + "traits": { + "smithy.api#documentation": "

                          The tag mutability setting for the repository. If this parameter is omitted, the\n default setting of MUTABLE will be used which will allow image tags to be\n overwritten. If IMMUTABLE is specified, all image tags within the\n repository will be immutable which will prevent them from being overwritten.

                          " + } + }, "imageScanningConfiguration": { "target": "com.amazonaws.ecr#ImageScanningConfiguration", "traits": { @@ -696,10 +711,10 @@ "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, - "lastEvaluatedAt": { - "target": "com.amazonaws.ecr#EvaluationTimestamp", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The time stamp of the last time that the lifecycle policy was run.

                          " + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } }, "lifecyclePolicyText": { @@ -708,10 +723,54 @@ "smithy.api#documentation": "

                          The JSON lifecycle policy text.

                          " } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "lastEvaluatedAt": { + "target": "com.amazonaws.ecr#EvaluationTimestamp", "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + "smithy.api#documentation": "

                          The time stamp of the last time that the lifecycle policy was run.

                          " + } + } + } + }, + "com.amazonaws.ecr#DeleteRegistryPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#DeleteRegistryPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ecr#DeleteRegistryPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#RegistryPolicyNotFoundException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the registry permissions policy.

                          " + } + }, + "com.amazonaws.ecr#DeleteRegistryPolicyRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.ecr#DeleteRegistryPolicyResponse": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " + } + }, + "policyText": { + "target": "com.amazonaws.ecr#RegistryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The contents of the registry permissions policy that was deleted.

                          " } } } @@ -792,18 +851,18 @@ "com.amazonaws.ecr#DeleteRepositoryPolicyResponse": { "type": "structure", "members": { - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", - "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + } + }, "policyText": { "target": "com.amazonaws.ecr#RepositoryPolicyText", "traits": { @@ -815,6 +874,12 @@ "com.amazonaws.ecr#DeleteRepositoryRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository to\n delete. If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -827,12 +892,6 @@ "traits": { "smithy.api#documentation": "

                          If a repository contains images, forces the deletion.

                          " } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository to\n delete. If you do not specify a registry, the default registry is assumed.

                          " - } } } }, @@ -891,12 +950,6 @@ "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in\n which to describe the image scan findings for. If you do not specify a registry, the\n default registry is assumed.

                          " } }, - "imageId": { - "target": "com.amazonaws.ecr#ImageIdentifier", - "traits": { - "smithy.api#required": {} - } - }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -904,10 +957,10 @@ "smithy.api#required": {} } }, - "maxResults": { - "target": "com.amazonaws.ecr#MaxResults", + "imageId": { + "target": "com.amazonaws.ecr#ImageIdentifier", "traits": { - "smithy.api#documentation": "

                          The maximum number of image scan results returned by\n DescribeImageScanFindings in paginated output. When this parameter is\n used, DescribeImageScanFindings only returns maxResults\n results in a single page along with a nextToken response element. The\n remaining results of the initial request can be seen by sending another\n DescribeImageScanFindings request with the returned\n nextToken value. This value can be between 1 and 1000. If this\n parameter is not used, then DescribeImageScanFindings returns up to 100\n results and a nextToken value, if applicable.

                          " + "smithy.api#required": {} } }, "nextToken": { @@ -915,44 +968,50 @@ "traits": { "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\n DescribeImageScanFindings request where maxResults was\n used and the results exceeded the value of that parameter. Pagination continues from the\n end of the previous results that returned the nextToken value. This value\n is null when there are no more results to return.

                          " } + }, + "maxResults": { + "target": "com.amazonaws.ecr#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of image scan results returned by\n DescribeImageScanFindings in paginated output. When this parameter is\n used, DescribeImageScanFindings only returns maxResults\n results in a single page along with a nextToken response element. The\n remaining results of the initial request can be seen by sending another\n DescribeImageScanFindings request with the returned\n nextToken value. This value can be between 1 and 1000. If this\n parameter is not used, then DescribeImageScanFindings returns up to 100\n results and a nextToken value, if applicable.

                          " + } } } }, "com.amazonaws.ecr#DescribeImageScanFindingsResponse": { "type": "structure", "members": { - "imageScanFindings": { - "target": "com.amazonaws.ecr#ImageScanFindings", - "traits": { - "smithy.api#documentation": "

                          The information contained in the image scan findings.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The nextToken value to include in a future\n DescribeImageScanFindings request. When the results of a\n DescribeImageScanFindings request exceed maxResults, this\n value can be used to retrieve the next page of results. This value is null when there\n are no more results to return.

                          " + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } }, + "imageId": { + "target": "com.amazonaws.ecr#ImageIdentifier" + }, "imageScanStatus": { "target": "com.amazonaws.ecr#ImageScanStatus", "traits": { "smithy.api#documentation": "

                          The current state of the scan.

                          " } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "imageScanFindings": { + "target": "com.amazonaws.ecr#ImageScanFindings", "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + "smithy.api#documentation": "

                          The information contained in the image scan findings.

                          " } }, - "imageId": { - "target": "com.amazonaws.ecr#ImageIdentifier" + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", + "traits": { + "smithy.api#documentation": "

                          The nextToken value to include in a future\n DescribeImageScanFindings request. When the results of a\n DescribeImageScanFindings request exceed maxResults, this\n value can be used to retrieve the next page of results. This value is null when there\n are no more results to return.

                          " + } } } }, @@ -1005,16 +1064,10 @@ "com.amazonaws.ecr#DescribeImagesRequest": { "type": "structure", "members": { - "filter": { - "target": "com.amazonaws.ecr#DescribeImagesFilter", - "traits": { - "smithy.api#documentation": "

                          The filter key and value with which to filter your DescribeImages\n results.

                          " - } - }, - "maxResults": { - "target": "com.amazonaws.ecr#MaxResults", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The maximum number of repository results returned by DescribeImages in\n paginated output. When this parameter is used, DescribeImages only returns\n maxResults results in a single page along with a nextToken\n response element. The remaining results of the initial request can be seen by sending\n another DescribeImages request with the returned nextToken\n value. This value can be between 1 and 1000. If this\n parameter is not used, then DescribeImages returns up to\n 100 results and a nextToken value, if applicable. This\n option cannot be used when you specify images with imageIds.

                          " + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to describe images. If you do not specify a registry, the default registry is assumed.

                          " } }, "repositoryName": { @@ -1024,10 +1077,10 @@ "smithy.api#required": {} } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", + "imageIds": { + "target": "com.amazonaws.ecr#ImageIdentifierList", "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to describe images. If you do not specify a registry, the default registry is assumed.

                          " + "smithy.api#documentation": "

                          The list of image IDs for the requested repository.

                          " } }, "nextToken": { @@ -1036,10 +1089,16 @@ "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\n DescribeImages request where maxResults was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return. This option cannot be\n used when you specify images with imageIds.

                          " } }, - "imageIds": { - "target": "com.amazonaws.ecr#ImageIdentifierList", - "traits": { - "smithy.api#documentation": "

                          The list of image IDs for the requested repository.

                          " + "maxResults": { + "target": "com.amazonaws.ecr#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of repository results returned by DescribeImages in\n paginated output. When this parameter is used, DescribeImages only returns\n maxResults results in a single page along with a nextToken\n response element. The remaining results of the initial request can be seen by sending\n another DescribeImages request with the returned nextToken\n value. This value can be between 1 and 1000. If this\n parameter is not used, then DescribeImages returns up to\n 100 results and a nextToken value, if applicable. This\n option cannot be used when you specify images with imageIds.

                          " + } + }, + "filter": { + "target": "com.amazonaws.ecr#DescribeImagesFilter", + "traits": { + "smithy.api#documentation": "

                          The filter key and value with which to filter your DescribeImages\n results.

                          " } } } @@ -1061,6 +1120,50 @@ } } }, + "com.amazonaws.ecr#DescribeRegistry": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#DescribeRegistryRequest" + }, + "output": { + "target": "com.amazonaws.ecr#DescribeRegistryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + }, + { + "target": "com.amazonaws.ecr#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describes the settings for a registry. The replication configuration for a repository\n can be created or updated with the PutReplicationConfiguration API\n action.

                          " + } + }, + "com.amazonaws.ecr#DescribeRegistryRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.ecr#DescribeRegistryResponse": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The ID of the registry.

                          " + } + }, + "replicationConfiguration": { + "target": "com.amazonaws.ecr#ReplicationConfiguration", + "traits": { + "smithy.api#documentation": "

                          The replication configuration for the registry.

                          " + } + } + } + }, "com.amazonaws.ecr#DescribeRepositories": { "type": "operation", "input": { @@ -1093,28 +1196,28 @@ "com.amazonaws.ecr#DescribeRepositoriesRequest": { "type": "structure", "members": { - "maxResults": { - "target": "com.amazonaws.ecr#MaxResults", - "traits": { - "smithy.api#documentation": "

                          The maximum number of repository results returned by DescribeRepositories\n in paginated output. When this parameter is used, DescribeRepositories only\n returns maxResults results in a single page along with a\n nextToken response element. The remaining results of the initial\n request can be seen by sending another DescribeRepositories request with\n the returned nextToken value. This value can be between 1\n and 1000. If this parameter is not used, then\n DescribeRepositories returns up to 100 results and a\n nextToken value, if applicable. This option cannot be used when you\n specify repositories with repositoryNames.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repositories to be\n described. If you do not specify a registry, the default registry is assumed.

                          " } }, + "repositoryNames": { + "target": "com.amazonaws.ecr#RepositoryNameList", + "traits": { + "smithy.api#documentation": "

                          A list of repositories to describe. If this parameter is omitted, then all\n repositories in a registry are described.

                          " + } + }, "nextToken": { "target": "com.amazonaws.ecr#NextToken", "traits": { "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\n DescribeRepositories request where maxResults was used and\n the results exceeded the value of that parameter. Pagination continues from the end of\n the previous results that returned the nextToken value. This value is\n null when there are no more results to return. This option cannot be\n used when you specify repositories with repositoryNames.

                          \n \n

                          This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

                          \n
                          " } }, - "repositoryNames": { - "target": "com.amazonaws.ecr#RepositoryNameList", + "maxResults": { + "target": "com.amazonaws.ecr#MaxResults", "traits": { - "smithy.api#documentation": "

                          A list of repositories to describe. If this parameter is omitted, then all\n repositories in a registry are described.

                          " + "smithy.api#documentation": "

                          The maximum number of repository results returned by DescribeRepositories\n in paginated output. When this parameter is used, DescribeRepositories only\n returns maxResults results in a single page along with a\n nextToken response element. The remaining results of the initial\n request can be seen by sending another DescribeRepositories request with\n the returned nextToken value. This value can be between 1\n and 1000. If this parameter is not used, then\n DescribeRepositories returns up to 100 results and a\n nextToken value, if applicable. This option cannot be used when you\n specify repositories with repositoryNames.

                          " } } } @@ -1122,17 +1225,17 @@ "com.amazonaws.ecr#DescribeRepositoriesResponse": { "type": "structure", "members": { - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", - "traits": { - "smithy.api#documentation": "

                          The nextToken value to include in a future\n DescribeRepositories request. When the results of a\n DescribeRepositories request exceed maxResults, this value\n can be used to retrieve the next page of results. This value is null when\n there are no more results to return.

                          " - } - }, "repositories": { "target": "com.amazonaws.ecr#RepositoryList", "traits": { "smithy.api#documentation": "

                          A list of repository objects corresponding to valid repositories.

                          " } + }, + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", + "traits": { + "smithy.api#documentation": "

                          The nextToken value to include in a future\n DescribeRepositories request. When the results of a\n DescribeRepositories request exceed maxResults, this value\n can be used to retrieve the next page of results. This value is null when\n there are no more results to return.

                          " + } } } }, @@ -1154,18 +1257,18 @@ "com.amazonaws.ecr#EncryptionConfiguration": { "type": "structure", "members": { - "kmsKey": { - "target": "com.amazonaws.ecr#KmsKey", - "traits": { - "smithy.api#documentation": "

                          If you use the KMS encryption type, specify the CMK to use for\n encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must\n exist in the same Region as the repository. If no key is specified, the default AWS\n managed CMK for Amazon ECR will be used.

                          " - } - }, "encryptionType": { "target": "com.amazonaws.ecr#EncryptionType", "traits": { "smithy.api#documentation": "

                          The encryption type to use.

                          \n

                          If you use the KMS encryption type, the contents of the repository will\n be encrypted using server-side encryption with customer master keys (CMKs) stored in\n AWS KMS. When you use AWS KMS to encrypt your data, you can either use the default AWS\n managed CMK for Amazon ECR, or specify your own CMK, which you already created. For more\n information, see Protecting Data Using Server-Side\n Encryption with CMKs Stored in AWS Key Management Service (SSE-KMS) in the\n Amazon Simple Storage Service Console Developer Guide..

                          \n

                          If you use the AES256 encryption type, Amazon ECR uses server-side encryption\n with Amazon S3-managed encryption keys which encrypts the images in the repository using an\n AES-256 encryption algorithm. For more information, see Protecting Data Using\n Server-Side Encryption with Amazon S3-Managed Encryption Keys (SSE-S3) in\n the Amazon Simple Storage Service Console Developer Guide..

                          ", "smithy.api#required": {} } + }, + "kmsKey": { + "target": "com.amazonaws.ecr#KmsKey", + "traits": { + "smithy.api#documentation": "

                          If you use the KMS encryption type, specify the CMK to use for\n encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must\n exist in the same Region as the repository. If no key is specified, the default AWS\n managed CMK for Amazon ECR will be used.

                          " + } } }, "traits": { @@ -1283,6 +1386,9 @@ "registryIds": { "target": "com.amazonaws.ecr#GetAuthorizationTokenRegistryIdList", "traits": { + "smithy.api#deprecated": { + "message": "This field is deprecated. The returned authorization token can be used to access any Amazon ECR registry that the IAM principal has access to, specifying a registry ID doesn't change the permissions scope of the authorization token." + }, "smithy.api#documentation": "

                          A list of AWS account IDs that are associated with the registries for which to get\n AuthorizationData objects. If you do not specify a registry, the default registry is assumed.

                          " } } @@ -1337,17 +1443,17 @@ "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the image layer to\n download. If you do not specify a registry, the default registry is assumed.

                          " } }, - "layerDigest": { - "target": "com.amazonaws.ecr#LayerDigest", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The digest of the image layer to download.

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

                          The name of the repository that is associated with the image layer to download.

                          ", "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "layerDigest": { + "target": "com.amazonaws.ecr#LayerDigest", "traits": { - "smithy.api#documentation": "

                          The name of the repository that is associated with the image layer to download.

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

                          The digest of the image layer to download.

                          ", "smithy.api#required": {} } } @@ -1431,24 +1537,12 @@ "com.amazonaws.ecr#GetLifecyclePolicyPreviewRequest": { "type": "structure", "members": { - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", - "traits": { - "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\u2028\n GetLifecyclePolicyPreviewRequest request where maxResults\n was used and the\u2028 results exceeded the value of that parameter. Pagination continues\n from the end of the\u2028 previous results that returned the nextToken value.\n This value is\u2028 null when there are no more results to return. This option\n cannot be used when you specify images with imageIds.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " } }, - "maxResults": { - "target": "com.amazonaws.ecr#LifecyclePreviewMaxResults", - "traits": { - "smithy.api#documentation": "

                          The maximum number of repository results returned by\n GetLifecyclePolicyPreviewRequest in\u2028 paginated output. When this\n parameter is used, GetLifecyclePolicyPreviewRequest only returns\u2028\n maxResults results in a single page along with a\n nextToken\u2028 response element. The remaining results of the initial request\n can be seen by sending\u2028 another GetLifecyclePolicyPreviewRequest request\n with the returned nextToken\u2028 value. This value can be between\n 1 and 1000. If this\u2028 parameter is not used, then\n GetLifecyclePolicyPreviewRequest returns up to\u2028 100\n results and a nextToken value, if\u2028 applicable. This option cannot be used\n when you specify images with imageIds.

                          " - } - }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -1456,51 +1550,63 @@ "smithy.api#required": {} } }, - "filter": { - "target": "com.amazonaws.ecr#LifecyclePolicyPreviewFilter", - "traits": { - "smithy.api#documentation": "

                          An optional parameter that filters results based on image tag status and all tags, if\n tagged.

                          " - } - }, "imageIds": { "target": "com.amazonaws.ecr#ImageIdentifierList", "traits": { "smithy.api#documentation": "

                          The list of imageIDs to be included.

                          " } + }, + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", + "traits": { + "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\u2028\n GetLifecyclePolicyPreviewRequest request where maxResults\n was used and the\u2028 results exceeded the value of that parameter. Pagination continues\n from the end of the\u2028 previous results that returned the nextToken value.\n This value is\u2028 null when there are no more results to return. This option\n cannot be used when you specify images with imageIds.

                          " + } + }, + "maxResults": { + "target": "com.amazonaws.ecr#LifecyclePreviewMaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of repository results returned by\n GetLifecyclePolicyPreviewRequest in\u2028 paginated output. When this\n parameter is used, GetLifecyclePolicyPreviewRequest only returns\u2028\n maxResults results in a single page along with a\n nextToken\u2028 response element. The remaining results of the initial request\n can be seen by sending\u2028 another GetLifecyclePolicyPreviewRequest request\n with the returned nextToken\u2028 value. This value can be between\n 1 and 1000. If this\u2028 parameter is not used, then\n GetLifecyclePolicyPreviewRequest returns up to\u2028 100\n results and a nextToken value, if\u2028 applicable. This option cannot be used\n when you specify images with imageIds.

                          " + } + }, + "filter": { + "target": "com.amazonaws.ecr#LifecyclePolicyPreviewFilter", + "traits": { + "smithy.api#documentation": "

                          An optional parameter that filters results based on image tag status and all tags, if\n tagged.

                          " + } } } }, "com.amazonaws.ecr#GetLifecyclePolicyPreviewResponse": { "type": "structure", "members": { - "status": { - "target": "com.amazonaws.ecr#LifecyclePolicyPreviewStatus", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The status of the lifecycle policy preview request.

                          " + "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, - "lifecyclePolicyText": { - "target": "com.amazonaws.ecr#LifecyclePolicyText", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The JSON lifecycle policy text.

                          " + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } }, - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", + "lifecyclePolicyText": { + "target": "com.amazonaws.ecr#LifecyclePolicyText", "traits": { - "smithy.api#documentation": "

                          The nextToken value to include in a future\n GetLifecyclePolicyPreview request. When the results of a\n GetLifecyclePolicyPreview request exceed maxResults, this\n value can be used to retrieve the next page of results. This value is null\n when there are no more results to return.

                          " + "smithy.api#documentation": "

                          The JSON lifecycle policy text.

                          " } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", + "status": { + "target": "com.amazonaws.ecr#LifecyclePolicyPreviewStatus", "traits": { - "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " + "smithy.api#documentation": "

                          The status of the lifecycle policy preview request.

                          " } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + "smithy.api#documentation": "

                          The nextToken value to include in a future\n GetLifecyclePolicyPreview request. When the results of a\n GetLifecyclePolicyPreview request exceed maxResults, this\n value can be used to retrieve the next page of results. This value is null\n when there are no more results to return.

                          " } }, "previewResults": { @@ -1520,28 +1626,28 @@ "com.amazonaws.ecr#GetLifecyclePolicyRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { "smithy.api#documentation": "

                          The name of the repository.

                          ", "smithy.api#required": {} } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " - } } } }, "com.amazonaws.ecr#GetLifecyclePolicyResponse": { "type": "structure", "members": { - "lifecyclePolicyText": { - "target": "com.amazonaws.ecr#LifecyclePolicyText", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The JSON lifecycle policy text.

                          " + "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, "repositoryName": { @@ -1550,10 +1656,10 @@ "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", + "lifecyclePolicyText": { + "target": "com.amazonaws.ecr#LifecyclePolicyText", "traits": { - "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " + "smithy.api#documentation": "

                          The JSON lifecycle policy text.

                          " } }, "lastEvaluatedAt": { @@ -1564,6 +1670,50 @@ } } }, + "com.amazonaws.ecr#GetRegistryPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#GetRegistryPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ecr#GetRegistryPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#RegistryPolicyNotFoundException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Retrieves the permissions policy for a registry.

                          " + } + }, + "com.amazonaws.ecr#GetRegistryPolicyRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.ecr#GetRegistryPolicyResponse": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The ID of the registry.

                          " + } + }, + "policyText": { + "target": "com.amazonaws.ecr#RegistryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON text of the permissions policy for a registry.

                          " + } + } + } + }, "com.amazonaws.ecr#GetRepositoryPolicy": { "type": "operation", "input": { @@ -1617,17 +1767,17 @@ "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, - "policyText": { - "target": "com.amazonaws.ecr#RepositoryPolicyText", - "traits": { - "smithy.api#documentation": "

                          The JSON repository policy text associated with the repository.

                          " - } - }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } + }, + "policyText": { + "target": "com.amazonaws.ecr#RepositoryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON repository policy text associated with the repository.

                          " + } } } }, @@ -1707,40 +1857,40 @@ "com.amazonaws.ecr#ImageDetail": { "type": "structure", "members": { - "imageSizeInBytes": { - "target": "com.amazonaws.ecr#ImageSizeInBytes", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The size, in bytes, of the image in the repository.

                          \n

                          If the image is a manifest list, this will be the max size of all manifests in the\n list.

                          \n \n

                          Beginning with Docker version 1.9, the Docker client compresses image layers\n before pushing them to a V2 Docker registry. The output of the docker\n images command shows the uncompressed image size, so it may return a\n larger image size than the image sizes returned by DescribeImages.

                          \n
                          " + "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which this image belongs.

                          " } }, - "artifactMediaType": { - "target": "com.amazonaws.ecr#MediaType", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The artifact media type of the image.

                          " + "smithy.api#documentation": "

                          The name of the repository to which this image belongs.

                          " } }, - "imagePushedAt": { - "target": "com.amazonaws.ecr#PushTimestamp", + "imageDigest": { + "target": "com.amazonaws.ecr#ImageDigest", "traits": { - "smithy.api#documentation": "

                          The date and time, expressed in standard JavaScript date format, at which the current\n image was pushed to the repository.

                          " + "smithy.api#documentation": "

                          The sha256 digest of the image manifest.

                          " } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", + "imageTags": { + "target": "com.amazonaws.ecr#ImageTagList", "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which this image belongs.

                          " + "smithy.api#documentation": "

                          The list of tags associated with this image.

                          " } }, - "imageManifestMediaType": { - "target": "com.amazonaws.ecr#MediaType", + "imageSizeInBytes": { + "target": "com.amazonaws.ecr#ImageSizeInBytes", "traits": { - "smithy.api#documentation": "

                          The media type of the image manifest.

                          " + "smithy.api#documentation": "

                          The size, in bytes, of the image in the repository.

                          \n

                          If the image is a manifest list, this will be the max size of all manifests in the\n list.

                          \n \n

                          Beginning with Docker version 1.9, the Docker client compresses image layers\n before pushing them to a V2 Docker registry. The output of the docker\n images command shows the uncompressed image size, so it may return a\n larger image size than the image sizes returned by DescribeImages.

                          \n
                          " } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "imagePushedAt": { + "target": "com.amazonaws.ecr#PushTimestamp", "traits": { - "smithy.api#documentation": "

                          The name of the repository to which this image belongs.

                          " + "smithy.api#documentation": "

                          The date and time, expressed in standard JavaScript date format, at which the current\n image was pushed to the repository.

                          " } }, "imageScanStatus": { @@ -1749,22 +1899,22 @@ "smithy.api#documentation": "

                          The current state of the scan.

                          " } }, - "imageTags": { - "target": "com.amazonaws.ecr#ImageTagList", - "traits": { - "smithy.api#documentation": "

                          The list of tags associated with this image.

                          " - } - }, "imageScanFindingsSummary": { "target": "com.amazonaws.ecr#ImageScanFindingsSummary", "traits": { "smithy.api#documentation": "

                          A summary of the last completed image scan.

                          " } }, - "imageDigest": { - "target": "com.amazonaws.ecr#ImageDigest", + "imageManifestMediaType": { + "target": "com.amazonaws.ecr#MediaType", "traits": { - "smithy.api#documentation": "

                          The sha256 digest of the image manifest.

                          " + "smithy.api#documentation": "

                          The media type of the image manifest.

                          " + } + }, + "artifactMediaType": { + "target": "com.amazonaws.ecr#MediaType", + "traits": { + "smithy.api#documentation": "

                          The artifact media type of the image.

                          " } } }, @@ -1796,6 +1946,12 @@ "com.amazonaws.ecr#ImageFailure": { "type": "structure", "members": { + "imageId": { + "target": "com.amazonaws.ecr#ImageIdentifier", + "traits": { + "smithy.api#documentation": "

                          The image ID associated with the failure.

                          " + } + }, "failureCode": { "target": "com.amazonaws.ecr#ImageFailureCode", "traits": { @@ -1807,12 +1963,6 @@ "traits": { "smithy.api#documentation": "

                          The reason for the failure.

                          " } - }, - "imageId": { - "target": "com.amazonaws.ecr#ImageIdentifier", - "traits": { - "smithy.api#documentation": "

                          The image ID associated with the failure.

                          " - } } }, "traits": { @@ -1925,10 +2075,10 @@ "com.amazonaws.ecr#ImageScanFinding": { "type": "structure", "members": { - "severity": { - "target": "com.amazonaws.ecr#FindingSeverity", + "name": { + "target": "com.amazonaws.ecr#FindingName", "traits": { - "smithy.api#documentation": "

                          The finding severity.

                          " + "smithy.api#documentation": "

                          The name associated with the finding, usually a CVE number.

                          " } }, "description": { @@ -1937,18 +2087,18 @@ "smithy.api#documentation": "

                          The description of the finding.

                          " } }, - "name": { - "target": "com.amazonaws.ecr#FindingName", - "traits": { - "smithy.api#documentation": "

                          The name associated with the finding, usually a CVE number.

                          " - } - }, "uri": { "target": "com.amazonaws.ecr#Url", "traits": { "smithy.api#documentation": "

                          A link containing additional details about the security vulnerability.

                          " } }, + "severity": { + "target": "com.amazonaws.ecr#FindingSeverity", + "traits": { + "smithy.api#documentation": "

                          The finding severity.

                          " + } + }, "attributes": { "target": "com.amazonaws.ecr#AttributeList", "traits": { @@ -1975,18 +2125,18 @@ "smithy.api#documentation": "

                          The time of the last completed image scan.

                          " } }, - "findings": { - "target": "com.amazonaws.ecr#ImageScanFindingList", - "traits": { - "smithy.api#documentation": "

                          The findings from the image scan.

                          " - } - }, "vulnerabilitySourceUpdatedAt": { "target": "com.amazonaws.ecr#VulnerabilitySourceUpdateTimestamp", "traits": { "smithy.api#documentation": "

                          The time when the vulnerability data was last scanned.

                          " } }, + "findings": { + "target": "com.amazonaws.ecr#ImageScanFindingList", + "traits": { + "smithy.api#documentation": "

                          The findings from the image scan.

                          " + } + }, "findingSeverityCounts": { "target": "com.amazonaws.ecr#FindingSeverityCounts", "traits": { @@ -2001,10 +2151,10 @@ "com.amazonaws.ecr#ImageScanFindingsSummary": { "type": "structure", "members": { - "findingSeverityCounts": { - "target": "com.amazonaws.ecr#FindingSeverityCounts", + "imageScanCompletedAt": { + "target": "com.amazonaws.ecr#ScanTimestamp", "traits": { - "smithy.api#documentation": "

                          The image vulnerability counts, sorted by severity.

                          " + "smithy.api#documentation": "

                          The time of the last completed image scan.

                          " } }, "vulnerabilitySourceUpdatedAt": { @@ -2013,10 +2163,10 @@ "smithy.api#documentation": "

                          The time when the vulnerability data was last scanned.

                          " } }, - "imageScanCompletedAt": { - "target": "com.amazonaws.ecr#ScanTimestamp", + "findingSeverityCounts": { + "target": "com.amazonaws.ecr#FindingSeverityCounts", "traits": { - "smithy.api#documentation": "

                          The time of the last completed image scan.

                          " + "smithy.api#documentation": "

                          The image vulnerability counts, sorted by severity.

                          " } } }, @@ -2027,17 +2177,17 @@ "com.amazonaws.ecr#ImageScanStatus": { "type": "structure", "members": { - "description": { - "target": "com.amazonaws.ecr#ScanStatusDescription", - "traits": { - "smithy.api#documentation": "

                          The description of the image scan status.

                          " - } - }, "status": { "target": "com.amazonaws.ecr#ScanStatus", "traits": { "smithy.api#documentation": "

                          The current state of an image scan.

                          " } + }, + "description": { + "target": "com.amazonaws.ecr#ScanStatusDescription", + "traits": { + "smithy.api#documentation": "

                          The description of the image scan status.

                          " + } } }, "traits": { @@ -2135,18 +2285,18 @@ "com.amazonaws.ecr#InitiateLayerUploadRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which you intend to upload layers.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { "smithy.api#documentation": "

                          The name of the repository to which you intend to upload layers.

                          ", "smithy.api#required": {} } - }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which you intend to upload layers.\n If you do not specify a registry, the default registry is assumed.

                          " - } } } }, @@ -2185,16 +2335,16 @@ "com.amazonaws.ecr#InvalidLayerPartException": { "type": "structure", "members": { - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The repository name associated with the exception.

                          " + "smithy.api#documentation": "

                          The registry ID associated with the exception.

                          " } }, - "message": { - "target": "com.amazonaws.ecr#ExceptionMessage", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The error message associated with the exception.

                          " + "smithy.api#documentation": "

                          The repository name associated with the exception.

                          " } }, "uploadId": { @@ -2203,17 +2353,17 @@ "smithy.api#documentation": "

                          The upload ID associated with the exception.

                          " } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The registry ID associated with the exception.

                          " - } - }, "lastValidByteReceived": { "target": "com.amazonaws.ecr#PartSize", "traits": { "smithy.api#documentation": "

                          The last valid byte received from the layer part upload that is associated with the\n exception.

                          " } + }, + "message": { + "target": "com.amazonaws.ecr#ExceptionMessage", + "traits": { + "smithy.api#documentation": "

                          The error message associated with the exception.

                          " + } } }, "traits": { @@ -2254,14 +2404,14 @@ "com.amazonaws.ecr#KmsException": { "type": "structure", "members": { + "message": { + "target": "com.amazonaws.ecr#ExceptionMessage" + }, "kmsError": { "target": "com.amazonaws.ecr#KmsError", "traits": { "smithy.api#documentation": "

                          The error code returned by AWS KMS.

                          " } - }, - "message": { - "target": "com.amazonaws.ecr#ExceptionMessage" } }, "traits": { @@ -2281,12 +2431,6 @@ "com.amazonaws.ecr#Layer": { "type": "structure", "members": { - "layerSize": { - "target": "com.amazonaws.ecr#LayerSizeInBytes", - "traits": { - "smithy.api#documentation": "

                          The size, in bytes, of the image layer.

                          " - } - }, "layerDigest": { "target": "com.amazonaws.ecr#LayerDigest", "traits": { @@ -2299,6 +2443,12 @@ "smithy.api#documentation": "

                          The availability status of the image layer.

                          " } }, + "layerSize": { + "target": "com.amazonaws.ecr#LayerSizeInBytes", + "traits": { + "smithy.api#documentation": "

                          The size, in bytes, of the image layer.

                          " + } + }, "mediaType": { "target": "com.amazonaws.ecr#MediaType", "traits": { @@ -2361,6 +2511,12 @@ "com.amazonaws.ecr#LayerFailure": { "type": "structure", "members": { + "layerDigest": { + "target": "com.amazonaws.ecr#BatchedOperationLayerDigest", + "traits": { + "smithy.api#documentation": "

                          The layer digest associated with the failure.

                          " + } + }, "failureCode": { "target": "com.amazonaws.ecr#LayerFailureCode", "traits": { @@ -2372,12 +2528,6 @@ "traits": { "smithy.api#documentation": "

                          The reason for the failure.

                          " } - }, - "layerDigest": { - "target": "com.amazonaws.ecr#BatchedOperationLayerDigest", - "traits": { - "smithy.api#documentation": "

                          The layer digest associated with the failure.

                          " - } } }, "traits": { @@ -2533,16 +2683,10 @@ "smithy.api#documentation": "

                          The list of tags associated with this image.

                          " } }, - "appliedRulePriority": { - "target": "com.amazonaws.ecr#LifecyclePolicyRulePriority", - "traits": { - "smithy.api#documentation": "

                          The priority of the applied rule.

                          " - } - }, - "action": { - "target": "com.amazonaws.ecr#LifecyclePolicyRuleAction", + "imageDigest": { + "target": "com.amazonaws.ecr#ImageDigest", "traits": { - "smithy.api#documentation": "

                          The type of action to be taken.

                          " + "smithy.api#documentation": "

                          The sha256 digest of the image manifest.

                          " } }, "imagePushedAt": { @@ -2551,10 +2695,16 @@ "smithy.api#documentation": "

                          The date and time, expressed in standard JavaScript date format, at which the current\n image was pushed to the repository.

                          " } }, - "imageDigest": { - "target": "com.amazonaws.ecr#ImageDigest", + "action": { + "target": "com.amazonaws.ecr#LifecyclePolicyRuleAction", "traits": { - "smithy.api#documentation": "

                          The sha256 digest of the image manifest.

                          " + "smithy.api#documentation": "

                          The type of action to be taken.

                          " + } + }, + "appliedRulePriority": { + "target": "com.amazonaws.ecr#LifecyclePolicyRulePriority", + "traits": { + "smithy.api#documentation": "

                          The priority of the applied rule.

                          " } } }, @@ -2708,18 +2858,6 @@ "com.amazonaws.ecr#ListImagesRequest": { "type": "structure", "members": { - "maxResults": { - "target": "com.amazonaws.ecr#MaxResults", - "traits": { - "smithy.api#documentation": "

                          The maximum number of image results returned by ListImages in paginated\n output. When this parameter is used, ListImages only returns\n maxResults results in a single page along with a nextToken\n response element. The remaining results of the initial request can be seen by sending\n another ListImages request with the returned nextToken value.\n This value can be between 1 and 1000. If this parameter is\n not used, then ListImages returns up to 100 results and a\n nextToken value, if applicable.

                          " - } - }, - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", - "traits": { - "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\n ListImages request where maxResults was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return.

                          \n \n

                          This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

                          \n
                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { @@ -2733,6 +2871,18 @@ "smithy.api#required": {} } }, + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", + "traits": { + "smithy.api#documentation": "

                          The nextToken value returned from a previous paginated\n ListImages request where maxResults was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value. This value is\n null when there are no more results to return.

                          \n \n

                          This token should be treated as an opaque identifier that is only used to\n retrieve the next items in a list and not for other programmatic purposes.

                          \n
                          " + } + }, + "maxResults": { + "target": "com.amazonaws.ecr#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of image results returned by ListImages in paginated\n output. When this parameter is used, ListImages only returns\n maxResults results in a single page along with a nextToken\n response element. The remaining results of the initial request can be seen by sending\n another ListImages request with the returned nextToken value.\n This value can be between 1 and 1000. If this parameter is\n not used, then ListImages returns up to 100 results and a\n nextToken value, if applicable.

                          " + } + }, "filter": { "target": "com.amazonaws.ecr#ListImagesFilter", "traits": { @@ -2744,17 +2894,17 @@ "com.amazonaws.ecr#ListImagesResponse": { "type": "structure", "members": { - "nextToken": { - "target": "com.amazonaws.ecr#NextToken", - "traits": { - "smithy.api#documentation": "

                          The nextToken value to include in a future ListImages\n request. When the results of a ListImages request exceed\n maxResults, this value can be used to retrieve the next page of\n results. This value is null when there are no more results to\n return.

                          " - } - }, "imageIds": { "target": "com.amazonaws.ecr#ImageIdentifierList", "traits": { "smithy.api#documentation": "

                          The list of image IDs for the requested repository.

                          " } + }, + "nextToken": { + "target": "com.amazonaws.ecr#NextToken", + "traits": { + "smithy.api#documentation": "

                          The nextToken value to include in a future ListImages\n request. When the results of a ListImages request exceed\n maxResults, this value can be used to retrieve the next page of\n results. This value is null when there are no more results to\n return.

                          " + } } } }, @@ -2894,23 +3044,23 @@ "com.amazonaws.ecr#PutImageRequest": { "type": "structure", "members": { - "imageDigest": { - "target": "com.amazonaws.ecr#ImageDigest", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The image digest of the image manifest corresponding to the image.

                          " + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to put the image. If you do not specify a registry, the default registry is assumed.

                          " } }, - "imageManifest": { - "target": "com.amazonaws.ecr#ImageManifest", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The image manifest corresponding to the image to be uploaded.

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

                          The name of the repository in which to put the image.

                          ", "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "imageManifest": { + "target": "com.amazonaws.ecr#ImageManifest", "traits": { - "smithy.api#documentation": "

                          The name of the repository in which to put the image.

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

                          The image manifest corresponding to the image to be uploaded.

                          ", "smithy.api#required": {} } }, @@ -2920,17 +3070,17 @@ "smithy.api#documentation": "

                          The media type of the image manifest. If you push an image manifest that does not\n contain the mediaType field, you must specify the\n imageManifestMediaType in the request.

                          " } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to put the image. If you do not specify a registry, the default registry is assumed.

                          " - } - }, "imageTag": { "target": "com.amazonaws.ecr#ImageTag", "traits": { "smithy.api#documentation": "

                          The tag to associate with the image. This parameter is required for images that use\n the Docker Image Manifest V2 Schema 2 or Open Container Initiative (OCI) formats.

                          " } + }, + "imageDigest": { + "target": "com.amazonaws.ecr#ImageDigest", + "traits": { + "smithy.api#documentation": "

                          The image digest of the image manifest corresponding to the image.

                          " + } } } }, @@ -2971,11 +3121,10 @@ "com.amazonaws.ecr#PutImageScanningConfigurationRequest": { "type": "structure", "members": { - "imageScanningConfiguration": { - "target": "com.amazonaws.ecr#ImageScanningConfiguration", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The image scanning configuration for the repository. This setting determines whether\n images are scanned for known vulnerabilities after being pushed to the\n repository.

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

                          The AWS account ID associated with the registry that contains the repository in\n which to update the image scanning configuration setting.\n If you do not specify a registry, the default registry is assumed.

                          " } }, "repositoryName": { @@ -2985,10 +3134,11 @@ "smithy.api#required": {} } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", + "imageScanningConfiguration": { + "target": "com.amazonaws.ecr#ImageScanningConfiguration", "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in\n which to update the image scanning configuration setting.\n If you do not specify a registry, the default registry is assumed.

                          " + "smithy.api#documentation": "

                          The image scanning configuration for the repository. This setting determines whether\n images are scanned for known vulnerabilities after being pushed to the\n repository.

                          ", + "smithy.api#required": {} } } } @@ -2996,12 +3146,6 @@ "com.amazonaws.ecr#PutImageScanningConfigurationResponse": { "type": "structure", "members": { - "imageScanningConfiguration": { - "target": "com.amazonaws.ecr#ImageScanningConfiguration", - "traits": { - "smithy.api#documentation": "

                          The image scanning configuration setting for the repository.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { @@ -3013,6 +3157,12 @@ "traits": { "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } + }, + "imageScanningConfiguration": { + "target": "com.amazonaws.ecr#ImageScanningConfiguration", + "traits": { + "smithy.api#documentation": "

                          The image scanning configuration setting for the repository.

                          " + } } } }, @@ -3042,159 +3192,361 @@ "com.amazonaws.ecr#PutImageTagMutabilityRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to update the image tag mutability settings. If you do not specify a registry, the default registry is assumed.

                          " + } + }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The name of the repository in which to update the image tag mutability\n settings.

                          ", + "smithy.api#required": {} + } + }, "imageTagMutability": { "target": "com.amazonaws.ecr#ImageTagMutability", "traits": { "smithy.api#documentation": "

                          The tag mutability setting for the repository. If MUTABLE is specified,\n image tags can be overwritten. If IMMUTABLE is specified, all image tags\n within the repository will be immutable which will prevent them from being\n overwritten.

                          ", "smithy.api#required": {} } + } + } + }, + "com.amazonaws.ecr#PutImageTagMutabilityResponse": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " + } }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The name of the repository in which to update the image tag mutability\n settings.

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

                          The repository name associated with the request.

                          " + } + }, + "imageTagMutability": { + "target": "com.amazonaws.ecr#ImageTagMutability", + "traits": { + "smithy.api#documentation": "

                          The image tag mutability setting for the repository.

                          " + } + } + } + }, + "com.amazonaws.ecr#PutLifecyclePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#PutLifecyclePolicyRequest" + }, + "output": { + "target": "com.amazonaws.ecr#PutLifecyclePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#RepositoryNotFoundException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates or updates the lifecycle policy for the specified repository. For more\n information, see Lifecycle Policy\n Template.

                          " + } + }, + "com.amazonaws.ecr#PutLifecyclePolicyRequest": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository. If you\n do\u2028 not specify a registry, the default registry is assumed.

                          " + } + }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The name of the repository to receive the policy.

                          ", "smithy.api#required": {} } }, + "lifecyclePolicyText": { + "target": "com.amazonaws.ecr#LifecyclePolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON repository policy text to apply to the repository.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.ecr#PutLifecyclePolicyResponse": { + "type": "structure", + "members": { "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in which\n to update the image tag mutability settings. If you do not specify a registry, the default registry is assumed.

                          " + "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } + }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + } + }, + "lifecyclePolicyText": { + "target": "com.amazonaws.ecr#LifecyclePolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON repository policy text.

                          " + } + } + } + }, + "com.amazonaws.ecr#PutRegistryPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#PutRegistryPolicyRequest" + }, + "output": { + "target": "com.amazonaws.ecr#PutRegistryPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates or updates the permissions policy for your registry.

                          \n

                          A registry policy is used to specify permissions for another AWS account and is used\n when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide.

                          " + } + }, + "com.amazonaws.ecr#PutRegistryPolicyRequest": { + "type": "structure", + "members": { + "policyText": { + "target": "com.amazonaws.ecr#RegistryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON policy text to apply to your registry. The policy text follows the same\n format as IAM policy text. For more information, see Registry\n permissions in the Amazon Elastic Container Registry User Guide.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.ecr#PutRegistryPolicyResponse": { + "type": "structure", + "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The registry ID.

                          " + } + }, + "policyText": { + "target": "com.amazonaws.ecr#RegistryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON policy text for your registry.

                          " + } + } + } + }, + "com.amazonaws.ecr#PutReplicationConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecr#PutReplicationConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.ecr#PutReplicationConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecr#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecr#ServerException" + }, + { + "target": "com.amazonaws.ecr#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates or updates the replication configuration for a registry. The existing\n replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the\n PutReplicationConfiguration API is called, a service-linked IAM role is created in\n your account for the replication process. For more information, see Using\n Service-Linked Roles for Amazon ECR in the\n Amazon Elastic Container Registry User Guide.

                          \n \n

                          When configuring cross-account replication, the destination account must grant the\n source account permission to replicate. This permission is controlled using a\n registry permissions policy. For more information, see PutRegistryPolicy.

                          \n
                          " + } + }, + "com.amazonaws.ecr#PutReplicationConfigurationRequest": { + "type": "structure", + "members": { + "replicationConfiguration": { + "target": "com.amazonaws.ecr#ReplicationConfiguration", + "traits": { + "smithy.api#documentation": "

                          An object representing the replication configuration for a registry.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.ecr#PutReplicationConfigurationResponse": { + "type": "structure", + "members": { + "replicationConfiguration": { + "target": "com.amazonaws.ecr#ReplicationConfiguration", + "traits": { + "smithy.api#documentation": "

                          The contents of the replication configuration for the registry.

                          " + } + } + } + }, + "com.amazonaws.ecr#ReferencedImagesNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecr#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The manifest list is referencing an image that does not exist.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecr#Region": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 25 + }, + "smithy.api#pattern": "[0-9a-z-]{2,25}" + } + }, + "com.amazonaws.ecr#RegistryId": { + "type": "string", + "traits": { + "smithy.api#pattern": "[0-9]{12}" + } + }, + "com.amazonaws.ecr#RegistryPolicyNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecr#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The registry doesn't have an associated registry policy.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ecr#RegistryPolicyText": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10240 } } }, - "com.amazonaws.ecr#PutImageTagMutabilityResponse": { + "com.amazonaws.ecr#ReplicationConfiguration": { "type": "structure", "members": { - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " - } - }, - "imageTagMutability": { - "target": "com.amazonaws.ecr#ImageTagMutability", - "traits": { - "smithy.api#documentation": "

                          The image tag mutability setting for the repository.

                          " - } - }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "rules": { + "target": "com.amazonaws.ecr#ReplicationRuleList", "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " + "smithy.api#documentation": "

                          An array of objects representing the replication rules for a replication\n configuration. A replication configuration may contain only one replication rule but the\n rule may contain one or more replication destinations.

                          ", + "smithy.api#required": {} } } - } - }, - "com.amazonaws.ecr#PutLifecyclePolicy": { - "type": "operation", - "input": { - "target": "com.amazonaws.ecr#PutLifecyclePolicyRequest" }, - "output": { - "target": "com.amazonaws.ecr#PutLifecyclePolicyResponse" - }, - "errors": [ - { - "target": "com.amazonaws.ecr#InvalidParameterException" - }, - { - "target": "com.amazonaws.ecr#RepositoryNotFoundException" - }, - { - "target": "com.amazonaws.ecr#ServerException" - } - ], "traits": { - "smithy.api#documentation": "

                          Creates or updates the lifecycle policy for the specified repository. For more\n information, see Lifecycle Policy\n Template.

                          " + "smithy.api#documentation": "

                          The replication configuration for a registry.

                          " } }, - "com.amazonaws.ecr#PutLifecyclePolicyRequest": { + "com.amazonaws.ecr#ReplicationDestination": { "type": "structure", "members": { - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", - "traits": { - "smithy.api#documentation": "

                          The name of the repository to receive the policy.

                          ", - "smithy.api#required": {} - } - }, - "lifecyclePolicyText": { - "target": "com.amazonaws.ecr#LifecyclePolicyText", + "region": { + "target": "com.amazonaws.ecr#Region", "traits": { - "smithy.api#documentation": "

                          The JSON repository policy text to apply to the repository.

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

                          A Region to replicate to.

                          ", "smithy.api#required": {} } }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository. If you\n do\u2028 not specify a registry, the default registry is assumed.

                          " + "smithy.api#documentation": "

                          The account ID of the destination registry to replicate to.

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

                          An array of objects representing the details of a replication destination.

                          " } }, - "com.amazonaws.ecr#PutLifecyclePolicyResponse": { - "type": "structure", - "members": { - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " - } - }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", - "traits": { - "smithy.api#documentation": "

                          The repository name associated with the request.

                          " - } - }, - "lifecyclePolicyText": { - "target": "com.amazonaws.ecr#LifecyclePolicyText", - "traits": { - "smithy.api#documentation": "

                          The JSON repository policy text.

                          " - } + "com.amazonaws.ecr#ReplicationDestinationList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecr#ReplicationDestination" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 25 } } }, - "com.amazonaws.ecr#ReferencedImagesNotFoundException": { + "com.amazonaws.ecr#ReplicationRule": { "type": "structure", "members": { - "message": { - "target": "com.amazonaws.ecr#ExceptionMessage" + "destinations": { + "target": "com.amazonaws.ecr#ReplicationDestinationList", + "traits": { + "smithy.api#documentation": "

                          An array of objects representing the details of a replication destination.

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

                          The manifest list is referencing an image that does not exist.

                          ", - "smithy.api#error": "client" + "smithy.api#documentation": "

                          An array of objects representing the replication destinations for a replication\n configuration. A replication configuration may contain only one replication rule but the\n rule may contain one or more replication destinations.

                          " } }, - "com.amazonaws.ecr#RegistryId": { - "type": "string", + "com.amazonaws.ecr#ReplicationRuleList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecr#ReplicationRule" + }, "traits": { - "smithy.api#pattern": "[0-9]{12}" + "smithy.api#length": { + "min": 0, + "max": 1 + } } }, "com.amazonaws.ecr#Repository": { "type": "structure", "members": { - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.

                          " - } - }, "repositoryArn": { "target": "com.amazonaws.ecr#Arn", "traits": { "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the\n repository, AWS account ID of the repository owner, repository namespace, and repository name.\n For example, arn:aws:ecr:region:012345678910:repository/test.

                          " } }, - "encryptionConfiguration": { - "target": "com.amazonaws.ecr#EncryptionConfiguration", + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", "traits": { - "smithy.api#documentation": "

                          The encryption configuration for the repository. This determines how the contents of\n your repository are encrypted at rest.

                          " + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.

                          " + } + }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The name of the repository.

                          " } }, "repositoryUri": { @@ -3215,14 +3567,14 @@ "smithy.api#documentation": "

                          The tag mutability setting for the repository.

                          " } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", - "traits": { - "smithy.api#documentation": "

                          The name of the repository.

                          " - } - }, "imageScanningConfiguration": { "target": "com.amazonaws.ecr#ImageScanningConfiguration" + }, + "encryptionConfiguration": { + "target": "com.amazonaws.ecr#EncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

                          The encryption configuration for the repository. This determines how the contents of\n your repository are encrypted at rest.

                          " + } } }, "traits": { @@ -3407,18 +3759,19 @@ "com.amazonaws.ecr#SetRepositoryPolicyRequest": { "type": "structure", "members": { - "force": { - "target": "com.amazonaws.ecr#ForceFlag", - "traits": { - "smithy.api#documentation": "

                          If the policy you are attempting to set on a repository policy would prevent you from\n setting another policy in the future, you must force the SetRepositoryPolicy operation. This is intended to prevent accidental\n repository lock outs.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " } }, + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", + "traits": { + "smithy.api#documentation": "

                          The name of the repository to receive the policy.

                          ", + "smithy.api#required": {} + } + }, "policyText": { "target": "com.amazonaws.ecr#RepositoryPolicyText", "traits": { @@ -3426,11 +3779,10 @@ "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "force": { + "target": "com.amazonaws.ecr#ForceFlag", "traits": { - "smithy.api#documentation": "

                          The name of the repository to receive the policy.

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

                          If the policy you are attempting to set on a repository policy would prevent you from\n setting another policy in the future, you must force the SetRepositoryPolicy operation. This is intended to prevent accidental\n repository lock outs.

                          " } } } @@ -3444,17 +3796,17 @@ "smithy.api#documentation": "

                          The registry ID associated with the request.

                          " } }, - "policyText": { - "target": "com.amazonaws.ecr#RepositoryPolicyText", - "traits": { - "smithy.api#documentation": "

                          The JSON repository policy text applied to the repository.

                          " - } - }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } + }, + "policyText": { + "target": "com.amazonaws.ecr#RepositoryPolicyText", + "traits": { + "smithy.api#documentation": "

                          The JSON repository policy text applied to the repository.

                          " + } } } }, @@ -3508,16 +3860,16 @@ "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository in\n which to start an image scan request. If you do not specify a registry, the default registry is assumed.

                          " } }, - "imageId": { - "target": "com.amazonaws.ecr#ImageIdentifier", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { + "smithy.api#documentation": "

                          The name of the repository that contains the images to scan.

                          ", "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "imageId": { + "target": "com.amazonaws.ecr#ImageIdentifier", "traits": { - "smithy.api#documentation": "

                          The name of the repository that contains the images to scan.

                          ", "smithy.api#required": {} } } @@ -3526,12 +3878,6 @@ "com.amazonaws.ecr#StartImageScanResponse": { "type": "structure", "members": { - "imageScanStatus": { - "target": "com.amazonaws.ecr#ImageScanStatus", - "traits": { - "smithy.api#documentation": "

                          The current state of the scan.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { @@ -3546,6 +3892,12 @@ }, "imageId": { "target": "com.amazonaws.ecr#ImageIdentifier" + }, + "imageScanStatus": { + "target": "com.amazonaws.ecr#ImageScanStatus", + "traits": { + "smithy.api#documentation": "

                          The current state of the scan.

                          " + } } } }, @@ -3581,6 +3933,12 @@ "com.amazonaws.ecr#StartLifecyclePolicyPreviewRequest": { "type": "structure", "members": { + "registryId": { + "target": "com.amazonaws.ecr#RegistryId", + "traits": { + "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " + } + }, "repositoryName": { "target": "com.amazonaws.ecr#RepositoryName", "traits": { @@ -3588,12 +3946,6 @@ "smithy.api#required": {} } }, - "registryId": { - "target": "com.amazonaws.ecr#RegistryId", - "traits": { - "smithy.api#documentation": "

                          The AWS account ID associated with the registry that contains the repository.\n If you do not specify a registry, the default registry is assumed.

                          " - } - }, "lifecyclePolicyText": { "target": "com.amazonaws.ecr#LifecyclePolicyText", "traits": { @@ -3617,34 +3969,34 @@ "smithy.api#documentation": "

                          The repository name associated with the request.

                          " } }, - "status": { - "target": "com.amazonaws.ecr#LifecyclePolicyPreviewStatus", - "traits": { - "smithy.api#documentation": "

                          The status of the lifecycle policy preview request.

                          " - } - }, "lifecyclePolicyText": { "target": "com.amazonaws.ecr#LifecyclePolicyText", "traits": { "smithy.api#documentation": "

                          The JSON repository policy text.

                          " } + }, + "status": { + "target": "com.amazonaws.ecr#LifecyclePolicyPreviewStatus", + "traits": { + "smithy.api#documentation": "

                          The status of the lifecycle policy preview request.

                          " + } } } }, "com.amazonaws.ecr#Tag": { "type": "structure", "members": { - "Value": { - "target": "com.amazonaws.ecr#TagValue", - "traits": { - "smithy.api#documentation": "

                          The optional part of a key-value pair that make up a tag. A value acts as\n a descriptor within a tag category (key).

                          " - } - }, "Key": { "target": "com.amazonaws.ecr#TagKey", "traits": { "smithy.api#documentation": "

                          One part of a key-value pair that make up a tag. A key is a general label\n that acts like a category for more specific tag values.

                          " } + }, + "Value": { + "target": "com.amazonaws.ecr#TagValue", + "traits": { + "smithy.api#documentation": "

                          The optional part of a key-value pair that make up a tag. A value acts as\n a descriptor within a tag category (key).

                          " + } } }, "traits": { @@ -3866,10 +4218,10 @@ "smithy.api#documentation": "

                          The AWS account ID associated with the registry to which you are uploading layer\n parts. If you do not specify a registry, the default registry is assumed.

                          " } }, - "layerPartBlob": { - "target": "com.amazonaws.ecr#LayerPartBlob", + "repositoryName": { + "target": "com.amazonaws.ecr#RepositoryName", "traits": { - "smithy.api#documentation": "

                          The base64-encoded layer part payload.

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

                          The name of the repository to which you are uploading layer parts.

                          ", "smithy.api#required": {} } }, @@ -3887,17 +4239,17 @@ "smithy.api#required": {} } }, - "repositoryName": { - "target": "com.amazonaws.ecr#RepositoryName", + "partLastByte": { + "target": "com.amazonaws.ecr#PartSize", "traits": { - "smithy.api#documentation": "

                          The name of the repository to which you are uploading layer parts.

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

                          The position of the last byte of the layer part within the overall image layer.

                          ", "smithy.api#required": {} } }, - "partLastByte": { - "target": "com.amazonaws.ecr#PartSize", + "layerPartBlob": { + "target": "com.amazonaws.ecr#LayerPartBlob", "traits": { - "smithy.api#documentation": "

                          The position of the last byte of the layer part within the overall image layer.

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

                          The base64-encoded layer part payload.

                          ", "smithy.api#required": {} } } @@ -3906,12 +4258,6 @@ "com.amazonaws.ecr#UploadLayerPartResponse": { "type": "structure", "members": { - "lastByteReceived": { - "target": "com.amazonaws.ecr#PartSize", - "traits": { - "smithy.api#documentation": "

                          The integer value of the last byte received in the request.

                          " - } - }, "registryId": { "target": "com.amazonaws.ecr#RegistryId", "traits": { @@ -3929,6 +4275,12 @@ "traits": { "smithy.api#documentation": "

                          The upload ID associated with the request.

                          " } + }, + "lastByteReceived": { + "target": "com.amazonaws.ecr#PartSize", + "traits": { + "smithy.api#documentation": "

                          The integer value of the last byte received in the request.

                          " + } } } }, @@ -3950,6 +4302,19 @@ "com.amazonaws.ecr#Url": { "type": "string" }, + "com.amazonaws.ecr#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ecr#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          There was an exception validating this request.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.ecr#VulnerabilitySourceUpdateTimestamp": { "type": "timestamp" } diff --git a/codegen/sdk-codegen/aws-models/emr-containers.2020-10-01.json b/codegen/sdk-codegen/aws-models/emr-containers.2020-10-01.json new file mode 100644 index 0000000000000..6999e68a9160d --- /dev/null +++ b/codegen/sdk-codegen/aws-models/emr-containers.2020-10-01.json @@ -0,0 +1,2229 @@ +{ + "smithy": "1.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.emrcontainers#ACMCertArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 44, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):acm:.+:(\\d{12}):certificate/.+$" + } + }, + "com.amazonaws.emrcontainers#AwsChicagoWebService": { + "type": "service", + "version": "2020-10-01", + "operations": [ + { + "target": "com.amazonaws.emrcontainers#CancelJobRun" + }, + { + "target": "com.amazonaws.emrcontainers#CreateManagedEndpoint" + }, + { + "target": "com.amazonaws.emrcontainers#CreateVirtualCluster" + }, + { + "target": "com.amazonaws.emrcontainers#DeleteManagedEndpoint" + }, + { + "target": "com.amazonaws.emrcontainers#DeleteVirtualCluster" + }, + { + "target": "com.amazonaws.emrcontainers#DescribeJobRun" + }, + { + "target": "com.amazonaws.emrcontainers#DescribeManagedEndpoint" + }, + { + "target": "com.amazonaws.emrcontainers#DescribeVirtualCluster" + }, + { + "target": "com.amazonaws.emrcontainers#ListJobRuns" + }, + { + "target": "com.amazonaws.emrcontainers#ListManagedEndpoints" + }, + { + "target": "com.amazonaws.emrcontainers#ListTagsForResource" + }, + { + "target": "com.amazonaws.emrcontainers#ListVirtualClusters" + }, + { + "target": "com.amazonaws.emrcontainers#StartJobRun" + }, + { + "target": "com.amazonaws.emrcontainers#TagResource" + }, + { + "target": "com.amazonaws.emrcontainers#UntagResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "EMR containers", + "arnNamespace": "emr-containers", + "cloudFormationName": "EMRcontainers", + "cloudTrailEventSource": "emrcontainers.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "emr-containers" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

                          Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run\n open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With\n this deployment option, you can focus on running analytics workloads while Amazon EMR on\n EKS builds, configures, and manages containers for open-source applications. For more\n information about Amazon EMR on EKS concepts and tasks, see What is Amazon EMR on EKS.

                          \n

                          \n Amazon EMR containers is the API name for Amazon EMR on EKS. The\n emr-containers prefix is used in the following scenarios:

                          \n
                            \n
                          • \n

                            It is the prefix in the CLI commands for Amazon EMR on EKS. For example, aws\n emr-containers start-job-run.

                            \n
                          • \n
                          • \n

                            It is the prefix before IAM policy actions for Amazon EMR on EKS. For example, \"Action\": [\n \"emr-containers:StartJobRun\"]. For more information, see Policy actions for Amazon EMR on EKS.

                            \n
                          • \n
                          • \n

                            It is the prefix used in Amazon EMR on EKS service endpoints. For example, emr-containers.us-east-2.amazonaws.com. For more\n information, see Amazon EMR on EKS Service Endpoints.

                            \n
                          • \n
                          ", + "smithy.api#title": "Amazon EMR Containers" + } + }, + "com.amazonaws.emrcontainers#CancelJobRun": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#CancelJobRunRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#CancelJobRunResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/virtualclusters/{virtualClusterId}/jobruns/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#CancelJobRunRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the job run to cancel.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster for which the job run will be canceled.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#CancelJobRunResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output contains the ID of the cancelled job run.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output contains the virtual cluster ID for which the job run is cancelled.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#CloudWatchMonitoringConfiguration": { + "type": "structure", + "members": { + "logGroupName": { + "target": "com.amazonaws.emrcontainers#LogGroupName", + "traits": { + "smithy.api#documentation": "

                          The name of the log group for log publishing.

                          ", + "smithy.api#required": {} + } + }, + "logStreamNamePrefix": { + "target": "com.amazonaws.emrcontainers#String256", + "traits": { + "smithy.api#documentation": "

                          The specified name prefix for log streams.

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

                          A configuration for CloudWatch monitoring. You can configure your jobs to send log information to CloudWatch Logs.

                          " + } + }, + "com.amazonaws.emrcontainers#Configuration": { + "type": "structure", + "members": { + "classification": { + "target": "com.amazonaws.emrcontainers#String1024", + "traits": { + "smithy.api#documentation": "

                          The classification within a configuration.

                          ", + "smithy.api#required": {} + } + }, + "properties": { + "target": "com.amazonaws.emrcontainers#SensitivePropertiesMap", + "traits": { + "smithy.api#documentation": "

                          A set of properties specified within a configuration classification.

                          " + } + }, + "configurations": { + "target": "com.amazonaws.emrcontainers#ConfigurationList", + "traits": { + "smithy.api#documentation": "

                          A list of additional configurations to apply within a configuration object.

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

                          A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.

                          " + } + }, + "com.amazonaws.emrcontainers#ConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#Configuration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.emrcontainers#ConfigurationOverrides": { + "type": "structure", + "members": { + "applicationConfiguration": { + "target": "com.amazonaws.emrcontainers#ConfigurationList", + "traits": { + "smithy.api#documentation": "

                          The configurations for the application running by the job run.

                          " + } + }, + "monitoringConfiguration": { + "target": "com.amazonaws.emrcontainers#MonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

                          The configurations for monitoring.

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

                          A configuration specification to be used to override existing configurations.

                          " + } + }, + "com.amazonaws.emrcontainers#ContainerInfo": { + "type": "union", + "members": { + "eksInfo": { + "target": "com.amazonaws.emrcontainers#EksInfo", + "traits": { + "smithy.api#documentation": "

                          The information about the EKS cluster.

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

                          The information about the container used for a job run or a managed endpoint.

                          " + } + }, + "com.amazonaws.emrcontainers#ContainerProvider": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.emrcontainers#ContainerProviderType", + "traits": { + "smithy.api#documentation": "

                          The type of the container provider. EKS is the only supported type as of now.

                          ", + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.emrcontainers#String256", + "traits": { + "smithy.api#documentation": "

                          The ID of the container cluster.

                          ", + "smithy.api#required": {} + } + }, + "info": { + "target": "com.amazonaws.emrcontainers#ContainerInfo", + "traits": { + "smithy.api#documentation": "

                          The information about the container cluster.

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

                          The information about the container provider.

                          " + } + }, + "com.amazonaws.emrcontainers#ContainerProviderType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EKS", + "name": "EKS" + } + ] + } + }, + "com.amazonaws.emrcontainers#CreateManagedEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#CreateManagedEndpointRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#CreateManagedEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/virtualclusters/{virtualClusterId}/endpoints", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#CreateManagedEndpointRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the managed endpoint.

                          ", + "smithy.api#required": {} + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster for which a managed endpoint is created.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.emrcontainers#EndpointType", + "traits": { + "smithy.api#documentation": "

                          The type of the managed endpoint.

                          ", + "smithy.api#required": {} + } + }, + "releaseLabel": { + "target": "com.amazonaws.emrcontainers#ReleaseLabel", + "traits": { + "smithy.api#documentation": "

                          The Amazon EMR release version.

                          ", + "smithy.api#required": {} + } + }, + "executionRoleArn": { + "target": "com.amazonaws.emrcontainers#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the execution role.

                          ", + "smithy.api#required": {} + } + }, + "certificateArn": { + "target": "com.amazonaws.emrcontainers#ACMCertArn", + "traits": { + "smithy.api#documentation": "

                          The certificate ARN of the managed endpoint.

                          ", + "smithy.api#required": {} + } + }, + "configurationOverrides": { + "target": "com.amazonaws.emrcontainers#ConfigurationOverrides", + "traits": { + "smithy.api#documentation": "

                          The configuration settings that will be used to override existing configurations.

                          " + } + }, + "clientToken": { + "target": "com.amazonaws.emrcontainers#ClientToken", + "traits": { + "smithy.api#documentation": "

                          The client idempotency token for this create call.

                          ", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags of the managed endpoint.\n

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#CreateManagedEndpointResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output contains the ID of the managed endpoint.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The output contains the name of the managed endpoint.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#EndpointArn", + "traits": { + "smithy.api#documentation": "

                          The output contains the ARN of the managed endpoint.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output contains the ID of the virtual cluster.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#CreateVirtualCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#CreateVirtualClusterRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#CreateVirtualClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/virtualclusters", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#CreateVirtualClusterRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The specified name of the virtual cluster.

                          ", + "smithy.api#required": {} + } + }, + "containerProvider": { + "target": "com.amazonaws.emrcontainers#ContainerProvider", + "traits": { + "smithy.api#documentation": "

                          The container provider of the virtual cluster.

                          ", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.emrcontainers#ClientToken", + "traits": { + "smithy.api#documentation": "

                          The client token of the virtual cluster.

                          ", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags assigned to the virtual cluster.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#CreateVirtualClusterResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          This output contains the virtual cluster ID.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          This output contains the name of the virtual cluster.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#VirtualClusterArn", + "traits": { + "smithy.api#documentation": "

                          This output contains the ARN of virtual cluster.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#Date": { + "type": "timestamp" + }, + "com.amazonaws.emrcontainers#DeleteManagedEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DeleteManagedEndpointRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DeleteManagedEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/virtualclusters/{virtualClusterId}/endpoints/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DeleteManagedEndpointRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the managed endpoint.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the endpoint's virtual cluster.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#DeleteManagedEndpointResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output displays the ID of the managed endpoint.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The output displays the ID of the endpoint's virtual cluster.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#DeleteVirtualCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DeleteVirtualClusterRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DeleteVirtualClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/virtualclusters/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DeleteVirtualClusterRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster that will be deleted.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#DeleteVirtualClusterResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          This output contains the ID of the virtual cluster that will be deleted.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeJobRun": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DescribeJobRunRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DescribeJobRunResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters/{virtualClusterId}/jobruns/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DescribeJobRunRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the job run request.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster for which the job run is submitted.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeJobRunResponse": { + "type": "structure", + "members": { + "jobRun": { + "target": "com.amazonaws.emrcontainers#JobRun", + "traits": { + "smithy.api#documentation": "

                          The output displays information about a job run.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeManagedEndpoint": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DescribeManagedEndpointRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DescribeManagedEndpointResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters/{virtualClusterId}/endpoints/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DescribeManagedEndpointRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          This output displays ID of the managed endpoint.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the endpoint's virtual cluster.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeManagedEndpointResponse": { + "type": "structure", + "members": { + "endpoint": { + "target": "com.amazonaws.emrcontainers#Endpoint", + "traits": { + "smithy.api#documentation": "

                          This output displays information about a managed endpoint.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeVirtualCluster": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#DescribeVirtualClusterRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#DescribeVirtualClusterResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters/{id}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#DescribeVirtualClusterRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster that will be described.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#DescribeVirtualClusterResponse": { + "type": "structure", + "members": { + "virtualCluster": { + "target": "com.amazonaws.emrcontainers#VirtualCluster", + "traits": { + "smithy.api#documentation": "

                          This output displays information about the specified virtual cluster.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#EksInfo": { + "type": "structure", + "members": { + "namespace": { + "target": "com.amazonaws.emrcontainers#String256", + "traits": { + "smithy.api#documentation": "

                          The namespaces of the EKS cluster.

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

                          The information about the EKS cluster.

                          " + } + }, + "com.amazonaws.emrcontainers#Endpoint": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the endpoint.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the endpoint.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#EndpointArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the endpoint.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the endpoint's virtual cluster.

                          " + } + }, + "type": { + "target": "com.amazonaws.emrcontainers#EndpointType", + "traits": { + "smithy.api#documentation": "

                          The type of the endpoint.

                          " + } + }, + "state": { + "target": "com.amazonaws.emrcontainers#EndpointState", + "traits": { + "smithy.api#documentation": "

                          The state of the endpoint.

                          " + } + }, + "releaseLabel": { + "target": "com.amazonaws.emrcontainers#ReleaseLabel", + "traits": { + "smithy.api#documentation": "

                          The EMR release version to be used for the endpoint.

                          " + } + }, + "executionRoleArn": { + "target": "com.amazonaws.emrcontainers#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

                          The execution role ARN of the endpoint.

                          " + } + }, + "certificateArn": { + "target": "com.amazonaws.emrcontainers#ACMCertArn", + "traits": { + "smithy.api#documentation": "

                          The certificate ARN of the endpoint.

                          " + } + }, + "configurationOverrides": { + "target": "com.amazonaws.emrcontainers#ConfigurationOverrides", + "traits": { + "smithy.api#documentation": "

                          The configuration settings that are used to override existing configurations for endpoints.

                          " + } + }, + "serverUrl": { + "target": "com.amazonaws.emrcontainers#UriString", + "traits": { + "smithy.api#documentation": "

                          The server URL of the endpoint.

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time when the endpoint was created.

                          " + } + }, + "securityGroup": { + "target": "com.amazonaws.emrcontainers#String256", + "traits": { + "smithy.api#documentation": "

                          The security group configuration of the endpoint. \n

                          " + } + }, + "subnetIds": { + "target": "com.amazonaws.emrcontainers#SubnetIds", + "traits": { + "smithy.api#documentation": "

                          The subnet IDs of the endpoint.\n

                          " + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags of the endpoint. \n

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

                          This entity represents the endpoint that is managed by Amazon EMR on EKS.

                          " + } + }, + "com.amazonaws.emrcontainers#EndpointArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 60, + "max": 1024 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/virtualclusters\\/[0-9a-zA-Z]+\\/endpoints\\/[0-9a-zA-Z]+$" + } + }, + "com.amazonaws.emrcontainers#EndpointState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "TERMINATING", + "name": "TERMINATING" + }, + { + "value": "TERMINATED", + "name": "TERMINATED" + }, + { + "value": "TERMINATED_WITH_ERRORS", + "name": "TERMINATED_WITH_ERRORS" + } + ] + } + }, + "com.amazonaws.emrcontainers#EndpointStates": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#EndpointState" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.emrcontainers#EndpointType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#EndpointTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#EndpointType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.emrcontainers#Endpoints": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#Endpoint" + } + }, + "com.amazonaws.emrcontainers#EntryPointArgument": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10280 + }, + "smithy.api#pattern": "(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.emrcontainers#EntryPointArguments": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#EntryPointArgument" + } + }, + "com.amazonaws.emrcontainers#EntryPointPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.emrcontainers#FailureReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "INTERNAL_ERROR", + "name": "INTERNAL_ERROR" + }, + { + "value": "USER_ERROR", + "name": "USER_ERROR" + }, + { + "value": "VALIDATION_ERROR", + "name": "VALIDATION_ERROR" + }, + { + "value": "CLUSTER_UNAVAILABLE", + "name": "CLUSTER_UNAVAILABLE" + } + ] + } + }, + "com.amazonaws.emrcontainers#IAMRoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$" + } + }, + "com.amazonaws.emrcontainers#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.emrcontainers#String1024" + } + }, + "traits": { + "smithy.api#documentation": "

                          This is an internal server exception.

                          ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.emrcontainers#JavaInteger": { + "type": "integer", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.emrcontainers#JobArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 60, + "max": 1024 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/virtualclusters\\/[0-9a-zA-Z]+\\/jobruns\\/[0-9a-zA-Z]+$" + } + }, + "com.amazonaws.emrcontainers#JobDriver": { + "type": "structure", + "members": { + "sparkSubmitJobDriver": { + "target": "com.amazonaws.emrcontainers#SparkSubmitJobDriver", + "traits": { + "smithy.api#documentation": "

                          The job driver parameters specified for spark submit.

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

                          Specify the driver that the job runs on.

                          " + } + }, + "com.amazonaws.emrcontainers#JobRun": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the job run.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the job run.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the job run's virtual cluster.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#JobArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of job run.

                          " + } + }, + "state": { + "target": "com.amazonaws.emrcontainers#JobRunState", + "traits": { + "smithy.api#documentation": "

                          The state of the job run.

                          " + } + }, + "clientToken": { + "target": "com.amazonaws.emrcontainers#ClientToken", + "traits": { + "smithy.api#documentation": "

                          The client token used to start a job run.

                          " + } + }, + "executionRoleArn": { + "target": "com.amazonaws.emrcontainers#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

                          The execution role ARN of the job run.

                          " + } + }, + "releaseLabel": { + "target": "com.amazonaws.emrcontainers#ReleaseLabel", + "traits": { + "smithy.api#documentation": "

                          The release version of Amazon EMR.

                          " + } + }, + "configurationOverrides": { + "target": "com.amazonaws.emrcontainers#ConfigurationOverrides", + "traits": { + "smithy.api#documentation": "

                          The configuration settings that are used to override default configuration.

                          " + } + }, + "jobDriver": { + "target": "com.amazonaws.emrcontainers#JobDriver", + "traits": { + "smithy.api#documentation": "

                          Parameters of job driver for the job run.

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time when the job run was created.

                          " + } + }, + "createdBy": { + "target": "com.amazonaws.emrcontainers#RequestIdentityUserArn", + "traits": { + "smithy.api#documentation": "

                          The user who created the job run.

                          " + } + }, + "finishedAt": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time when the job run has finished.

                          " + } + }, + "stateDetails": { + "target": "com.amazonaws.emrcontainers#String256", + "traits": { + "smithy.api#documentation": "

                          Additional details of the job run state.

                          " + } + }, + "failureReason": { + "target": "com.amazonaws.emrcontainers#FailureReason", + "traits": { + "smithy.api#documentation": "

                          The reasons why the job run has failed.

                          " + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The assigned tags of the job run.

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

                          This entity describes a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

                          " + } + }, + "com.amazonaws.emrcontainers#JobRunState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "PENDING" + }, + { + "value": "SUBMITTED", + "name": "SUBMITTED" + }, + { + "value": "RUNNING", + "name": "RUNNING" + }, + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "CANCELLED", + "name": "CANCELLED" + }, + { + "value": "CANCEL_PENDING", + "name": "CANCEL_PENDING" + }, + { + "value": "COMPLETED", + "name": "COMPLETED" + } + ] + } + }, + "com.amazonaws.emrcontainers#JobRunStates": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#JobRunState" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.emrcontainers#JobRuns": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#JobRun" + } + }, + "com.amazonaws.emrcontainers#ListJobRuns": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#ListJobRunsRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#ListJobRunsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters/{virtualClusterId}/jobruns", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.emrcontainers#ListJobRunsRequest": { + "type": "structure", + "members": { + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster for which to list the job run.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "createdBefore": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time before which the job runs were submitted.

                          ", + "smithy.api#httpQuery": "createdBefore" + } + }, + "createdAfter": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time after which the job runs were submitted.

                          ", + "smithy.api#httpQuery": "createdAfter" + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the job run.

                          ", + "smithy.api#httpQuery": "name" + } + }, + "states": { + "target": "com.amazonaws.emrcontainers#JobRunStates", + "traits": { + "smithy.api#documentation": "

                          The states of the job run.

                          ", + "smithy.api#httpQuery": "states" + } + }, + "maxResults": { + "target": "com.amazonaws.emrcontainers#JavaInteger", + "traits": { + "smithy.api#documentation": "

                          The maximum number of job runs that can be listed.

                          ", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of job runs to return.

                          ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.emrcontainers#ListJobRunsResponse": { + "type": "structure", + "members": { + "jobRuns": { + "target": "com.amazonaws.emrcontainers#JobRuns", + "traits": { + "smithy.api#documentation": "

                          This output lists information about the specified job runs.

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          This output displays the token for the next set of job runs.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#ListManagedEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#ListManagedEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#ListManagedEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters/{virtualClusterId}/endpoints", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.emrcontainers#ListManagedEndpointsRequest": { + "type": "structure", + "members": { + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "createdBefore": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time before which the endpoints are created.

                          ", + "smithy.api#httpQuery": "createdBefore" + } + }, + "createdAfter": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time after which the endpoints are created.

                          ", + "smithy.api#httpQuery": "createdAfter" + } + }, + "types": { + "target": "com.amazonaws.emrcontainers#EndpointTypes", + "traits": { + "smithy.api#documentation": "

                          The types of the managed endpoints.

                          ", + "smithy.api#httpQuery": "types" + } + }, + "states": { + "target": "com.amazonaws.emrcontainers#EndpointStates", + "traits": { + "smithy.api#documentation": "

                          The states of the managed endpoints.

                          ", + "smithy.api#httpQuery": "states" + } + }, + "maxResults": { + "target": "com.amazonaws.emrcontainers#JavaInteger", + "traits": { + "smithy.api#documentation": "

                          The maximum number of managed endpoints that can be listed.

                          ", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of managed endpoints to return.

                          ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.emrcontainers#ListManagedEndpointsResponse": { + "type": "structure", + "members": { + "endpoints": { + "target": "com.amazonaws.emrcontainers#Endpoints", + "traits": { + "smithy.api#documentation": "

                          The managed endpoints to be listed.

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of endpoints to return.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the tags assigned to the resources.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.emrcontainers#RsiArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of tagged resources.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags assigned to resources.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#ListVirtualClusters": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#ListVirtualClustersRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#ListVirtualClustersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/virtualclusters", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.emrcontainers#ListVirtualClustersRequest": { + "type": "structure", + "members": { + "containerProviderId": { + "target": "com.amazonaws.emrcontainers#String1024", + "traits": { + "smithy.api#documentation": "

                          The container provider ID of the virtual cluster.

                          ", + "smithy.api#httpQuery": "containerProviderId" + } + }, + "containerProviderType": { + "target": "com.amazonaws.emrcontainers#ContainerProviderType", + "traits": { + "smithy.api#documentation": "

                          The container provider type of the virtual cluster. EKS is the only supported type as of now.

                          ", + "smithy.api#httpQuery": "containerProviderType" + } + }, + "createdAfter": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time after which the virtual clusters are created.

                          ", + "smithy.api#httpQuery": "createdAfter" + } + }, + "createdBefore": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time before which the virtual clusters are created.

                          ", + "smithy.api#httpQuery": "createdBefore" + } + }, + "states": { + "target": "com.amazonaws.emrcontainers#VirtualClusterStates", + "traits": { + "smithy.api#documentation": "

                          The states of the requested virtual clusters.

                          ", + "smithy.api#httpQuery": "states" + } + }, + "maxResults": { + "target": "com.amazonaws.emrcontainers#JavaInteger", + "traits": { + "smithy.api#documentation": "

                          The maximum number of virtual clusters that can be listed.

                          ", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of virtual clusters to return.

                          ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.emrcontainers#ListVirtualClustersResponse": { + "type": "structure", + "members": { + "virtualClusters": { + "target": "com.amazonaws.emrcontainers#VirtualClusters", + "traits": { + "smithy.api#documentation": "

                          This output lists the specified virtual clusters.

                          " + } + }, + "nextToken": { + "target": "com.amazonaws.emrcontainers#NextToken", + "traits": { + "smithy.api#documentation": "

                          This output displays the token for the next set of virtual clusters.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#LogGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "[\\.\\-_/#A-Za-z0-9]+" + } + }, + "com.amazonaws.emrcontainers#MonitoringConfiguration": { + "type": "structure", + "members": { + "persistentAppUI": { + "target": "com.amazonaws.emrcontainers#PersistentAppUI", + "traits": { + "smithy.api#documentation": "

                          Monitoring configurations for the persistent application UI.

                          " + } + }, + "cloudWatchMonitoringConfiguration": { + "target": "com.amazonaws.emrcontainers#CloudWatchMonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

                          Monitoring configurations for CloudWatch.

                          " + } + }, + "s3MonitoringConfiguration": { + "target": "com.amazonaws.emrcontainers#S3MonitoringConfiguration", + "traits": { + "smithy.api#documentation": "

                          Amazon S3 configuration for monitoring log publishing.

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

                          Configuration setting for monitoring.

                          " + } + }, + "com.amazonaws.emrcontainers#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#PersistentAppUI": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.emrcontainers#ReleaseLabel": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "[\\.\\-_/A-Za-z0-9]+" + } + }, + "com.amazonaws.emrcontainers#RequestIdentityUserArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):(iam|sts)::(\\d{12})?:[\\w/+=,.@-]+$" + } + }, + "com.amazonaws.emrcontainers#ResourceIdString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "[0-9a-z]+" + } + }, + "com.amazonaws.emrcontainers#ResourceNameString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "[\\.\\-_/#A-Za-z0-9]+" + } + }, + "com.amazonaws.emrcontainers#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.emrcontainers#String1024" + } + }, + "traits": { + "smithy.api#documentation": "

                          The specified resource was not found.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.emrcontainers#RsiArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 60, + "max": 500 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):/virtualclusters/.+$" + } + }, + "com.amazonaws.emrcontainers#S3MonitoringConfiguration": { + "type": "structure", + "members": { + "logUri": { + "target": "com.amazonaws.emrcontainers#UriString", + "traits": { + "smithy.api#documentation": "

                          Amazon S3 destination URI for log publishing.

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

                          Amazon S3 configuration for monitoring log publishing. You can configure your jobs to send log information to Amazon S3.

                          " + } + }, + "com.amazonaws.emrcontainers#SensitivePropertiesMap": { + "type": "map", + "key": { + "target": "com.amazonaws.emrcontainers#String1024" + }, + "value": { + "target": "com.amazonaws.emrcontainers#String1024" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.emrcontainers#SparkSubmitJobDriver": { + "type": "structure", + "members": { + "entryPoint": { + "target": "com.amazonaws.emrcontainers#EntryPointPath", + "traits": { + "smithy.api#documentation": "

                          The entry point of job application.

                          ", + "smithy.api#required": {} + } + }, + "entryPointArguments": { + "target": "com.amazonaws.emrcontainers#EntryPointArguments", + "traits": { + "smithy.api#documentation": "

                          The arguments for job application.

                          " + } + }, + "sparkSubmitParameters": { + "target": "com.amazonaws.emrcontainers#SparkSubmitParameters", + "traits": { + "smithy.api#documentation": "

                          The Spark submit parameters that are used for job runs.

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

                          The information about job driver for Spark submit.

                          " + } + }, + "com.amazonaws.emrcontainers#SparkSubmitParameters": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.emrcontainers#StartJobRun": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#StartJobRunRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#StartJobRunResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/virtualclusters/{virtualClusterId}/jobruns", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#StartJobRunRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the job run.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The virtual cluster ID for which the job run request is submitted.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.emrcontainers#ClientToken", + "traits": { + "smithy.api#documentation": "

                          The client idempotency token of the job run request.

                          ", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + }, + "executionRoleArn": { + "target": "com.amazonaws.emrcontainers#IAMRoleArn", + "traits": { + "smithy.api#documentation": "

                          The execution role ARN for the job run.

                          ", + "smithy.api#required": {} + } + }, + "releaseLabel": { + "target": "com.amazonaws.emrcontainers#ReleaseLabel", + "traits": { + "smithy.api#documentation": "

                          The Amazon EMR release version to use for the job run.

                          ", + "smithy.api#required": {} + } + }, + "jobDriver": { + "target": "com.amazonaws.emrcontainers#JobDriver", + "traits": { + "smithy.api#documentation": "

                          The job driver for the job run.

                          ", + "smithy.api#required": {} + } + }, + "configurationOverrides": { + "target": "com.amazonaws.emrcontainers#ConfigurationOverrides", + "traits": { + "smithy.api#documentation": "

                          The configuration overrides for the job run.

                          " + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags assigned to job runs.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#StartJobRunResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          This output displays the started job run ID.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          This output displays the name of the started job run.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#JobArn", + "traits": { + "smithy.api#documentation": "

                          This output lists the ARN of job run.

                          " + } + }, + "virtualClusterId": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          This output displays the virtual cluster ID for which the job run was submitted.

                          " + } + } + } + }, + "com.amazonaws.emrcontainers#String1024": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#String128": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#String256": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#StringEmpty256": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": ".*\\S.*" + } + }, + "com.amazonaws.emrcontainers#SubnetIds": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#String256" + } + }, + "com.amazonaws.emrcontainers#TagKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#String128" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.emrcontainers#TagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.emrcontainers#String128" + }, + "value": { + "target": "com.amazonaws.emrcontainers#StringEmpty256" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.emrcontainers#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.emrcontainers#RsiArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of resources.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The tags assigned to resources.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.emrcontainers#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.emrcontainers#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.emrcontainers#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.emrcontainers#InternalServerException" + }, + { + "target": "com.amazonaws.emrcontainers#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.emrcontainers#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes tags from resources.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.emrcontainers#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.emrcontainers#RsiArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of resources.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.emrcontainers#TagKeyList", + "traits": { + "smithy.api#documentation": "

                          The tag keys of the resources.

                          ", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.emrcontainers#UntagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.emrcontainers#UriString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10280 + }, + "smithy.api#pattern": "[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*" + } + }, + "com.amazonaws.emrcontainers#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.emrcontainers#String1024" + } + }, + "traits": { + "smithy.api#documentation": "

                          There are invalid parameters in the client request.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.emrcontainers#VirtualCluster": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.emrcontainers#ResourceIdString", + "traits": { + "smithy.api#documentation": "

                          The ID of the virtual cluster.

                          " + } + }, + "name": { + "target": "com.amazonaws.emrcontainers#ResourceNameString", + "traits": { + "smithy.api#documentation": "

                          The name of the virtual cluster.

                          " + } + }, + "arn": { + "target": "com.amazonaws.emrcontainers#VirtualClusterArn", + "traits": { + "smithy.api#documentation": "

                          The ARN of the virtual cluster.

                          " + } + }, + "state": { + "target": "com.amazonaws.emrcontainers#VirtualClusterState", + "traits": { + "smithy.api#documentation": "

                          The state of the virtual cluster.

                          " + } + }, + "containerProvider": { + "target": "com.amazonaws.emrcontainers#ContainerProvider", + "traits": { + "smithy.api#documentation": "

                          The container provider of the virtual cluster.

                          " + } + }, + "createdAt": { + "target": "com.amazonaws.emrcontainers#Date", + "traits": { + "smithy.api#documentation": "

                          The date and time when the virtual cluster is created.

                          " + } + }, + "tags": { + "target": "com.amazonaws.emrcontainers#TagMap", + "traits": { + "smithy.api#documentation": "

                          The assigned tags of the virtual cluster.

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

                          This entity describes a virtual cluster. A virtual cluster is a Kubernetes namespace that Amazon EMR is registered with. Amazon EMR uses virtual clusters to run jobs and host endpoints. Multiple virtual clusters can be backed by the same physical cluster. However, each virtual cluster maps to one namespace on an EKS cluster. Virtual clusters do not create any active resources that contribute to your bill or that require lifecycle management outside the service.

                          " + } + }, + "com.amazonaws.emrcontainers#VirtualClusterArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 60, + "max": 1024 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/virtualclusters\\/[0-9a-zA-Z]+$" + } + }, + "com.amazonaws.emrcontainers#VirtualClusterState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "RUNNING", + "name": "RUNNING" + }, + { + "value": "TERMINATING", + "name": "TERMINATING" + }, + { + "value": "TERMINATED", + "name": "TERMINATED" + }, + { + "value": "ARRESTED", + "name": "ARRESTED" + } + ] + } + }, + "com.amazonaws.emrcontainers#VirtualClusterStates": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#VirtualClusterState" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.emrcontainers#VirtualClusters": { + "type": "list", + "member": { + "target": "com.amazonaws.emrcontainers#VirtualCluster" + } + } + } +} diff --git a/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json b/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json index 4bd1057cd397b..08ef6068ce8ec 100644 --- a/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json +++ b/codegen/sdk-codegen/aws-models/forecast.2018-06-26.json @@ -183,6 +183,10 @@ { "value": "timestamp", "name": "TIMESTAMP" + }, + { + "value": "geolocation", + "name": "GEOLOCATION" } ] } @@ -427,6 +431,24 @@ "smithy.api#documentation": "

                          The format of timestamps in the dataset. The format that you specify depends on the\n DataFrequency specified when the dataset was created. The following formats are\n supported

                          \n
                            \n
                          • \n

                            \"yyyy-MM-dd\"

                            \n

                            For the following data frequencies: Y, M, W, and D

                            \n
                          • \n
                          • \n

                            \"yyyy-MM-dd HH:mm:ss\"

                            \n

                            For the following data frequencies: H, 30min, 15min, and 1min; and optionally, for: Y,\n M, W, and D

                            \n
                          • \n
                          \n

                          If the format isn't specified, Amazon Forecast expects the format to be \"yyyy-MM-dd\n HH:mm:ss\".

                          " } }, + "TimeZone": { + "target": "com.amazonaws.forecast#TimeZone", + "traits": { + "smithy.api#documentation": "

                          A single time zone for every item in your dataset. This option is ideal for datasets\n with all timestamps within a single time zone, or if all timestamps are normalized to a\n single time zone.

                          \n

                          Refer to the Joda-Time\n API for a complete list of valid time zone names.

                          " + } + }, + "UseGeolocationForTimeZone": { + "target": "com.amazonaws.forecast#UseGeolocationForTimeZone", + "traits": { + "smithy.api#documentation": "

                          Automatically derive time zone information from the geolocation attribute. This option\n is ideal for datasets that contain timestamps in multiple time zones and those\n timestamps are expressed in local time.

                          " + } + }, + "GeolocationFormat": { + "target": "com.amazonaws.forecast#GeolocationFormat", + "traits": { + "smithy.api#documentation": "

                          The format of the geolocation attribute. The geolocation attribute can be formatted in\n one of two ways:

                          \n
                            \n
                          • \n

                            \n LAT_LONG - the latitude and longitude in decimal format (Example: 47.61_-122.33).

                            \n
                          • \n
                          • \n

                            \n CC_POSTALCODE (US Only) - the country code (US), followed by the 5-digit ZIP code (Example: US_98121).

                            \n
                          • \n
                          " + } + }, "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { @@ -706,7 +728,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two CSV files are exported to a specified\n S3 bucket.

                          \n

                          You must specify a DataDestination object that includes an AWS Identity and Access Management\n (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see\n aws-forecast-iam-roles.

                          " + "smithy.api#documentation": "

                          Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported\n to your specified S3 bucket.

                          \n

                          The export file names will match the following conventions:

                          \n

                          \n __.csv\n

                          \n

                          The component is in Java SimpleDate format\n (yyyy-MM-ddTHH-mm-ssZ).

                          \n

                          You must specify a DataDestination object that includes an Amazon S3\n bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3\n bucket. For more information, see aws-forecast-iam-roles.

                          \n \n

                          The Status of the export job must be ACTIVE before\n you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

                          \n
                          " } }, "com.amazonaws.forecast#CreatePredictorBacktestExportJobRequest": { @@ -861,7 +883,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The destination for an export job, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast\n to access the location and, optionally, an AWS Key Management Service (KMS) key.

                          " + "smithy.api#documentation": "

                          The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast\n to access the location, and an AWS Key Management Service (KMS) key (optional).

                          " } }, "com.amazonaws.forecast#DataSource": { @@ -1434,6 +1456,24 @@ "smithy.api#documentation": "

                          The format of timestamps in the dataset. The format that you specify depends on the\n DataFrequency specified when the dataset was created. The following formats are\n supported

                          \n
                            \n
                          • \n

                            \"yyyy-MM-dd\"

                            \n

                            For the following data frequencies: Y, M, W, and D

                            \n
                          • \n
                          • \n

                            \"yyyy-MM-dd HH:mm:ss\"

                            \n

                            For the following data frequencies: H, 30min, 15min, and 1min; and optionally, for: Y,\n M, W, and D

                            \n
                          • \n
                          " } }, + "TimeZone": { + "target": "com.amazonaws.forecast#TimeZone", + "traits": { + "smithy.api#documentation": "

                          The single time zone applied to every item in the dataset

                          " + } + }, + "UseGeolocationForTimeZone": { + "target": "com.amazonaws.forecast#UseGeolocationForTimeZone", + "traits": { + "smithy.api#documentation": "

                          Whether TimeZone is automatically derived from the geolocation\n attribute.

                          " + } + }, + "GeolocationFormat": { + "target": "com.amazonaws.forecast#GeolocationFormat", + "traits": { + "smithy.api#documentation": "

                          The format of the geolocation attribute. Valid Values:\"LAT_LONG\" and\n \"CC_POSTALCODE\".

                          " + } + }, "DataSource": { "target": "com.amazonaws.forecast#DataSource", "traits": { @@ -2459,6 +2499,16 @@ "smithy.api#pattern": "^Y|M|W|D|H|30min|15min|10min|5min|1min$" } }, + "com.amazonaws.forecast#GeolocationFormat": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_]+$" + } + }, "com.amazonaws.forecast#GetAccuracyMetrics": { "type": "operation", "input": { @@ -3628,20 +3678,20 @@ "Name": { "target": "com.amazonaws.forecast#Name", "traits": { - "smithy.api#documentation": "

                          The name of the feature. This must be \"holiday\".

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

                          The name of the feature. Valid values: \"holiday\" and \"weather\".

                          ", "smithy.api#required": {} } }, "Value": { "target": "com.amazonaws.forecast#Value", "traits": { - "smithy.api#documentation": "

                          One of the following 2 letter country codes:

                          \n
                            \n
                          • \n

                            \"AL\" - ALBANIA

                            \n
                          • \n
                          • \n

                            \"AR\" - ARGENTINA

                            \n
                          • \n
                          • \n

                            \"AT\" - AUSTRIA

                            \n
                          • \n
                          • \n

                            \"AU\" - AUSTRALIA

                            \n
                          • \n
                          • \n

                            \"BA\" - BOSNIA HERZEGOVINA

                            \n
                          • \n
                          • \n

                            \"BE\" - BELGIUM

                            \n
                          • \n
                          • \n

                            \"BG\" - BULGARIA

                            \n
                          • \n
                          • \n

                            \"BO\" - BOLIVIA

                            \n
                          • \n
                          • \n

                            \"BR\" - BRAZIL

                            \n
                          • \n
                          • \n

                            \"BY\" - BELARUS

                            \n
                          • \n
                          • \n

                            \"CA\" - CANADA

                            \n
                          • \n
                          • \n

                            \"CL\" - CHILE

                            \n
                          • \n
                          • \n

                            \"CO\" - COLOMBIA

                            \n
                          • \n
                          • \n

                            \"CR\" - COSTA RICA

                            \n
                          • \n
                          • \n

                            \"HR\" - CROATIA

                            \n
                          • \n
                          • \n

                            \"CZ\" - CZECH REPUBLIC

                            \n
                          • \n
                          • \n

                            \"DK\" - DENMARK

                            \n
                          • \n
                          • \n

                            \"EC\" - ECUADOR

                            \n
                          • \n
                          • \n

                            \"EE\" - ESTONIA

                            \n
                          • \n
                          • \n

                            \"ET\" - ETHIOPIA

                            \n
                          • \n
                          • \n

                            \"FI\" - FINLAND

                            \n
                          • \n
                          • \n

                            \"FR\" - FRANCE

                            \n
                          • \n
                          • \n

                            \"DE\" - GERMANY

                            \n
                          • \n
                          • \n

                            \"GR\" - GREECE

                            \n
                          • \n
                          • \n

                            \"HU\" - HUNGARY

                            \n
                          • \n
                          • \n

                            \"IS\" - ICELAND

                            \n
                          • \n
                          • \n

                            \"IN\" - INDIA

                            \n
                          • \n
                          • \n

                            \"IE\" - IRELAND

                            \n
                          • \n
                          • \n

                            \"IT\" - ITALY

                            \n
                          • \n
                          • \n

                            \"JP\" - JAPAN

                            \n
                          • \n
                          • \n

                            \"KZ\" - KAZAKHSTAN

                            \n
                          • \n
                          • \n

                            \"KR\" - KOREA

                            \n
                          • \n
                          • \n

                            \"LV\" - LATVIA

                            \n
                          • \n
                          • \n

                            \"LI\" - LIECHTENSTEIN

                            \n
                          • \n
                          • \n

                            \"LT\" - LITHUANIA

                            \n
                          • \n
                          • \n

                            \"LU\" - LUXEMBOURG

                            \n
                          • \n
                          • \n

                            \"MK\" - MACEDONIA

                            \n
                          • \n
                          • \n

                            \"MT\" - MALTA

                            \n
                          • \n
                          • \n

                            \"MX\" - MEXICO

                            \n
                          • \n
                          • \n

                            \"MD\" - MOLDOVA

                            \n
                          • \n
                          • \n

                            \"ME\" - MONTENEGRO

                            \n
                          • \n
                          • \n

                            \"NL\" - NETHERLANDS

                            \n
                          • \n
                          • \n

                            \"NZ\" - NEW ZEALAND

                            \n
                          • \n
                          • \n

                            \"NI\" - NICARAGUA

                            \n
                          • \n
                          • \n

                            \"NG\" - NIGERIA

                            \n
                          • \n
                          • \n

                            \"NO\" - NORWAY

                            \n
                          • \n
                          • \n

                            \"PA\" - PANAMA

                            \n
                          • \n
                          • \n

                            \"PY\" - PARAGUAY

                            \n
                          • \n
                          • \n

                            \"PE\" - PERU

                            \n
                          • \n
                          • \n

                            \"PL\" - POLAND

                            \n
                          • \n
                          • \n

                            \"PT\" - PORTUGAL

                            \n
                          • \n
                          • \n

                            \"RO\" - ROMANIA

                            \n
                          • \n
                          • \n

                            \"RU\" - RUSSIA

                            \n
                          • \n
                          • \n

                            \"RS\" - SERBIA

                            \n
                          • \n
                          • \n

                            \"SK\" - SLOVAKIA

                            \n
                          • \n
                          • \n

                            \"SI\" - SLOVENIA

                            \n
                          • \n
                          • \n

                            \"ZA\" - SOUTH AFRICA

                            \n
                          • \n
                          • \n

                            \"ES\" - SPAIN

                            \n
                          • \n
                          • \n

                            \"SE\" - SWEDEN

                            \n
                          • \n
                          • \n

                            \"CH\" - SWITZERLAND

                            \n
                          • \n
                          • \n

                            \"UA\" - UKRAINE

                            \n
                          • \n
                          • \n

                            \"AE\" - UNITED ARAB EMIRATES

                            \n
                          • \n
                          • \n

                            \"US\" - UNITED STATES

                            \n
                          • \n
                          • \n

                            \"UK\" - UNITED KINGDOM

                            \n
                          • \n
                          • \n

                            \"UY\" - URUGUAY

                            \n
                          • \n
                          • \n

                            \"VE\" - VENEZUELA

                            \n
                          • \n
                          ", + "smithy.api#documentation": "

                          \n Weather Index\n

                          \n

                          To enable the Weather Index, set the value to \"true\"\n

                          \n

                          \n Holidays\n

                          \n

                          To enable Holidays, specify a country with one of the following two-letter country\n codes:

                          \n
                            \n
                          • \n

                            \"AL\" - ALBANIA

                            \n
                          • \n
                          • \n

                            \"AR\" - ARGENTINA

                            \n
                          • \n
                          • \n

                            \"AT\" - AUSTRIA

                            \n
                          • \n
                          • \n

                            \"AU\" - AUSTRALIA

                            \n
                          • \n
                          • \n

                            \"BA\" - BOSNIA HERZEGOVINA

                            \n
                          • \n
                          • \n

                            \"BE\" - BELGIUM

                            \n
                          • \n
                          • \n

                            \"BG\" - BULGARIA

                            \n
                          • \n
                          • \n

                            \"BO\" - BOLIVIA

                            \n
                          • \n
                          • \n

                            \"BR\" - BRAZIL

                            \n
                          • \n
                          • \n

                            \"BY\" - BELARUS

                            \n
                          • \n
                          • \n

                            \"CA\" - CANADA

                            \n
                          • \n
                          • \n

                            \"CL\" - CHILE

                            \n
                          • \n
                          • \n

                            \"CO\" - COLOMBIA

                            \n
                          • \n
                          • \n

                            \"CR\" - COSTA RICA

                            \n
                          • \n
                          • \n

                            \"HR\" - CROATIA

                            \n
                          • \n
                          • \n

                            \"CZ\" - CZECH REPUBLIC

                            \n
                          • \n
                          • \n

                            \"DK\" - DENMARK

                            \n
                          • \n
                          • \n

                            \"EC\" - ECUADOR

                            \n
                          • \n
                          • \n

                            \"EE\" - ESTONIA

                            \n
                          • \n
                          • \n

                            \"ET\" - ETHIOPIA

                            \n
                          • \n
                          • \n

                            \"FI\" - FINLAND

                            \n
                          • \n
                          • \n

                            \"FR\" - FRANCE

                            \n
                          • \n
                          • \n

                            \"DE\" - GERMANY

                            \n
                          • \n
                          • \n

                            \"GR\" - GREECE

                            \n
                          • \n
                          • \n

                            \"HU\" - HUNGARY

                            \n
                          • \n
                          • \n

                            \"IS\" - ICELAND

                            \n
                          • \n
                          • \n

                            \"IN\" - INDIA

                            \n
                          • \n
                          • \n

                            \"IE\" - IRELAND

                            \n
                          • \n
                          • \n

                            \"IT\" - ITALY

                            \n
                          • \n
                          • \n

                            \"JP\" - JAPAN

                            \n
                          • \n
                          • \n

                            \"KZ\" - KAZAKHSTAN

                            \n
                          • \n
                          • \n

                            \"KR\" - KOREA

                            \n
                          • \n
                          • \n

                            \"LV\" - LATVIA

                            \n
                          • \n
                          • \n

                            \"LI\" - LIECHTENSTEIN

                            \n
                          • \n
                          • \n

                            \"LT\" - LITHUANIA

                            \n
                          • \n
                          • \n

                            \"LU\" - LUXEMBOURG

                            \n
                          • \n
                          • \n

                            \"MK\" - MACEDONIA

                            \n
                          • \n
                          • \n

                            \"MT\" - MALTA

                            \n
                          • \n
                          • \n

                            \"MX\" - MEXICO

                            \n
                          • \n
                          • \n

                            \"MD\" - MOLDOVA

                            \n
                          • \n
                          • \n

                            \"ME\" - MONTENEGRO

                            \n
                          • \n
                          • \n

                            \"NL\" - NETHERLANDS

                            \n
                          • \n
                          • \n

                            \"NZ\" - NEW ZEALAND

                            \n
                          • \n
                          • \n

                            \"NI\" - NICARAGUA

                            \n
                          • \n
                          • \n

                            \"NG\" - NIGERIA

                            \n
                          • \n
                          • \n

                            \"NO\" - NORWAY

                            \n
                          • \n
                          • \n

                            \"PA\" - PANAMA

                            \n
                          • \n
                          • \n

                            \"PY\" - PARAGUAY

                            \n
                          • \n
                          • \n

                            \"PE\" - PERU

                            \n
                          • \n
                          • \n

                            \"PL\" - POLAND

                            \n
                          • \n
                          • \n

                            \"PT\" - PORTUGAL

                            \n
                          • \n
                          • \n

                            \"RO\" - ROMANIA

                            \n
                          • \n
                          • \n

                            \"RU\" - RUSSIA

                            \n
                          • \n
                          • \n

                            \"RS\" - SERBIA

                            \n
                          • \n
                          • \n

                            \"SK\" - SLOVAKIA

                            \n
                          • \n
                          • \n

                            \"SI\" - SLOVENIA

                            \n
                          • \n
                          • \n

                            \"ZA\" - SOUTH AFRICA

                            \n
                          • \n
                          • \n

                            \"ES\" - SPAIN

                            \n
                          • \n
                          • \n

                            \"SE\" - SWEDEN

                            \n
                          • \n
                          • \n

                            \"CH\" - SWITZERLAND

                            \n
                          • \n
                          • \n

                            \"UA\" - UKRAINE

                            \n
                          • \n
                          • \n

                            \"AE\" - UNITED ARAB EMIRATES

                            \n
                          • \n
                          • \n

                            \"US\" - UNITED STATES

                            \n
                          • \n
                          • \n

                            \"UK\" - UNITED KINGDOM

                            \n
                          • \n
                          • \n

                            \"UY\" - URUGUAY

                            \n
                          • \n
                          • \n

                            \"VE\" - VENEZUELA

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

                          Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object.

                          \n

                          The only supported feature is Holidays. If you use the calendar, all data in the\n datasets should belong to the same country as the calendar. For the holiday calendar data, see\n the Jollyday website.

                          " + "smithy.api#documentation": "

                          Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in\n featurizations.

                          \n

                          \n Weather Index\n

                          \n

                          The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and\n projected weather information into your model. The Weather Index supplements your datasets\n with over two years of historical weather data and up to 14 days of projected weather data.\n For more information, see Amazon Forecast Weather Index.

                          \n

                          \n Holidays\n

                          \n

                          Holidays is a built-in featurization that incorporates a feature-engineered dataset of\n national holiday information into your model. It provides native support for the holiday\n calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more\n information, see Holidays Featurization.

                          " } }, "com.amazonaws.forecast#SupplementaryFeatures": { @@ -3652,7 +3702,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 1 + "max": 2 } } }, @@ -3685,7 +3735,8 @@ "min": 1, "max": 128 }, - "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "smithy.api#sensitive": {} } }, "com.amazonaws.forecast#TagKeys": { @@ -3753,7 +3804,8 @@ "min": 0, "max": 256 }, - "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "smithy.api#sensitive": {} } }, "com.amazonaws.forecast#Tags": { @@ -3812,6 +3864,16 @@ "target": "com.amazonaws.forecast#WindowSummary" } }, + "com.amazonaws.forecast#TimeZone": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9\\/\\+\\-\\_]+$" + } + }, "com.amazonaws.forecast#Timestamp": { "type": "timestamp" }, @@ -3930,6 +3992,9 @@ "type": "structure", "members": {} }, + "com.amazonaws.forecast#UseGeolocationForTimeZone": { + "type": "boolean" + }, "com.amazonaws.forecast#Value": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/global-accelerator.2018-08-08.json b/codegen/sdk-codegen/aws-models/global-accelerator.2018-08-08.json index 3e04bbe0558e9..2674c0db06ba4 100644 --- a/codegen/sdk-codegen/aws-models/global-accelerator.2018-08-08.json +++ b/codegen/sdk-codegen/aws-models/global-accelerator.2018-08-08.json @@ -32,28 +32,16 @@ "com.amazonaws.globalaccelerator#Accelerator": { "type": "structure", "members": { - "DnsName": { + "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

                          \n\t\t

                          The naming convention for the DNS name is the following: A lowercase letter a,\n\t\t\tfollowed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example:\n\t\t\ta1234567890abcdef.awsglobalaccelerator.com.

                          \n\t\t

                          For more information about the default DNS name, see \n\t\t\tSupport for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " - } - }, - "CreatedTime": { - "target": "com.amazonaws.globalaccelerator#Timestamp", - "traits": { - "smithy.api#documentation": "

                          The date and time that the accelerator was created.

                          " - } - }, - "LastModifiedTime": { - "target": "com.amazonaws.globalaccelerator#Timestamp", - "traits": { - "smithy.api#documentation": "

                          The date and time that the accelerator was last modified.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator.

                          " } }, - "AcceleratorArn": { + "Name": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator.

                          " + "smithy.api#documentation": "

                          The name of the accelerator. The name must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          " } }, "IpAddressType": { @@ -62,10 +50,10 @@ "smithy.api#documentation": "

                          The value for the address type must be IPv4.\n\t\t\t

                          " } }, - "Name": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", "traits": { - "smithy.api#documentation": "

                          The name of the accelerator. The name must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          " + "smithy.api#documentation": "

                          Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

                          " } }, "IpSets": { @@ -74,16 +62,28 @@ "smithy.api#documentation": "

                          The static IP addresses that Global Accelerator associates with the accelerator.

                          " } }, + "DnsName": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

                          \n\t\t

                          The naming convention for the DNS name is the following: A lowercase letter a,\n\t\t\tfollowed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example:\n\t\t\ta1234567890abcdef.awsglobalaccelerator.com.

                          \n\t\t

                          For more information about the default DNS name, see \n\t\t\tSupport for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + } + }, "Status": { "target": "com.amazonaws.globalaccelerator#AcceleratorStatus", "traits": { "smithy.api#documentation": "

                          Describes the deployment status of the accelerator.

                          " } }, - "Enabled": { - "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "CreatedTime": { + "target": "com.amazonaws.globalaccelerator#Timestamp", "traits": { - "smithy.api#documentation": "

                          Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

                          " + "smithy.api#documentation": "

                          The date and time that the accelerator was created.

                          " + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.globalaccelerator#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The date and time that the accelerator was last modified.

                          " } } }, @@ -175,6 +175,77 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.globalaccelerator#AddCustomRoutingEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#AddCustomRoutingEndpointsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#AddCustomRoutingEndpointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#ConflictException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointAlreadyExistsException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#LimitExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.

                          \n\t

                          The listener port range must be large enough to support the number of IP addresses that can be \n\t\tspecified in your subnet. The number of ports required is: subnet size times the number\n\t\tof ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener \n\t\tport range of at least 255 ports.

                          \n\t

                          Note: You must have enough remaining listener ports available to \n\t\tmap to the subnet ports, or the call will fail with a LimitExceededException.

                          \n\t

                          By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all\n\t\t\tdestinations to receive traffic, or to specify individual port mappings that can receive\n\t\t\ttraffic, see the \n\t\t\t\tAllowCustomRoutingTraffic operation.

                          " + } + }, + "com.amazonaws.globalaccelerator#AddCustomRoutingEndpointsRequest": { + "type": "structure", + "members": { + "EndpointConfigurations": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointConfigurations", + "traits": { + "smithy.api#documentation": "

                          The list of endpoint objects to add to a custom routing accelerator.

                          ", + "smithy.api#required": {} + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#AddCustomRoutingEndpointsResponse": { + "type": "structure", + "members": { + "EndpointDescriptions": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointDescriptions", + "traits": { + "smithy.api#documentation": "

                          The endpoint objects added to the custom routing accelerator.

                          " + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.

                          " + } + } + } + }, "com.amazonaws.globalaccelerator#AdvertiseByoipCidr": { "type": "operation", "input": { @@ -201,7 +272,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Advertises an IPv4 address range that is provisioned for use with your AWS resources \n\t\t\tthrough bring your own IP addresses (BYOIP). It can take a few minutes before traffic to \n\t\t\tthe specified addresses starts routing to AWS because of propagation delays. To \n\t\t\tsee an AWS CLI example of advertising an address range, scroll down to \n\t\t\tExample.

                          \n\t\t

                          To stop advertising the BYOIP address range, use \n\t\t\tWithdrawByoipCidr.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Advertises an IPv4 address range that is provisioned for use with your AWS resources \n\t\t\tthrough bring your own IP addresses (BYOIP). It can take a few minutes before traffic to \n\t\t\tthe specified addresses starts routing to AWS because of propagation delays.

                          \n\t\t

                          To stop advertising the BYOIP address range, use \n\t\t\tWithdrawByoipCidr.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#AdvertiseByoipCidrRequest": { @@ -227,6 +298,60 @@ } } }, + "com.amazonaws.globalaccelerator#AllowCustomRoutingTraffic": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#AllowCustomRoutingTrafficRequest" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic \n\t\t\tfor a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a\n\t\t\tspecified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports \n\t\t\toutside of the range that you configured for the endpoint group.

                          \n\t\t

                          After you make changes, you can verify that the updates are complete by checking the status of your\n\t\t\taccelerator: the status changes from IN_PROGRESS to DEPLOYED.

                          " + } + }, + "com.amazonaws.globalaccelerator#AllowCustomRoutingTrafficRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          ", + "smithy.api#required": {} + } + }, + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.

                          ", + "smithy.api#required": {} + } + }, + "DestinationAddresses": { + "target": "com.amazonaws.globalaccelerator#DestinationAddresses", + "traits": { + "smithy.api#documentation": "

                          A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive \n\t\t\ttraffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.

                          \n\t\t

                          \n DestinationAddresses is required if AllowAllTrafficToEndpoint is FALSE or is\n\t\tnot specified.

                          " + } + }, + "DestinationPorts": { + "target": "com.amazonaws.globalaccelerator#DestinationPorts", + "traits": { + "smithy.api#documentation": "

                          A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.

                          " + } + }, + "AllowAllTrafficToEndpoint": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic \n\t\t\tfrom a custom routing accelerator. The value is TRUE or FALSE.

                          \n\t\t

                          When set to TRUE, all destinations in the custom routing VPC subnet can receive traffic. Note \n\t\t\tthat you cannot specify destination IP addresses and ports when the value is set to TRUE.

                          \n\t\t

                          When set to FALSE (or not specified), you must specify a list of destination IP addresses that are allowed\n\t\t\tto receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is\n\t\t\tthe same as the ports configured for the endpoint group.

                          \n\t\t

                          The default value is FALSE.

                          " + } + } + } + }, "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException": { "type": "structure", "members": { @@ -256,6 +381,12 @@ "com.amazonaws.globalaccelerator#ByoipCidr": { "type": "structure", "members": { + "Cidr": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The address range, in CIDR notation.

                          " + } + }, "State": { "target": "com.amazonaws.globalaccelerator#ByoipCidrState", "traits": { @@ -267,12 +398,6 @@ "traits": { "smithy.api#documentation": "

                          A history of status changes for an IP address range that you bring to AWS Global Accelerator\n\t\t\tthrough bring your own IP address (BYOIP).

                          " } - }, - "Cidr": { - "target": "com.amazonaws.globalaccelerator#GenericString", - "traits": { - "smithy.api#documentation": "

                          The address range, in CIDR notation.

                          " - } } }, "traits": { @@ -410,6 +535,19 @@ ] } }, + "com.amazonaws.globalaccelerator#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          You can't use both of those options.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, "com.amazonaws.globalaccelerator#CreateAccelerator": { "type": "operation", "input": { @@ -430,41 +568,35 @@ } ], "traits": { - "smithy.api#documentation": "

                          Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic\n\t\t\tto one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers. To see an AWS CLI\n\t\t\texample of creating an accelerator, scroll down to Example.

                          \t\n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          " + "smithy.api#documentation": "

                          Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic\n\t\t\tto one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.

                          \t\n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          " } }, "com.amazonaws.globalaccelerator#CreateAcceleratorRequest": { "type": "structure", "members": { - "Enabled": { - "target": "com.amazonaws.globalaccelerator#GenericBoolean", - "traits": { - "smithy.api#documentation": "

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " - } - }, - "IpAddresses": { - "target": "com.amazonaws.globalaccelerator#IpAddresses", + "Name": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses \n\t\t\tfrom your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can \n\t\t\tspecify one or two addresses, separated by a comma. Do not include the /32 suffix.

                          \n\t\t

                          Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only \n\t\t\tone IP address from your IP address range, Global Accelerator assigns a second static IP address for the \n\t\t\taccelerator from the AWS IP address pool.

                          \n\t\t

                          Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new \n\t\t\taccelerator with the new addresses.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          ", + "smithy.api#required": {} } }, "IpAddressType": { "target": "com.amazonaws.globalaccelerator#IpAddressType", "traits": { - "smithy.api#documentation": "

                          The value for the address type must be IPv4.\n\t\t\t

                          " + "smithy.api#documentation": "

                          The value for the address type must be IPv4.

                          " } }, - "Tags": { - "target": "com.amazonaws.globalaccelerator#Tags", + "IpAddresses": { + "target": "com.amazonaws.globalaccelerator#IpAddresses", "traits": { - "smithy.api#documentation": "

                          Create tags for an accelerator.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses \n\t\t\tfrom your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can \n\t\t\tspecify one or two addresses, separated by a comma. Do not include the /32 suffix.

                          \n\t\t

                          Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only \n\t\t\tone IP address from your IP address range, Global Accelerator assigns a second static IP address for the \n\t\t\taccelerator from the AWS IP address pool.

                          \n\t\t

                          Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new \n\t\t\taccelerator with the new addresses.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " } }, - "Name": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", "traits": { - "smithy.api#documentation": "

                          The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

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

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " } }, "IdempotencyToken": { @@ -474,6 +606,12 @@ "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.globalaccelerator#Tags", + "traits": { + "smithy.api#documentation": "

                          Create tags for an accelerator.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + } } } }, @@ -488,24 +626,18 @@ } } }, - "com.amazonaws.globalaccelerator#CreateEndpointGroup": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingAccelerator": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#CreateEndpointGroupRequest" + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingAcceleratorRequest" }, "output": { - "target": "com.amazonaws.globalaccelerator#CreateEndpointGroupResponse" + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingAcceleratorResponse" }, "errors": [ - { - "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" - }, { "target": "com.amazonaws.globalaccelerator#AccessDeniedException" }, - { - "target": "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException" - }, { "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, @@ -514,113 +646,79 @@ }, { "target": "com.amazonaws.globalaccelerator#LimitExceededException" - }, - { - "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" } ], "traits": { - "smithy.api#documentation": "

                          Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS\n\t\t\tRegion. A resource must be valid and active when you add it as an endpoint.

                          \n\t\t

                          To see an AWS CLI example of creating an endpoint group, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands\n\t\tof Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

                          \n\t

                          Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive\n\t\t\ttraffic. To enable all destinations to receive traffic, or to specify individual port\n\t\t\tmappings that can receive traffic, see the \n\t\t\t\tAllowCustomRoutingTraffic operation.

                          " } }, - "com.amazonaws.globalaccelerator#CreateEndpointGroupRequest": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingAcceleratorRequest": { "type": "structure", "members": { - "HealthCheckPort": { - "target": "com.amazonaws.globalaccelerator#HealthCheckPort", - "traits": { - "smithy.api#documentation": "

                          The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port\n\t\t\tis the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the\n\t\t\tfirst port in the list.

                          " - } - }, - "ThresholdCount": { - "target": "com.amazonaws.globalaccelerator#ThresholdCount", - "traits": { - "smithy.api#documentation": "

                          The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an\n\t\t\tunhealthy endpoint to healthy. The default value is 3.

                          " - } - }, - "TrafficDialPercentage": { - "target": "com.amazonaws.globalaccelerator#TrafficDialPercentage", + "Name": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for\n\t\t\tthis listener.

                          \n\t\t

                          Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is\n\t\t\tapplied to the traffic that would otherwise have been routed to the Region based on optimal routing.

                          \n\t\t

                          The default value is 100.

                          " + "smithy.api#documentation": "

                          The name of a custom routing accelerator. The name can have a maximum of 64 characters, must contain \n\t\tonly alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

                          ", + "smithy.api#required": {} } }, - "HealthCheckPath": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "IpAddressType": { + "target": "com.amazonaws.globalaccelerator#IpAddressType", "traits": { - "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The\n\t\t\tdefault value is slash (/).

                          " + "smithy.api#documentation": "

                          The value for the address type must be IPv4.

                          " } }, - "EndpointGroupRegion": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", "traits": { - "smithy.api#documentation": "

                          The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a\n\t\t\tspecific Region.

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

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t

                          If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " } }, "IdempotencyToken": { "target": "com.amazonaws.globalaccelerator#IdempotencyToken", "traits": { - "smithy.api#documentation": "

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\t\tuniqueness—of the request.

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

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that\n\t\t\tis, the uniqueness—of the request.

                          ", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } }, - "PortOverrides": { - "target": "com.amazonaws.globalaccelerator#PortOverrides", + "Tags": { + "target": "com.amazonaws.globalaccelerator#Tags", "traits": { - "smithy.api#documentation": "

                          Override specific listener ports used to route traffic to endpoints that are part of this endpoint group.\n\t\t\tFor example, you can create a port override in which the listener \n\t\t\treceives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 \n\t\t\tand 1443, respectively, on the endpoints.

                          \n\t\t

                          For more information, see \n\t\t\tPort overrides in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Create tags for an accelerator.

                          \n\t

                          For more information, see Tagging\n\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " } - }, - "HealthCheckIntervalSeconds": { - "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", + } + } + }, + "com.amazonaws.globalaccelerator#CreateCustomRoutingAcceleratorResponse": { + "type": "structure", + "members": { + "Accelerator": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAccelerator", "traits": { - "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

                          " - } - }, - "EndpointConfigurations": { - "target": "com.amazonaws.globalaccelerator#EndpointConfigurations", - "traits": { - "smithy.api#documentation": "

                          The list of endpoint objects.

                          " - } - }, - "ListenerArn": { - "target": "com.amazonaws.globalaccelerator#GenericString", - "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          ", - "smithy.api#required": {} - } - }, - "HealthCheckProtocol": { - "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", - "traits": { - "smithy.api#documentation": "

                          The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " - } - } - } - }, - "com.amazonaws.globalaccelerator#CreateEndpointGroupResponse": { - "type": "structure", - "members": { - "EndpointGroup": { - "target": "com.amazonaws.globalaccelerator#EndpointGroup", - "traits": { - "smithy.api#documentation": "

                          The information about the endpoint group that was created.

                          " + "smithy.api#documentation": "

                          The accelerator that is created.

                          " } } } }, - "com.amazonaws.globalaccelerator#CreateListener": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroup": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#CreateListenerRequest" + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroupRequest" }, "output": { - "target": "com.amazonaws.globalaccelerator#CreateListenerResponse" + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroupResponse" }, "errors": [ { "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" }, + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException" + }, { "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, @@ -632,141 +730,144 @@ }, { "target": "com.amazonaws.globalaccelerator#LimitExceededException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" } ], "traits": { - "smithy.api#documentation": "

                          Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned static\n\t\t\tIP addresses on a port, port range, or list of port ranges that you specify. To see an AWS CLI example of creating a\n\t\t\tlistener, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Create an endpoint group for the specified listener for a custom routing accelerator. \n\t\tAn endpoint group is a collection of endpoints in one AWS\n\t\tRegion.

                          " } }, - "com.amazonaws.globalaccelerator#CreateListenerRequest": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroupRequest": { "type": "structure", "members": { - "IdempotencyToken": { - "target": "com.amazonaws.globalaccelerator#IdempotencyToken", + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\t\tuniqueness—of the request.

                          ", - "smithy.api#idempotencyToken": {}, + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener for a custom routing endpoint.

                          ", "smithy.api#required": {} } }, - "AcceleratorArn": { + "EndpointGroupRegion": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of your accelerator.

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

                          The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a\n\t\tspecific Region.

                          ", "smithy.api#required": {} } }, - "PortRanges": { - "target": "com.amazonaws.globalaccelerator#PortRanges", + "DestinationConfigurations": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationConfigurations", "traits": { - "smithy.api#documentation": "

                          The list of port ranges to support for connections from clients to your accelerator.

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

                          Sets the port range and protocol for all endpoints (virtual private cloud subnets) in a custom routing endpoint group to accept \n\t\tclient traffic on.

                          ", "smithy.api#required": {} } }, - "ClientAffinity": { - "target": "com.amazonaws.globalaccelerator#ClientAffinity", - "traits": { - "smithy.api#documentation": "

                          Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications,\n\t\t\tregardless of the port and protocol of the client request. Client affinity gives you control over whether to always\n\t\t\troute each client to the same specific endpoint.

                          \n\t\t

                          AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client\n\t\t\taffinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port,\n\t\t\tdestination IP address, destination port, and protocol—to select the hash value, and then chooses the best\n\t\t\tendpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not\n\t\t\tbe always routed to the same endpoint because the hash value changes.

                          \n\t\t

                          If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP\n\t\t\tinstead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—\n\t\t\tsource (client) IP address and destination IP address—to select the hash value.

                          \n\t\t

                          The default value is NONE.

                          " - } - }, - "Protocol": { - "target": "com.amazonaws.globalaccelerator#Protocol", + "IdempotencyToken": { + "target": "com.amazonaws.globalaccelerator#IdempotencyToken", "traits": { - "smithy.api#documentation": "

                          The protocol for connections from clients to your accelerator.

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

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\tuniqueness—of the request.

                          ", + "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } } } }, - "com.amazonaws.globalaccelerator#CreateListenerResponse": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroupResponse": { "type": "structure", "members": { - "Listener": { - "target": "com.amazonaws.globalaccelerator#Listener", + "EndpointGroup": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroup", "traits": { - "smithy.api#documentation": "

                          The listener that you've created.

                          " + "smithy.api#documentation": "

                          The information about the endpoint group created for a custom routing accelerator.

                          " } } } }, - "com.amazonaws.globalaccelerator#DeleteAccelerator": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingListener": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#DeleteAcceleratorRequest" + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingListenerRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingListenerResponse" }, "errors": [ { - "target": "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" }, { - "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, { - "target": "com.amazonaws.globalaccelerator#AssociatedListenerFoundException" + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" }, { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + "target": "com.amazonaws.globalaccelerator#InvalidPortRangeException" }, { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + "target": "com.amazonaws.globalaccelerator#LimitExceededException" } ], "traits": { - "smithy.api#documentation": "

                          Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources\n\t\t\t(listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

                          \n\t\t \n

                          When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. \n\t\t\tAlternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges. \n\t\t

                          \n\t\t

                          The IP \n\t\t\taddresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and\n\t\t\tit no longer accepts or routes traffic. However, when you delete an accelerator, you lose the \n\t\t\tstatic IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them.\n\t\t\tAs a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You \n\t\t\tcan use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, \n\t\t\tsee Authentication and Access Control in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          \n
                          " + "smithy.api#documentation": "

                          Create a listener to process inbound connections from clients to a custom routing accelerator.\n\t\t\tConnections arrive to assigned static IP addresses on the port range that you specify.

                          " } }, - "com.amazonaws.globalaccelerator#DeleteAcceleratorRequest": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingListenerRequest": { "type": "structure", "members": { "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an accelerator.

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

                          The Amazon Resource Name (ARN) of the accelerator for a custom routing listener.

                          ", "smithy.api#required": {} } - } - } - }, - "com.amazonaws.globalaccelerator#DeleteEndpointGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#DeleteEndpointGroupRequest" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" }, - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + "PortRanges": { + "target": "com.amazonaws.globalaccelerator#PortRanges", + "traits": { + "smithy.api#documentation": "

                          The port range to support for connections from clients to your accelerator.

                          \n\t

                          Separately, you set port ranges for endpoints. For more information, see About \n\t\tendpoints for custom routing accelerators.

                          ", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + "IdempotencyToken": { + "target": "com.amazonaws.globalaccelerator#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\tuniqueness—of the request.

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

                          Delete an endpoint group from a listener.

                          " } }, - "com.amazonaws.globalaccelerator#DeleteEndpointGroupRequest": { + "com.amazonaws.globalaccelerator#CreateCustomRoutingListenerResponse": { "type": "structure", "members": { - "EndpointGroupArn": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "Listener": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingListener", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to delete.

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

                          The listener that you've created for a custom routing accelerator.

                          " } } } }, - "com.amazonaws.globalaccelerator#DeleteListener": { + "com.amazonaws.globalaccelerator#CreateEndpointGroup": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#DeleteListenerRequest" + "target": "com.amazonaws.globalaccelerator#CreateEndpointGroupRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#CreateEndpointGroupResponse" }, "errors": [ { - "target": "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException" }, { "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" @@ -774,15 +875,18 @@ { "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" }, + { + "target": "com.amazonaws.globalaccelerator#LimitExceededException" + }, { "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" } ], "traits": { - "smithy.api#documentation": "

                          Delete a listener from an accelerator.

                          " + "smithy.api#documentation": "

                          Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS\n\t\t\tRegion. A resource must be valid and active when you add it as an endpoint.

                          " } }, - "com.amazonaws.globalaccelerator#DeleteListenerRequest": { + "com.amazonaws.globalaccelerator#CreateEndpointGroupRequest": { "type": "structure", "members": { "ListenerArn": { @@ -791,68 +895,90 @@ "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          ", "smithy.api#required": {} } - } - } - }, - "com.amazonaws.globalaccelerator#DeprovisionByoipCidr": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidrRequest" - }, - "output": { - "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidrResponse" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#AccessDeniedException" }, - { - "target": "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException" + "EndpointGroupRegion": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a\n\t\t\tspecific Region.

                          ", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.globalaccelerator#IncorrectCidrStateException" + "EndpointConfigurations": { + "target": "com.amazonaws.globalaccelerator#EndpointConfigurations", + "traits": { + "smithy.api#documentation": "

                          The list of endpoint objects.

                          " + } }, - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + "TrafficDialPercentage": { + "target": "com.amazonaws.globalaccelerator#TrafficDialPercentage", + "traits": { + "smithy.api#documentation": "

                          The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for\n\t\t\tthis listener.

                          \n\t\t

                          Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is\n\t\t\tapplied to the traffic that would otherwise have been routed to the Region based on optimal routing.

                          \n\t\t

                          The default value is 100.

                          " + } }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" - } - ], - "traits": { - "smithy.api#documentation": "

                          Releases the specified address range that you provisioned to use with your AWS resources \n\t\t\tthrough bring your own IP addresses (BYOIP) and deletes the corresponding address pool. To \n\t\t\tsee an AWS CLI example of deprovisioning an address range, scroll down to \n\t\t\tExample.

                          \n\t\t

                          Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have \n\t\t\tany accelerators that are using static IP addresses allocated from its address range.\n\t\t

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " - } - }, - "com.amazonaws.globalaccelerator#DeprovisionByoipCidrRequest": { - "type": "structure", - "members": { - "Cidr": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "HealthCheckPort": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPort", "traits": { - "smithy.api#documentation": "

                          The address range, in CIDR notation. The prefix must be the same prefix that you specified \n\t\t\twhen you provisioned the address range.

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

                          The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port\n\t\t\tis the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the\n\t\t\tfirst port in the list.

                          " + } + }, + "HealthCheckProtocol": { + "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", + "traits": { + "smithy.api#documentation": "

                          The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " + } + }, + "HealthCheckPath": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPath", + "traits": { + "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The\n\t\t\tdefault value is slash (/).

                          " + } + }, + "HealthCheckIntervalSeconds": { + "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", + "traits": { + "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

                          " + } + }, + "ThresholdCount": { + "target": "com.amazonaws.globalaccelerator#ThresholdCount", + "traits": { + "smithy.api#documentation": "

                          The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an\n\t\t\tunhealthy endpoint to healthy. The default value is 3.

                          " + } + }, + "IdempotencyToken": { + "target": "com.amazonaws.globalaccelerator#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\t\tuniqueness—of the request.

                          ", + "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } + }, + "PortOverrides": { + "target": "com.amazonaws.globalaccelerator#PortOverrides", + "traits": { + "smithy.api#documentation": "

                          Override specific listener ports used to route traffic to endpoints that are part of this endpoint group.\n\t\t\tFor example, you can create a port override in which the listener \n\t\t\treceives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 \n\t\t\tand 1443, respectively, on the endpoints.

                          \n\t\t

                          For more information, see \n\t\t\tPort overrides in the AWS Global Accelerator Developer Guide.

                          " + } } } }, - "com.amazonaws.globalaccelerator#DeprovisionByoipCidrResponse": { + "com.amazonaws.globalaccelerator#CreateEndpointGroupResponse": { "type": "structure", "members": { - "ByoipCidr": { - "target": "com.amazonaws.globalaccelerator#ByoipCidr", + "EndpointGroup": { + "target": "com.amazonaws.globalaccelerator#EndpointGroup", "traits": { - "smithy.api#documentation": "

                          Information about the address range.

                          " + "smithy.api#documentation": "

                          The information about the endpoint group that was created.

                          " } } } }, - "com.amazonaws.globalaccelerator#DescribeAccelerator": { + "com.amazonaws.globalaccelerator#CreateListener": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorRequest" + "target": "com.amazonaws.globalaccelerator#CreateListenerRequest" }, "output": { - "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorResponse" + "target": "com.amazonaws.globalaccelerator#CreateListenerResponse" }, "errors": [ { @@ -863,298 +989,317 @@ }, { "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidPortRangeException" + }, + { + "target": "com.amazonaws.globalaccelerator#LimitExceededException" } ], "traits": { - "smithy.api#documentation": "

                          Describe an accelerator. To see an AWS CLI example of describing an accelerator, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned static\n\t\t\tIP addresses on a port, port range, or list of port ranges that you specify.

                          " } }, - "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributes": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesRequest" - }, - "output": { - "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesResponse" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" - }, - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" - }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" - } - ], - "traits": { - "smithy.api#documentation": "

                          Describe the attributes of an accelerator. To see an AWS CLI example of describing the attributes of an accelerator,\n\t\t\tscroll down to Example.

                          " - } - }, - "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesRequest": { + "com.amazonaws.globalaccelerator#CreateListenerRequest": { "type": "structure", "members": { "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator with the attributes that you want to describe.

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

                          The Amazon Resource Name (ARN) of your accelerator.

                          ", + "smithy.api#required": {} + } + }, + "PortRanges": { + "target": "com.amazonaws.globalaccelerator#PortRanges", + "traits": { + "smithy.api#documentation": "

                          The list of port ranges to support for connections from clients to your accelerator.

                          ", + "smithy.api#required": {} + } + }, + "Protocol": { + "target": "com.amazonaws.globalaccelerator#Protocol", + "traits": { + "smithy.api#documentation": "

                          The protocol for connections from clients to your accelerator.

                          ", + "smithy.api#required": {} + } + }, + "ClientAffinity": { + "target": "com.amazonaws.globalaccelerator#ClientAffinity", + "traits": { + "smithy.api#documentation": "

                          Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications,\n\t\t\tregardless of the port and protocol of the client request. Client affinity gives you control over whether to always\n\t\t\troute each client to the same specific endpoint.

                          \n\t\t

                          AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client\n\t\t\taffinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port,\n\t\t\tdestination IP address, destination port, and protocol—to select the hash value, and then chooses the best\n\t\t\tendpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not\n\t\t\tbe always routed to the same endpoint because the hash value changes.

                          \n\t\t

                          If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP\n\t\t\tinstead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—\n\t\t\tsource (client) IP address and destination IP address—to select the hash value.

                          \n\t\t

                          The default value is NONE.

                          " + } + }, + "IdempotencyToken": { + "target": "com.amazonaws.globalaccelerator#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

                          A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the\n\t\t\tuniqueness—of the request.

                          ", + "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } } } }, - "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesResponse": { + "com.amazonaws.globalaccelerator#CreateListenerResponse": { "type": "structure", "members": { - "AcceleratorAttributes": { - "target": "com.amazonaws.globalaccelerator#AcceleratorAttributes", + "Listener": { + "target": "com.amazonaws.globalaccelerator#Listener", "traits": { - "smithy.api#documentation": "

                          The attributes of the accelerator.

                          " + "smithy.api#documentation": "

                          The listener that you've created.

                          " } } } }, - "com.amazonaws.globalaccelerator#DescribeAcceleratorRequest": { + "com.amazonaws.globalaccelerator#CustomRoutingAccelerator": { "type": "structure", "members": { "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to describe.

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

                          The Amazon Resource Name (ARN) of the custom routing accelerator.

                          " } - } - } - }, - "com.amazonaws.globalaccelerator#DescribeAcceleratorResponse": { - "type": "structure", - "members": { - "Accelerator": { - "target": "com.amazonaws.globalaccelerator#Accelerator", + }, + "Name": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The description of the accelerator.

                          " + "smithy.api#documentation": "

                          The name of the accelerator. The name must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          " } - } - } - }, - "com.amazonaws.globalaccelerator#DescribeEndpointGroup": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroupRequest" - }, - "output": { - "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroupResponse" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" }, - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + "IpAddressType": { + "target": "com.amazonaws.globalaccelerator#IpAddressType", + "traits": { + "smithy.api#documentation": "

                          The value for the address type must be IPv4.

                          " + } }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" - } - ], - "traits": { - "smithy.api#documentation": "

                          Describe an endpoint group. To see an AWS CLI example of describing \n\t\t\tan endpoint group, scroll down to Example.

                          " - } - }, - "com.amazonaws.globalaccelerator#DescribeEndpointGroupRequest": { - "type": "structure", - "members": { - "EndpointGroupArn": { + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether the accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.

                          " + } + }, + "IpSets": { + "target": "com.amazonaws.globalaccelerator#IpSets", + "traits": { + "smithy.api#documentation": "

                          The static IP addresses that Global Accelerator associates with the accelerator.

                          " + } + }, + "DnsName": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to describe.

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

                          The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

                          \n\t\t

                          The naming convention for the DNS name is the following: A lowercase letter a,\n\t\t\tfollowed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example:\n\t\t\ta1234567890abcdef.awsglobalaccelerator.com.

                          \n\t\t

                          For more information about the default DNS name, see \n\t\t\tSupport for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " } - } - } - }, - "com.amazonaws.globalaccelerator#DescribeEndpointGroupResponse": { - "type": "structure", - "members": { - "EndpointGroup": { - "target": "com.amazonaws.globalaccelerator#EndpointGroup", + }, + "Status": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAcceleratorStatus", "traits": { - "smithy.api#documentation": "

                          The description of an endpoint group.

                          " + "smithy.api#documentation": "

                          Describes the deployment status of the accelerator.

                          " } - } - } - }, - "com.amazonaws.globalaccelerator#DescribeListener": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#DescribeListenerRequest" - }, - "output": { - "target": "com.amazonaws.globalaccelerator#DescribeListenerResponse" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + "CreatedTime": { + "target": "com.amazonaws.globalaccelerator#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The date and time that the accelerator was created.

                          " + } }, - { - "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + "LastModifiedTime": { + "target": "com.amazonaws.globalaccelerator#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The date and time that the accelerator was last modified.

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

                          Describe a listener. To see an AWS CLI example of describing a listener, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Attributes of a custom routing accelerator.

                          " } }, - "com.amazonaws.globalaccelerator#DescribeListenerRequest": { + "com.amazonaws.globalaccelerator#CustomRoutingAcceleratorAttributes": { "type": "structure", "members": { - "ListenerArn": { + "FlowLogsEnabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether flow logs are enabled. The default value is false. If the value is true,\n\t\t\tFlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

                          \n\t\t

                          For more information, see Flow Logs in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          " + } + }, + "FlowLogsS3Bucket": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to describe.

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

                          The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is\n\t\t\ttrue. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the\n\t\t\tbucket.

                          " + } + }, + "FlowLogsS3Prefix": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if\n\t\t\tFlowLogsEnabled is true.

                          \n\t\t

                          If you don’t specify a prefix, the flow logs are stored in the\n\t\t\troot of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

                          \n\t\t

                          DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id

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

                          Attributes of a custom routing accelerator.

                          " } }, - "com.amazonaws.globalaccelerator#DescribeListenerResponse": { - "type": "structure", - "members": { - "Listener": { - "target": "com.amazonaws.globalaccelerator#Listener", - "traits": { - "smithy.api#documentation": "

                          The description of a listener.

                          " + "com.amazonaws.globalaccelerator#CustomRoutingAcceleratorStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DEPLOYED" + }, + { + "value": "IN_PROGRESS" } - } + ] } }, - "com.amazonaws.globalaccelerator#EndpointConfiguration": { + "com.amazonaws.globalaccelerator#CustomRoutingAccelerators": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAccelerator" + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingDestinationConfiguration": { "type": "structure", "members": { - "EndpointId": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "FromPort": { + "target": "com.amazonaws.globalaccelerator#PortNumber", "traits": { - "smithy.api#documentation": "

                          An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon\n\t\t\tResource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address\n\t\t\tallocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must be valid and active \n\t\t\twhen you add it as an endpoint.

                          \n\t\t

                          An Application Load Balancer can be either internal or internet-facing.

                          " + "smithy.api#documentation": "

                          The first port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

                          ", + "smithy.api#required": {} } }, - "ClientIPPreservationEnabled": { - "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "ToPort": { + "target": "com.amazonaws.globalaccelerator#PortNumber", "traits": { - "smithy.api#documentation": "

                          Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. \n\t\t\tThe value is true or false. The default value is true for new accelerators.

                          \n\t\t

                          If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as \n\t\t\ttraffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

                          \n\t\t

                          For more information, see \n\t\t\tPreserve Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

                          ", + "smithy.api#required": {} } }, - "Weight": { - "target": "com.amazonaws.globalaccelerator#EndpointWeight", + "Protocols": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingProtocols", "traits": { - "smithy.api#documentation": "

                          The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic\n\t\t\tbased on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The\n\t\t\tresult is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second\n\t\t\tand third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the\n\t\t\t\tAWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either TCP or UDP.

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

                          A complex type for endpoints. A resource must be valid and active when you add it as an endpoint.

                          " + "smithy.api#documentation": "

                          For a custom routing accelerator, sets the port range and protocol for all endpoints (virtual\n\t\t\tprivate cloud subnets) in an endpoint group to accept client traffic on.

                          " } }, - "com.amazonaws.globalaccelerator#EndpointConfigurations": { + "com.amazonaws.globalaccelerator#CustomRoutingDestinationConfigurations": { "type": "list", "member": { - "target": "com.amazonaws.globalaccelerator#EndpointConfiguration" + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationConfiguration" }, "traits": { "smithy.api#length": { - "min": 0, - "max": 10 + "min": 1, + "max": 100 } } }, - "com.amazonaws.globalaccelerator#EndpointDescription": { + "com.amazonaws.globalaccelerator#CustomRoutingDestinationDescription": { "type": "structure", "members": { - "HealthReason": { - "target": "com.amazonaws.globalaccelerator#GenericString", - "traits": { - "smithy.api#documentation": "

                          The reason code associated with why the endpoint is not healthy. If the endpoint state is healthy, a reason code is\n\t\t\tnot provided.

                          \n\t\t

                          If the endpoint state is unhealthy, the reason code can be one of the following\n\t\t\tvalues:

                          \n\t\t
                            \n
                          • \n\t\t\t\t

                            \n Timeout: The health check requests to the endpoint are timing out before\n\t\t\t\t\treturning a status.

                            \n\t\t\t
                          • \n
                          • \n\t\t\t\t

                            \n Failed: The health check failed, for example because the endpoint response\n\t\t\t\t\twas invalid (malformed).

                            \n\t\t\t
                          • \n
                          \n\t\t

                          If the endpoint state is initial, the reason code can be one of the following\n\t\t\tvalues:

                          \n\t\t
                            \n
                          • \n\t\t\t\t

                            \n ProvisioningInProgress: The endpoint is in the process of being\n\t\t\t\t\tprovisioned.

                            \n\t\t\t
                          • \n
                          • \n\t\t\t\t

                            \n InitialHealthChecking: Global Accelerator is still setting up the minimum number of\n\t\t\t\t\thealth checks for the endpoint that are required to determine its health status.

                            \n\t\t\t
                          • \n
                          " - } - }, - "HealthState": { - "target": "com.amazonaws.globalaccelerator#HealthState", - "traits": { - "smithy.api#documentation": "

                          The health status of the endpoint.

                          " - } - }, - "EndpointId": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "FromPort": { + "target": "com.amazonaws.globalaccelerator#PortNumber", "traits": { - "smithy.api#documentation": "

                          An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon\n\t\t\tResource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address\n\t\t\tallocation ID. For EC2 instances, this is the EC2 instance ID.

                          \n\t\t

                          An Application Load Balancer can be either internal or internet-facing.

                          " + "smithy.api#documentation": "

                          The first port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

                          " } }, - "ClientIPPreservationEnabled": { - "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "ToPort": { + "target": "com.amazonaws.globalaccelerator#PortNumber", "traits": { - "smithy.api#documentation": "

                          Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. \n\t\t\tThe value is true or false. The default value is true for new accelerators.

                          \n\t\t

                          If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as \n\t\t\ttraffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

                          \n\t\t

                          For more information, see \n\t\t\tViewing Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The last port, inclusive, in the range of ports for the endpoint group that is associated with a custom routing accelerator.

                          " } }, - "Weight": { - "target": "com.amazonaws.globalaccelerator#EndpointWeight", + "Protocols": { + "target": "com.amazonaws.globalaccelerator#Protocols", "traits": { - "smithy.api#documentation": "

                          The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic\n\t\t\tbased on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The\n\t\t\tresult is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second\n\t\t\tand third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the\n\t\t\t\tAWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The protocol for the endpoint group that is associated with a custom routing accelerator. The protocol can be either TCP or UDP.

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

                          A complex type for an endpoint. Each endpoint group can include one or more endpoints, such as load\n\t\t\tbalancers.

                          " + "smithy.api#documentation": "

                          For a custom routing accelerator, describes the port range and protocol for all endpoints\n\t\t\t(virtual private cloud subnets) in an endpoint group to accept client traffic on.

                          " } }, - "com.amazonaws.globalaccelerator#EndpointDescriptions": { + "com.amazonaws.globalaccelerator#CustomRoutingDestinationDescriptions": { "type": "list", "member": { - "target": "com.amazonaws.globalaccelerator#EndpointDescription" + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationDescription" } }, - "com.amazonaws.globalaccelerator#EndpointGroup": { - "type": "structure", - "members": { - "TrafficDialPercentage": { - "target": "com.amazonaws.globalaccelerator#TrafficDialPercentage", - "traits": { - "smithy.api#documentation": "

                          The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for\n\t\t\tthis listener.

                          \n\t\t

                          Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is\n\t\t\tapplied to the traffic that would otherwise have been routed to the Region based on optimal routing.

                          \n\t\t

                          The default value is 100.

                          " - } - }, - "HealthCheckProtocol": { - "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", - "traits": { - "smithy.api#documentation": "

                          The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " - } - }, - "HealthCheckPort": { - "target": "com.amazonaws.globalaccelerator#HealthCheckPort", - "traits": { - "smithy.api#documentation": "

                          The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.

                          \n\t\t \n\t\t

                          The default port is the port for the listener that this endpoint group is associated with. If the listener port is a\n\t\t\tlist, Global Accelerator uses the first specified port in the list of ports.

                          " - } - }, - "ThresholdCount": { - "target": "com.amazonaws.globalaccelerator#ThresholdCount", - "traits": { - "smithy.api#documentation": "

                          The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an\n\t\t\tunhealthy endpoint to healthy. The default value is 3.

                          " + "com.amazonaws.globalaccelerator#CustomRoutingDestinationTrafficState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ALLOW", + "name": "ALLOW" + }, + { + "value": "DENY", + "name": "DENY" } - }, - "HealthCheckPath": { + ] + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingEndpointConfiguration": { + "type": "structure", + "members": { + "EndpointId": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the\n\t\t\tendpoints for health checks. The default is slash (/).

                          " + "smithy.api#documentation": "

                          An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC)\n\t\t\tsubnet ID.

                          " } - }, - "HealthCheckIntervalSeconds": { - "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", + } + }, + "traits": { + "smithy.api#documentation": "

                          The list of endpoint objects. For custom routing, this is a list of virtual private cloud (VPC) subnet IDs.

                          " + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingEndpointConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingEndpointDescription": { + "type": "structure", + "members": { + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.

                          " + "smithy.api#documentation": "

                          An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC)\n\t\t\tsubnet ID.

                          " } - }, - "PortOverrides": { - "target": "com.amazonaws.globalaccelerator#PortOverrides", + } + }, + "traits": { + "smithy.api#documentation": "

                          A complex type for an endpoint for a custom routing accelerator. Each endpoint group can include one or more endpoints, \n\t\t\twhich are virtual private cloud (VPC) subnets.

                          " + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingEndpointDescriptions": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointDescription" + } + }, + "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroup": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          Allows you to override the destination ports used to route traffic to an endpoint. \n\t\t\tUsing a port override lets you to map a list of external destination ports (that your\n\t\t\tusers send traffic to) to a list of internal destination ports that you want an application \n\t\t\tendpoint to receive traffic on.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          " } }, "EndpointGroupRegion": { @@ -1163,141 +1308,1209 @@ "smithy.api#documentation": "

                          The AWS Region where the endpoint group is located.

                          " } }, - "EndpointDescriptions": { - "target": "com.amazonaws.globalaccelerator#EndpointDescriptions", + "DestinationDescriptions": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationDescriptions", "traits": { - "smithy.api#documentation": "

                          The list of endpoint objects.

                          " + "smithy.api#documentation": "

                          For a custom routing accelerator, describes the port range and protocol for all endpoints\n\t\t\t(virtual private cloud subnets) in an endpoint group to accept client traffic on.

                          " } }, - "EndpointGroupArn": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "EndpointDescriptions": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointDescriptions", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          " + "smithy.api#documentation": "

                          For a custom routing accelerator, describes the endpoints (virtual private cloud subnets) in an\n\t\t\tendpoint group to accept client traffic on.

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

                          A complex type for the endpoint group. An AWS Region can have only one endpoint group for a specific listener.\n\t\t

                          " + "smithy.api#documentation": "

                          A complex type for the endpoint group for a custom routing accelerator. An AWS Region can have only one endpoint group for a specific listener.\n\t\t

                          " } }, - "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" - } - }, - "traits": { - "smithy.api#documentation": "

                          The endpoint group that you specified already exists.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 + "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroup" } }, - "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": { + "com.amazonaws.globalaccelerator#CustomRoutingListener": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          " + } + }, + "PortRanges": { + "target": "com.amazonaws.globalaccelerator#PortRanges", + "traits": { + "smithy.api#documentation": "

                          The port range to support for connections from clients to your accelerator.

                          \n\t\t

                          Separately, you set port ranges for endpoints. For more information, see About \n\t\t\t\tendpoints for custom routing accelerators.

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

                          The endpoint group that you specified doesn't exist.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 404 + "smithy.api#documentation": "

                          A complex type for a listener for a custom routing accelerator.

                          " } }, - "com.amazonaws.globalaccelerator#EndpointGroups": { + "com.amazonaws.globalaccelerator#CustomRoutingListeners": { "type": "list", "member": { - "target": "com.amazonaws.globalaccelerator#EndpointGroup" - } - }, - "com.amazonaws.globalaccelerator#EndpointWeight": { - "type": "integer", - "traits": { - "smithy.api#box": {}, - "smithy.api#range": { - "min": 0, - "max": 255 - } + "target": "com.amazonaws.globalaccelerator#CustomRoutingListener" } }, - "com.amazonaws.globalaccelerator#ErrorMessage": { - "type": "string" - }, - "com.amazonaws.globalaccelerator#GenericBoolean": { - "type": "boolean", + "com.amazonaws.globalaccelerator#CustomRoutingProtocol": { + "type": "string", "traits": { - "smithy.api#box": {} + "smithy.api#enum": [ + { + "value": "TCP", + "name": "TCP" + }, + { + "value": "UDP", + "name": "UDP" + } + ] } }, - "com.amazonaws.globalaccelerator#GenericString": { - "type": "string", + "com.amazonaws.globalaccelerator#CustomRoutingProtocols": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingProtocol" + }, "traits": { "smithy.api#length": { - "min": 0, - "max": 255 + "min": 1, + "max": 2 } } }, - "com.amazonaws.globalaccelerator#GlobalAccelerator_V20180706": { - "type": "service", - "version": "2018-08-08", - "operations": [ + "com.amazonaws.globalaccelerator#DeleteAccelerator": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteAcceleratorRequest" + }, + "errors": [ { - "target": "com.amazonaws.globalaccelerator#AdvertiseByoipCidr" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException" }, { - "target": "com.amazonaws.globalaccelerator#CreateAccelerator" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" }, { - "target": "com.amazonaws.globalaccelerator#CreateEndpointGroup" + "target": "com.amazonaws.globalaccelerator#AssociatedListenerFoundException" }, { - "target": "com.amazonaws.globalaccelerator#CreateListener" + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, { - "target": "com.amazonaws.globalaccelerator#DeleteAccelerator" - }, + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources\n\t\t\t(listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

                          \n\t\t \n

                          When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. \n\t\t\tAlternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges. \n\t\t

                          \n\t\t

                          The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and\n\t\t\tit no longer accepts or routes traffic. However, when you delete an accelerator, you lose the \n\t\t\tstatic IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them.\n\t\t\tAs a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You \n\t\t\tcan use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, \n\t\t\tsee Authentication and Access Control in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          \n
                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteAcceleratorRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an accelerator.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingAccelerator": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingAcceleratorRequest" + }, + "errors": [ { - "target": "com.amazonaws.globalaccelerator#DeleteEndpointGroup" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotDisabledException" }, { - "target": "com.amazonaws.globalaccelerator#DeleteListener" + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" }, { - "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidr" + "target": "com.amazonaws.globalaccelerator#AssociatedListenerFoundException" }, { - "target": "com.amazonaws.globalaccelerator#DescribeAccelerator" + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, { - "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributes" - }, + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources\n\t\t(listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

                          \n\t \n

                          When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. \n\t

                          \n\t\t

                          The IP \n\t\t\taddresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and\n\t\t\tit no longer accepts or routes traffic. However, when you delete an accelerator, you lose the \n\t\t\tstatic IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them.\n\t\t\tAs a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You \n\t\t\tcan use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, \n\t\t\tsee Authentication and Access Control in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          \n
                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingAcceleratorRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the custom routing accelerator to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingEndpointGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingEndpointGroupRequest" + }, + "errors": [ { - "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroup" + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" }, { - "target": "com.amazonaws.globalaccelerator#DescribeListener" + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, { - "target": "com.amazonaws.globalaccelerator#ListAccelerators" - }, + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete an endpoint group from a listener for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingEndpointGroupRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingListener": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingListenerRequest" + }, + "errors": [ { - "target": "com.amazonaws.globalaccelerator#ListByoipCidrs" + "target": "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException" }, { - "target": "com.amazonaws.globalaccelerator#ListEndpointGroups" + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, { - "target": "com.amazonaws.globalaccelerator#ListListeners" + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" }, { - "target": "com.amazonaws.globalaccelerator#ListTagsForResource" + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete a listener for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteCustomRoutingListenerRequest": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeleteEndpointGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteEndpointGroupRequest" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete an endpoint group from a listener.

                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteEndpointGroupRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeleteListener": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeleteListenerRequest" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AssociatedEndpointGroupFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete a listener from an accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DeleteListenerRequest": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DenyCustomRoutingTraffic": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DenyCustomRoutingTrafficRequest" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that cannot receive traffic \n\t\t\tfor a custom routing accelerator. You can deny traffic to all destinations in the VPC endpoint, or deny traffic to a\n\t\t\tspecified list of destination IP addresses and ports. Note that you cannot specify IP addresses \n\t\t\tor ports outside of the range that you configured for the endpoint group.

                          \n\t\t

                          After you make changes, you can verify that the updates are complete by checking the status of your\n\t\t\taccelerator: the status changes from IN_PROGRESS to DEPLOYED.

                          " + } + }, + "com.amazonaws.globalaccelerator#DenyCustomRoutingTrafficRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          ", + "smithy.api#required": {} + } + }, + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.

                          ", + "smithy.api#required": {} + } + }, + "DestinationAddresses": { + "target": "com.amazonaws.globalaccelerator#DestinationAddresses", + "traits": { + "smithy.api#documentation": "

                          A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to prevent from receiving \n\t\t\ttraffic. The IP addresses must be a subset of the IP addresses allowed for the VPC subnet associated with the \n\t\t\tendpoint group.

                          " + } + }, + "DestinationPorts": { + "target": "com.amazonaws.globalaccelerator#DestinationPorts", + "traits": { + "smithy.api#documentation": "

                          A list of specific Amazon EC2 instance ports (destination ports) in a subnet endpoint that you want to prevent from \n\t\t\treceiving traffic.

                          " + } + }, + "DenyAllTrafficToEndpoint": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint cannot \n\t\t\treceive traffic from a custom routing accelerator. The value is TRUE or FALSE.

                          \n\t\t

                          When set to TRUE, no destinations in the custom routing VPC subnet can receive traffic. Note \n\t\t\tthat you cannot specify destination IP addresses and ports when the value is set to TRUE.

                          \n\t\t

                          When set to FALSE (or not specified), you must specify a list of destination IP addresses that cannot receive\n\t\t\ttraffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is\n\t\t\tthe same as the ports configured for the endpoint group.

                          \n\t\t

                          The default value is FALSE.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DeprovisionByoipCidr": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidrRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidrResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#ByoipCidrNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#IncorrectCidrStateException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Releases the specified address range that you provisioned to use with your AWS resources \n\t\t\tthrough bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

                          \n\t\t

                          Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have \n\t\t\tany accelerators that are using static IP addresses allocated from its address range.\n\t\t

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " + } + }, + "com.amazonaws.globalaccelerator#DeprovisionByoipCidrRequest": { + "type": "structure", + "members": { + "Cidr": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The address range, in CIDR notation. The prefix must be the same prefix that you specified \n\t\t\twhen you provisioned the address range.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DeprovisionByoipCidrResponse": { + "type": "structure", + "members": { + "ByoipCidr": { + "target": "com.amazonaws.globalaccelerator#ByoipCidr", + "traits": { + "smithy.api#documentation": "

                          Information about the address range.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeAccelerator": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe an accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe the attributes of an accelerator. \n\t\t

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator with the attributes that you want to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributesResponse": { + "type": "structure", + "members": { + "AcceleratorAttributes": { + "target": "com.amazonaws.globalaccelerator#AcceleratorAttributes", + "traits": { + "smithy.api#documentation": "

                          The attributes of the accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeAcceleratorRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeAcceleratorResponse": { + "type": "structure", + "members": { + "Accelerator": { + "target": "com.amazonaws.globalaccelerator#Accelerator", + "traits": { + "smithy.api#documentation": "

                          The description of the accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAccelerator": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributesRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe the attributes of a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributesRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the custom routing accelerator to describe the attributes for.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributesResponse": { + "type": "structure", + "members": { + "AcceleratorAttributes": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAcceleratorAttributes", + "traits": { + "smithy.api#documentation": "

                          The attributes of the custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorResponse": { + "type": "structure", + "members": { + "Accelerator": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAccelerator", + "traits": { + "smithy.api#documentation": "

                          The description of the custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroupRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe an endpoint group for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroupRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroupResponse": { + "type": "structure", + "members": { + "EndpointGroup": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroup", + "traits": { + "smithy.api#documentation": "

                          The description of an endpoint group for a custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingListener": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingListenerRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingListenerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          The description of a listener for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingListenerRequest": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeCustomRoutingListenerResponse": { + "type": "structure", + "members": { + "Listener": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingListener", + "traits": { + "smithy.api#documentation": "

                          The description of a listener for a custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeEndpointGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroupRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe an endpoint group.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeEndpointGroupRequest": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeEndpointGroupResponse": { + "type": "structure", + "members": { + "EndpointGroup": { + "target": "com.amazonaws.globalaccelerator#EndpointGroup", + "traits": { + "smithy.api#documentation": "

                          The description of an endpoint group.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeListener": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#DescribeListenerRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#DescribeListenerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describe a listener.

                          " + } + }, + "com.amazonaws.globalaccelerator#DescribeListenerRequest": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#DescribeListenerResponse": { + "type": "structure", + "members": { + "Listener": { + "target": "com.amazonaws.globalaccelerator#Listener", + "traits": { + "smithy.api#documentation": "

                          The description of a listener.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#DestinationAddresses": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#IpAddress" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.globalaccelerator#DestinationPortMapping": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the custom routing accelerator \n\t\t\tthat you have port mappings for.

                          " + } + }, + "AcceleratorSocketAddresses": { + "target": "com.amazonaws.globalaccelerator#SocketAddresses", + "traits": { + "smithy.api#documentation": "

                          The IP address/port combinations (sockets) that map to a given destination socket\n\t\t\taddress.

                          " + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          " + } + }, + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The ID for the virtual private cloud (VPC) subnet.

                          " + } + }, + "EndpointGroupRegion": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The AWS Region for the endpoint group.

                          " + } + }, + "DestinationSocketAddress": { + "target": "com.amazonaws.globalaccelerator#SocketAddress", + "traits": { + "smithy.api#documentation": "

                          The endpoint IP address/port combination for traffic received on the accelerator socket address.

                          " + } + }, + "IpAddressType": { + "target": "com.amazonaws.globalaccelerator#IpAddressType", + "traits": { + "smithy.api#documentation": "

                          The IP address type, which must be IPv4.

                          " + } + }, + "DestinationTrafficState": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationTrafficState", + "traits": { + "smithy.api#documentation": "

                          Indicates whether or not a port mapping destination can receive traffic. The value is either ALLOW, if\n\t\t\ttraffic is allowed to the destination, or DENY, if traffic is not allowed to the destination.

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

                          The port mappings for a specified endpoint IP address (destination).

                          " + } + }, + "com.amazonaws.globalaccelerator#DestinationPortMappings": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#DestinationPortMapping" + } + }, + "com.amazonaws.globalaccelerator#DestinationPorts": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#PortNumber" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.globalaccelerator#EndpointAlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The endpoint that you specified doesn't exist.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.globalaccelerator#EndpointConfiguration": { + "type": "structure", + "members": { + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon\n\t\t\tResource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address\n\t\t\tallocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A resource must be valid and active \n\t\t\twhen you add it as an endpoint.

                          \n\t\t

                          An Application Load Balancer can be either internal or internet-facing.

                          " + } + }, + "Weight": { + "target": "com.amazonaws.globalaccelerator#EndpointWeight", + "traits": { + "smithy.api#documentation": "

                          The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic\n\t\t\tbased on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The\n\t\t\tresult is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second\n\t\t\tand third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the\n\t\t\t\tAWS Global Accelerator Developer Guide.

                          " + } + }, + "ClientIPPreservationEnabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. \n\t\t\tThe value is true or false. The default value is true for new accelerators.

                          \n\t\t

                          If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as \n\t\t\ttraffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

                          \n\t\t

                          For more information, see \n\t\t\tPreserve Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

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

                          A complex type for endpoints. A resource must be valid and active when you add it as an endpoint.

                          " + } + }, + "com.amazonaws.globalaccelerator#EndpointConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#EndpointConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.globalaccelerator#EndpointDescription": { + "type": "structure", + "members": { + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon\n\t\t\tResource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address\n\t\t\tallocation ID. For Amazon EC2 instances, this is the EC2 instance ID.

                          \n\t\t

                          An Application Load Balancer can be either internal or internet-facing.

                          " + } + }, + "Weight": { + "target": "com.amazonaws.globalaccelerator#EndpointWeight", + "traits": { + "smithy.api#documentation": "

                          The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic\n\t\t\tbased on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The\n\t\t\tresult is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second\n\t\t\tand third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the\n\t\t\t\tAWS Global Accelerator Developer Guide.

                          " + } + }, + "HealthState": { + "target": "com.amazonaws.globalaccelerator#HealthState", + "traits": { + "smithy.api#documentation": "

                          The health status of the endpoint.

                          " + } + }, + "HealthReason": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          Returns a null result.

                          " + } + }, + "ClientIPPreservationEnabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. \n\t\t\tThe value is true or false. The default value is true for new accelerators.

                          \n\t\t

                          If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as \n\t\t\ttraffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

                          \n\t\t

                          For more information, see \n\t\t\tViewing Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

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

                          A complex type for an endpoint. Each endpoint group can include one or more endpoints, such as load\n\t\t\tbalancers.

                          " + } + }, + "com.amazonaws.globalaccelerator#EndpointDescriptions": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#EndpointDescription" + } + }, + "com.amazonaws.globalaccelerator#EndpointGroup": { + "type": "structure", + "members": { + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          " + } + }, + "EndpointGroupRegion": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The AWS Region where the endpoint group is located.

                          " + } + }, + "EndpointDescriptions": { + "target": "com.amazonaws.globalaccelerator#EndpointDescriptions", + "traits": { + "smithy.api#documentation": "

                          The list of endpoint objects.

                          " + } + }, + "TrafficDialPercentage": { + "target": "com.amazonaws.globalaccelerator#TrafficDialPercentage", + "traits": { + "smithy.api#documentation": "

                          The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for\n\t\t\tthis listener.

                          \n\t\t

                          Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is\n\t\t\tapplied to the traffic that would otherwise have been routed to the Region based on optimal routing.

                          \n\t\t

                          The default value is 100.

                          " + } + }, + "HealthCheckPort": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPort", + "traits": { + "smithy.api#documentation": "

                          The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.

                          \n\t\t \n\t\t

                          The default port is the port for the listener that this endpoint group is associated with. If the listener port is a\n\t\t\tlist, Global Accelerator uses the first specified port in the list of ports.

                          " + } + }, + "HealthCheckProtocol": { + "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", + "traits": { + "smithy.api#documentation": "

                          The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " + } + }, + "HealthCheckPath": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPath", + "traits": { + "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the\n\t\t\tendpoints for health checks. The default is slash (/).

                          " + } + }, + "HealthCheckIntervalSeconds": { + "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", + "traits": { + "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.

                          " + } + }, + "ThresholdCount": { + "target": "com.amazonaws.globalaccelerator#ThresholdCount", + "traits": { + "smithy.api#documentation": "

                          The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an\n\t\t\tunhealthy endpoint to healthy. The default value is 3.

                          " + } + }, + "PortOverrides": { + "target": "com.amazonaws.globalaccelerator#PortOverrides", + "traits": { + "smithy.api#documentation": "

                          Allows you to override the destination ports used to route traffic to an endpoint. \n\t\t\tUsing a port override lets you to map a list of external destination ports (that your\n\t\t\tusers send traffic to) to a list of internal destination ports that you want an application \n\t\t\tendpoint to receive traffic on.

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

                          A complex type for the endpoint group. An AWS Region can have only one endpoint group for a specific listener.\n\t\t

                          " + } + }, + "com.amazonaws.globalaccelerator#EndpointGroupAlreadyExistsException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The endpoint group that you specified already exists.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The endpoint group that you specified doesn't exist.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.globalaccelerator#EndpointGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#EndpointGroup" + } + }, + "com.amazonaws.globalaccelerator#EndpointIds": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#GenericString" + } + }, + "com.amazonaws.globalaccelerator#EndpointNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The endpoint that you specified doesn't exist.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.globalaccelerator#EndpointWeight": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.globalaccelerator#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.globalaccelerator#GenericBoolean": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.globalaccelerator#GenericString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + } + } + }, + "com.amazonaws.globalaccelerator#GlobalAccelerator_V20180706": { + "type": "service", + "version": "2018-08-08", + "operations": [ + { + "target": "com.amazonaws.globalaccelerator#AddCustomRoutingEndpoints" + }, + { + "target": "com.amazonaws.globalaccelerator#AdvertiseByoipCidr" + }, + { + "target": "com.amazonaws.globalaccelerator#AllowCustomRoutingTraffic" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateCustomRoutingListener" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#CreateListener" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteCustomRoutingListener" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#DeleteListener" + }, + { + "target": "com.amazonaws.globalaccelerator#DenyCustomRoutingTraffic" + }, + { + "target": "com.amazonaws.globalaccelerator#DeprovisionByoipCidr" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeAcceleratorAttributes" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingAcceleratorAttributes" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeCustomRoutingListener" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeEndpointGroup" + }, + { + "target": "com.amazonaws.globalaccelerator#DescribeListener" + }, + { + "target": "com.amazonaws.globalaccelerator#ListAccelerators" + }, + { + "target": "com.amazonaws.globalaccelerator#ListByoipCidrs" + }, + { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingAccelerators" + }, + { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroups" + }, + { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingListeners" + }, + { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappings" + }, + { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestination" + }, + { + "target": "com.amazonaws.globalaccelerator#ListEndpointGroups" + }, + { + "target": "com.amazonaws.globalaccelerator#ListListeners" + }, + { + "target": "com.amazonaws.globalaccelerator#ListTagsForResource" }, { "target": "com.amazonaws.globalaccelerator#ProvisionByoipCidr" }, + { + "target": "com.amazonaws.globalaccelerator#RemoveCustomRoutingEndpoints" + }, { "target": "com.amazonaws.globalaccelerator#TagResource" }, @@ -1310,6 +2523,15 @@ { "target": "com.amazonaws.globalaccelerator#UpdateAcceleratorAttributes" }, + { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAccelerator" + }, + { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributes" + }, + { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingListener" + }, { "target": "com.amazonaws.globalaccelerator#UpdateEndpointGroup" }, @@ -1331,7 +2553,7 @@ "name": "globalaccelerator" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Global Accelerator\n\t\t

                          This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about\n\t\t\tAWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the \n\t\t\tAWS Global Accelerator Developer Guide.

                          \n\t\t

                          AWS Global Accelerator is a service in which you create accelerators to improve availability and performance \n\t\t\tof your applications for local and global users. Global Accelerator directs traffic to optimal endpoints over the AWS \n\t\t\tglobal network. This improves the availability and performance of your internet applications that are used by \n\t\t\ta global audience. Global Accelerator is a global service that supports endpoints in multiple AWS Regions, which are listed \n\t\t\tin the AWS \n\t\t\tRegion Table.

                          \n\t\t\n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          \n\n\t\t

                          By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. (Instead of using the \n\t\t\tIP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges \n\t\t\tthat you bring to Global Accelerator.) The static IP addresses are anycast\n\t\t\tfrom the AWS edge network and distribute incoming application traffic across multiple endpoint resources in multiple\n\t\t\tAWS Regions, which increases the availability of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, EC2 instances,\n\t\t\tor Elastic IP addresses that are located in one AWS Region or multiple Regions.

                          \n\n\t\t

                          Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client\n\t\t\tlocation, and policies that you configure. The service reacts instantly to changes in health or configuration to\n\t\t\tensure that internet traffic from clients is directed to only healthy endpoints.

                          \n\n\t\t

                          Global Accelerator includes components that work together to help you improve performance and availability for your\n\t\t\tapplications:

                          \n\t\t
                          \n
                          Static IP address
                          \n
                          \n\t\t\t\t\t

                          By default, AWS Global Accelerator provides you with a set of static IP addresses that are anycast from the AWS edge network\n\t\t\t\t\t\tand serve as the single fixed entry points for your clients. Or you can configure these entry points to be IPv4 addresses \n\t\t\t\t\t\tfrom your own IP address ranges that you bring to Global Accelerator (BYOIP). For more information, \n\t\t\t\t\t\tsee Bring Your Own IP Addresses (BYOIP) in\n\t\t\t\t\t\tthe AWS Global Accelerator Developer Guide. If you already have load balancers, EC2 instances, or\n\t\t\t\t\t\tElastic IP addresses set up for your applications, you can easily add those to Global Accelerator to allow the\n\t\t\t\t\t\tresources to be accessed by the static IP addresses.

                          \n\t\t\t\t\t \n

                          The static IP addresses remain assigned to your accelerator for as long as it exists, even \n\t\t\t\t\t\tif you disable the accelerator and\n\t\t\t\t\t\tit no longer accepts or routes traffic. However, when you delete an accelerator, you lose the \n\t\t\t\t\t\tstatic IP addresses that are assigned to it, so you can no longer route traffic by using them.\n\t\t\t\t\t\tYou can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, \n\t\t\t\t\t\tsee Authentication and Access Control in\n\t\t\t\t\t\tthe AWS Global Accelerator Developer Guide.\n\t\t\t\t\t

                          \n
                          \n\t\t\t\t
                          \n
                          Accelerator
                          \n
                          \n\t\t\t\t\t

                          An accelerator directs traffic to optimal endpoints over the AWS global network to improve availability\n\t\t\t\t\t\tand performance for your internet applications that have a global audience. Each accelerator includes one or\n\t\t\t\t\t\tmore listeners.

                          \n\t\t\t\t
                          \n
                          DNS name
                          \n
                          \n

                          Global Accelerator assigns each accelerator a default Domain Name System (DNS)\n\t\t\t\t\tname, similar to a1234567890abcdef.awsglobalaccelerator.com,\n\t\t\t\t\tthat points to your Global Accelerator static IP addresses. Depending\n\t\t\t\t\ton the use case, you can use your accelerator's static IP addresses or DNS name to route traffic\n\t\t\t\t\tto your accelerator, or set up DNS records to route traffic using your own custom domain name.

                          \n\t\t\t\t
                          \n
                          Network zone
                          \n
                          \n\t\t\t\t\t

                          A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an\n\t\t\t\t\t\tAWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure.\n\t\t\t\t\t\t\n\t\t\t\t\t\tWhen you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a\n\t\t\t\t\t\tnetwork zone becomes unavailable due to IP address blocking by certain client networks, or network\n\t\t\t\t\t\tdisruptions, then client applications can retry on the healthy static IP address from the other isolated\n\t\t\t\t\t\tnetwork zone.

                          \n\t\t\t\t
                          \n
                          Listener
                          \n
                          \n\t\t\t\t\t

                          A listener processes inbound connections from clients to Global Accelerator, based on the protocol and port that you\n\t\t\t\t\t\tconfigure. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to\n\t\t\t\t\t\tendpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions\n\t\t\t\t\t\tthat you want to distribute traffic to. Traffic is distributed to optimal endpoints within the endpoint\n\t\t\t\t\t\tgroups associated with a listener.

                          \n\t\t\t\t
                          \n
                          Endpoint group
                          \n
                          \n\t\t\t\t\t

                          Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more\n\t\t\t\t\t\tendpoints in the Region. You can increase or reduce the percentage of traffic that would be otherwise\n\t\t\t\t\t\tdirected to an endpoint group by adjusting a setting called a traffic dial. The\n\t\t\t\t\t\ttraffic dial lets you easily do performance testing or blue/green deployment testing for new releases\n\t\t\t\t\t\tacross different AWS Regions, for example.

                          \n\t\t\t\t
                          \n
                          Endpoint
                          \n
                          \n\t\t\t\t\t

                          An endpoint is a Network Load Balancer, Application Load Balancer, EC2 instance, or Elastic IP address. Traffic is routed to endpoints based on several\n\t\t\t\t\t\tfactors, including the geo-proximity to the user, the health of the endpoint, and the configuration\n\t\t\t\t\t\toptions that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are\n\t\t\t\t\t\tnumbers that you can use to specify the proportion of traffic to route to each one. This can be useful,\n\t\t\t\t\t\tfor example, to do performance testing within a Region.

                          \n\t\t\t\t
                          \n
                          ", + "smithy.api#documentation": "AWS Global Accelerator\n\t\t

                          This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about\n\t\t\tAWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the \n\t\t\tAWS Global Accelerator Developer Guide.

                          \n \n\t\t

                          AWS Global Accelerator is a service in which you create accelerators to improve the performance \n\t\t\tof your applications for local and global users. Depending on the type of accelerator you choose, you can\n\t\t\tgain additional benefits.

                          \n\t\t
                            \n
                          • \n

                            By using a standard accelerator, you can improve availability of your internet applications \n\t\t\t\tthat are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the AWS \n\t\t\t\tglobal network.

                            \n
                          • \n
                          • \n

                            For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you \n\t\t\t\tcan use application logic to directly map one or more users to a specific endpoint among many endpoints.

                            \n
                          • \n
                          \n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          \n\t\t

                          By default, Global Accelerator provides you with two static IP addresses that you associate with your accelerator. With\n\t\t\ta standard accelerator, instead of using the \n\t\t\tIP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges \n\t\t\tthat you bring to Global Accelerator. The static IP addresses are anycast from the AWS edge network. For a standard accelerator, \n\t\t\tthey distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases \n\t\t\tthe availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, \n\t\t\tAmazon EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions. For custom routing\n\t\t\taccelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that\n\t\t\tare virtual private cloud (VPC) subnets.

                          \n\t\t\n\t\t \n

                          The static IP addresses remain assigned to your accelerator for as long as it exists, even if you\n\t\t\t\tdisable the accelerator and it no longer accepts or routes traffic. However, when you\n\t\t\t\t\tdelete an accelerator, you lose the static IP addresses that\n\t\t\t\tare assigned to it, so you can no longer route traffic by using them. You can use\n\t\t\t\tIAM policies like tag-based permissions with Global Accelerator to limit the users who have\n\t\t\t\tpermissions to delete an accelerator. For more information, see Tag-based policies.

                          \n
                          \n\t\t

                          For standard accelerators, Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based\n\t\t\ton health, client location, and policies that you configure. The service reacts instantly to\n\t\t\tchanges in health or configuration to ensure that internet traffic from clients is always\n\t\t\tdirected to healthy endpoints.

                          \n\t\t\n\t\t

                          For a list of the AWS Regions where Global Accelerator and other services are currently supported, see the \n\t\t\tAWS \n\t\t\t\tRegion Table.

                          \n\n\t\t

                          AWS Global Accelerator includes the following components:

                          \n\t\t
                          \n
                          Static IP addresses
                          \n
                          \n

                          Global Accelerator provides you with a set of two static IP addresses that are anycast from the AWS edge\n\t\t\t\t\tnetwork. If you bring your own IP address range to AWS (BYOIP) to use with a standard accelerator, you \n\t\t\t\t\tcan instead assign IP addresses from your own pool to use with your accelerator. For more information, \n\t\t\t\t\tsee \n\t\t\t\t\t\tBring your own IP addresses (BYOIP) in AWS Global Accelerator.

                          \n\t\t\t\t\t

                          The IP addresses serve as single fixed entry points for your clients. If you already have Elastic\n\t\t\t\t\t\tLoad Balancing load balancers, Amazon EC2 instances, or Elastic IP address resources set up for your applications, \n\t\t\t\t\t\tyou can easily add those to a standard accelerator in Global Accelerator. This allows Global Accelerator to use static IP addresses \n\t\t\t\t\t\tto access the resources.

                          \n\t\t\t\t\t

                          The static IP addresses remain assigned to your accelerator for as long as it exists, even\n\t\t\t\t\t\tif you disable the accelerator and it no longer accepts or routes traffic.\n\t\t\t\t\t\tHowever, when you delete an accelerator, you lose the\n\t\t\t\t\t\tstatic IP addresses that are assigned to it, so you can no longer route\n\t\t\t\t\t\ttraffic by using them. You can use IAM policies like tag-based permissions\n\t\t\t\t\t\twith Global Accelerator to delete an accelerator. For more information, see Tag-based policies.

                          \n\t\t\t\t
                          \n
                          Accelerator
                          \n
                          \n

                          An accelerator directs traffic to endpoints over the AWS global network to improve the\n\t\t\t\t\tperformance of your internet applications. Each accelerator includes one or more listeners.

                          \n\t\t\t\t\t

                          There are two types of accelerators:

                          \n\t\t\t\t\t
                            \n
                          • \n

                            A standard accelerator directs traffic to the optimal AWS endpoint based \n\t\t\t\t\t\t\ton several factors, including the user’s location, the health of the endpoint, and the endpoint weights \n\t\t\t\t\t\t\tthat you configure. This improves the availability and performance of your applications.\n\t\t\t\t\t\t\tEndpoints can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses.

                            \n
                          • \n
                          • \n

                            A custom routing accelerator directs traffic to one of possibly thousands of\n\t\t\t\t\t\t\t\tAmazon EC2 instances running in a single or multiple virtual private\n\t\t\t\t\t\t\t\tclouds (VPCs). With custom routing, listener ports are mapped to\n\t\t\t\t\t\t\t\tstatically associate port ranges with VPC subnets, which\n\t\t\t\t\t\t\t\tallows Global Accelerator to determine an EC2 instance IP address at the time of\n\t\t\t\t\t\t\t\tconnection. By default, all port mapping destinations in a VPC\n\t\t\t\t\t\t\t\tsubnet can't receive traffic. You can choose to configure all\n\t\t\t\t\t\t\t\tdestinations in the subnet to receive traffic, or to specify\n\t\t\t\t\t\t\t\tindividual port mappings that can receive traffic.

                            \n
                          • \n
                          \n\t\t\t\t\t

                          For more information, see Types of accelerators.

                          \n\t\t\t\t
                          \n
                          DNS name
                          \n
                          \n

                          Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to\n\t\t\t\t\ta1234567890abcdef.awsglobalaccelerator.com, that points to\n\t\t\t\t\tthe static IP addresses that Global Accelerator assigns to you or that you choose from your\n\t\t\t\t\town IP address range. Depending on the use\n\t\t\t\t\tcase, you can use your accelerator's static IP addresses or DNS name to\n\t\t\t\t\troute traffic to your accelerator, or set up DNS records to route traffic using\n\t\t\t\t\tyour own custom domain name.

                          \n\t\t\t\t
                          \n
                          Network zone
                          \n
                          \n

                          A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an\n\t\t\t\t\tAWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure.\n\t\t\t\t\tWhen you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a\n\t\t\t\t\tnetwork zone becomes unavailable due to IP address blocking by certain client networks, or network\n\t\t\t\t\tdisruptions, then client applications can retry on the healthy static IP address from the other isolated\n\t\t\t\t\tnetwork zone.

                          \n\t\t\t\t
                          \n
                          Listener
                          \n
                          \n

                          A listener processes inbound connections from clients to Global Accelerator, based on the port (or port range) \n\t\t\t\t\tand protocol (or protocols) that you configure. A listener can be configured for TCP, UDP, or both TCP and UDP protocols. Each \n\t\t\t\t\tlistener has one or more endpoint groups associated with it, and traffic is forwarded \n\t\t\t\t\tto endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you \n\t\t\t\t\twant to distribute traffic to. With a standard accelerator, traffic is distributed to optimal endpoints within the endpoint \n\t\t\t\t\tgroups associated with a listener.

                          \n
                          \n
                          Endpoint group
                          \n
                          \n

                          Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or\n\t\t\t\t\tmore endpoints in the Region. With a standard accelerator, you can increase or reduce the percentage of\n\t\t\t\t\ttraffic that would be otherwise directed to an endpoint group by adjusting a\n\t\t\t\t\tsetting called a traffic dial. The traffic dial lets\n\t\t\t\t\tyou easily do performance testing or blue/green deployment testing, for example, for new\n\t\t\t\t\treleases across different AWS Regions.

                          \n\t\t\t\t
                          \n
                          Endpoint
                          \n
                          \n

                          An endpoint is a resource that Global Accelerator directs traffic to.

                          \n\t\t\t\t\t

                          Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP\n\t\t\t\t\t\taddresses. An Application Load Balancer endpoint can be internet-facing or internal. Traffic for\n\t\t\t\t\t\tstandard accelerators is routed to endpoints based on the health of the\n\t\t\t\t\t\tendpoint along with configuration options that you choose, such as endpoint\n\t\t\t\t\t\tweights. For each endpoint, you can configure weights, which are numbers\n\t\t\t\t\t\tthat you can use to specify the proportion of traffic to route to each one.\n\t\t\t\t\t\tThis can be useful, for example, to do performance testing within a\n\t\t\t\t\t\tRegion.

                          \n\t\t\t\t\t

                          Endpoints for custom routing accelerators are virtual private cloud (VPC) subnets with one\n\t\t\t\t\t\tor many EC2 instances.

                          \n\t\t\t\t
                          \n
                          ", "smithy.api#title": "AWS Global Accelerator" } }, @@ -1345,6 +2567,16 @@ } } }, + "com.amazonaws.globalaccelerator#HealthCheckPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + }, + "smithy.api#pattern": "^/[-a-zA-Z0-9@:%_\\\\+.~#?&/=]*$" + } + }, "com.amazonaws.globalaccelerator#HealthCheckPort": { "type": "integer", "traits": { @@ -1399,145 +2631,516 @@ } } }, - "com.amazonaws.globalaccelerator#IncorrectCidrStateException": { + "com.amazonaws.globalaccelerator#IncorrectCidrStateException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be\n\t\tincorrect for this action.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.globalaccelerator#InternalServiceErrorException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          There was an internal error for AWS Global Accelerator.

                          ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.globalaccelerator#InvalidArgumentException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          An argument that you specified is invalid.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.globalaccelerator#InvalidNextTokenException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          There isn't another item to return.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.globalaccelerator#InvalidPortRangeException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          The port numbers that you specified are not valid numbers or are not unique for this accelerator.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.globalaccelerator#IpAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 45 + } + } + }, + "com.amazonaws.globalaccelerator#IpAddressType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "IPV4", + "name": "IPV4" + } + ] + } + }, + "com.amazonaws.globalaccelerator#IpAddresses": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#IpAddress" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2 + } + } + }, + "com.amazonaws.globalaccelerator#IpSet": { + "type": "structure", + "members": { + "IpFamily": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The types of IP addresses included in this IP set.

                          " + } + }, + "IpAddresses": { + "target": "com.amazonaws.globalaccelerator#IpAddresses", + "traits": { + "smithy.api#documentation": "

                          The array of IP addresses in the IP address set. An IP address set can have a maximum of two IP addresses.

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

                          A complex type for the set of IP addresses for an accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#IpSets": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#IpSet" + } + }, + "com.amazonaws.globalaccelerator#LimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.globalaccelerator#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          Processing your request would cause you to exceed an AWS Global Accelerator limit.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.globalaccelerator#ListAccelerators": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListAcceleratorsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListAcceleratorsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" + } + ], + "traits": { + "smithy.api#documentation": "

                          List the accelerators for an AWS account.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.globalaccelerator#ListAcceleratorsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.globalaccelerator#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The number of Global Accelerator objects that you want to return with this call. The default value is 10.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#ListAcceleratorsResponse": { + "type": "structure", + "members": { + "Accelerators": { + "target": "com.amazonaws.globalaccelerator#Accelerators", + "traits": { + "smithy.api#documentation": "

                          The list of accelerators for a customer account.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#ListByoipCidrs": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListByoipCidrsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListByoipCidrsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the IP address ranges that were specified in calls to ProvisionByoipCidr, including\n\t\t\tthe current state and a history of state changes.

                          " + } + }, + "com.amazonaws.globalaccelerator#ListByoipCidrsRequest": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "MaxResults": { + "target": "com.amazonaws.globalaccelerator#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of results to return with a single call. To retrieve the remaining results, make\n\t\t\tanother call with the returned nextToken value.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next page of results.

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

                          The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be\n\t\tincorrect for this action.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 404 } }, - "com.amazonaws.globalaccelerator#InternalServiceErrorException": { + "com.amazonaws.globalaccelerator#ListByoipCidrsResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "ByoipCidrs": { + "target": "com.amazonaws.globalaccelerator#ByoipCidrs", + "traits": { + "smithy.api#documentation": "

                          Information about your address ranges.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next page of results.

                          " + } } + } + }, + "com.amazonaws.globalaccelerator#ListCustomRoutingAccelerators": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingAcceleratorsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingAcceleratorsResponse" }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" + } + ], "traits": { - "smithy.api#documentation": "

                          There was an internal error for AWS Global Accelerator.

                          ", - "smithy.api#error": "server", - "smithy.api#httpError": 500 + "smithy.api#documentation": "

                          List the custom routing accelerators for an AWS account.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.globalaccelerator#InvalidArgumentException": { + "com.amazonaws.globalaccelerator#ListCustomRoutingAcceleratorsRequest": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "MaxResults": { + "target": "com.amazonaws.globalaccelerator#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The number of custom routing Global Accelerator objects that you want to return with this call. The default value is 10.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

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

                          An argument that you specified is invalid.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 } }, - "com.amazonaws.globalaccelerator#InvalidNextTokenException": { + "com.amazonaws.globalaccelerator#ListCustomRoutingAcceleratorsResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "Accelerators": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAccelerators", + "traits": { + "smithy.api#documentation": "

                          The list of custom routing accelerators for a customer account.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } } + } + }, + "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroupsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroupsResponse" }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], "traits": { - "smithy.api#documentation": "

                          There isn't another item to return.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 + "smithy.api#documentation": "

                          List the endpoint groups that are associated with a listener for a custom routing accelerator.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.globalaccelerator#InvalidPortRangeException": { + "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroupsRequest": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to list endpoint groups for.

                          ", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.globalaccelerator#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The number of endpoint group objects that you want to return with this call. The default value is 10.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

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

                          The port numbers that you specified are not valid numbers or are not unique for this accelerator.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 } }, - "com.amazonaws.globalaccelerator#IpAddress": { - "type": "string" - }, - "com.amazonaws.globalaccelerator#IpAddressType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "IPV4", - "name": "IPV4" + "com.amazonaws.globalaccelerator#ListCustomRoutingEndpointGroupsResponse": { + "type": "structure", + "members": { + "EndpointGroups": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingEndpointGroups", + "traits": { + "smithy.api#documentation": "

                          The list of the endpoint groups associated with a listener for a custom routing accelerator.

                          " } - ] + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } + } } }, - "com.amazonaws.globalaccelerator#IpAddresses": { - "type": "list", - "member": { - "target": "com.amazonaws.globalaccelerator#IpAddress" + "com.amazonaws.globalaccelerator#ListCustomRoutingListeners": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingListenersRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingListenersResponse" }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" + } + ], "traits": { - "smithy.api#length": { - "min": 0, - "max": 2 + "smithy.api#documentation": "

                          List the listeners for a custom routing accelerator.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" } } }, - "com.amazonaws.globalaccelerator#IpSet": { + "com.amazonaws.globalaccelerator#ListCustomRoutingListenersRequest": { "type": "structure", "members": { - "IpAddresses": { - "target": "com.amazonaws.globalaccelerator#IpAddresses", + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The array of IP addresses in the IP address set. An IP address set can have a maximum of two IP addresses.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to list listeners for.

                          ", + "smithy.api#required": {} } }, - "IpFamily": { + "MaxResults": { + "target": "com.amazonaws.globalaccelerator#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The number of listener objects that you want to return with this call. The default value is 10.

                          " + } + }, + "NextToken": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The types of IP addresses included in this IP set.

                          " + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

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

                          A complex type for the set of IP addresses for an accelerator.

                          " - } - }, - "com.amazonaws.globalaccelerator#IpSets": { - "type": "list", - "member": { - "target": "com.amazonaws.globalaccelerator#IpSet" } }, - "com.amazonaws.globalaccelerator#LimitExceededException": { + "com.amazonaws.globalaccelerator#ListCustomRoutingListenersResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.globalaccelerator#ErrorMessage" + "Listeners": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingListeners", + "traits": { + "smithy.api#documentation": "

                          The list of listeners for a custom routing accelerator.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappings": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" } - }, + ], "traits": { - "smithy.api#documentation": "

                          Processing your request would cause you to exceed an AWS Global Accelerator limit.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 403 + "smithy.api#documentation": "

                          Provides a complete mapping from the public accelerator IP address and port to destination EC2 instance\n\t\tIP addresses and ports in the virtual public cloud (VPC) subnet endpoint for a custom routing accelerator.\n\t\tFor each subnet endpoint that you add, Global Accelerator creates a new static port mapping for the accelerator. The port \n\t\tmappings don't change after Global Accelerator generates them, so you can retrieve and cache the full mapping on your servers.

                          \n\t

                          If you remove a subnet from your accelerator, Global Accelerator removes (reclaims) the port mappings. If you add a subnet to \n\t\tyour accelerator, Global Accelerator creates new port mappings (the existing ones don't change). If you add or remove EC2 instances\n\t\tin your subnet, the port mappings don't change, because the mappings are created when you add the subnet to Global Accelerator.

                          \n\t

                          The mappings also include a flag for each destination denoting which destination IP addresses and\n\t\tports are allowed or denied traffic.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.globalaccelerator#ListAccelerators": { + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestination": { "type": "operation", "input": { - "target": "com.amazonaws.globalaccelerator#ListAcceleratorsRequest" + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestinationRequest" }, "output": { - "target": "com.amazonaws.globalaccelerator#ListAcceleratorsResponse" + "target": "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestinationResponse" }, "errors": [ + { + "target": "com.amazonaws.globalaccelerator#EndpointNotFoundException" + }, { "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" }, @@ -1549,16 +3152,35 @@ } ], "traits": { - "smithy.api#documentation": "

                          List the accelerators for an AWS account. To see an AWS CLI example of listing the accelerators for an AWS account,\n\t\t\tscroll down to Example.

                          " + "smithy.api#documentation": "

                          List the port mappings for a specific EC2 instance (destination) in a VPC subnet endpoint. The\n\t\t\tresponse is the mappings for one destination IP address. This is useful when your subnet endpoint has mappings that \n\t\t\tspan multiple custom routing accelerators in your account, or for scenarios where you only want to\n\t\t\tlist the port mappings for a specific destination instance.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.globalaccelerator#ListAcceleratorsRequest": { + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestinationRequest": { "type": "structure", "members": { + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The ID for the virtual private cloud (VPC) subnet.

                          ", + "smithy.api#required": {} + } + }, + "DestinationAddress": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The endpoint IP address in a virtual private cloud (VPC) subnet for which you want to receive back port\n\t\tmappings.

                          ", + "smithy.api#required": {} + } + }, "MaxResults": { - "target": "com.amazonaws.globalaccelerator#MaxResults", + "target": "com.amazonaws.globalaccelerator#PortMappingsMaxResults", "traits": { - "smithy.api#documentation": "

                          The number of Global Accelerator objects that you want to return with this call. The default value is 10.

                          " + "smithy.api#documentation": "

                          The number of destination port mappings that you want to return with this call. The default value is 10.

                          " } }, "NextToken": { @@ -1569,79 +3191,66 @@ } } }, - "com.amazonaws.globalaccelerator#ListAcceleratorsResponse": { + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsByDestinationResponse": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "DestinationPortMappings": { + "target": "com.amazonaws.globalaccelerator#DestinationPortMappings", "traits": { - "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + "smithy.api#documentation": "

                          The port mappings for the endpoint IP address that you specified in the request.

                          " } }, - "Accelerators": { - "target": "com.amazonaws.globalaccelerator#Accelerators", + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The list of accelerators for a customer account.

                          " + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " } } } }, - "com.amazonaws.globalaccelerator#ListByoipCidrs": { - "type": "operation", - "input": { - "target": "com.amazonaws.globalaccelerator#ListByoipCidrsRequest" - }, - "output": { - "target": "com.amazonaws.globalaccelerator#ListByoipCidrsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.globalaccelerator#AccessDeniedException" - }, - { - "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" - }, - { - "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" - }, - { - "target": "com.amazonaws.globalaccelerator#InvalidNextTokenException" - } - ], - "traits": { - "smithy.api#documentation": "

                          Lists the IP address ranges that were specified in calls to ProvisionByoipCidr, including\n\t\t\tthe current state and a history of state changes.

                          \n\t\t

                          To see an AWS CLI example of listing BYOIP CIDR addresses, scroll down to \n\t\t\tExample.

                          " - } - }, - "com.amazonaws.globalaccelerator#ListByoipCidrsRequest": { + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsRequest": { "type": "structure", "members": { - "NextToken": { + "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The token for the next page of results.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to list the custom routing port mappings for.

                          ", + "smithy.api#required": {} + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to list the custom routing port mappings for.

                          " } }, "MaxResults": { - "target": "com.amazonaws.globalaccelerator#MaxResults", + "target": "com.amazonaws.globalaccelerator#PortMappingsMaxResults", "traits": { - "smithy.api#documentation": "

                          The maximum number of results to return with a single call. To retrieve the remaining results, make\n\t\t\tanother call with the returned nextToken value.

                          " + "smithy.api#documentation": "

                          The number of destination port mappings that you want to return with this call. The default value is 10.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " } } } }, - "com.amazonaws.globalaccelerator#ListByoipCidrsResponse": { + "com.amazonaws.globalaccelerator#ListCustomRoutingPortMappingsResponse": { "type": "structure", "members": { - "ByoipCidrs": { - "target": "com.amazonaws.globalaccelerator#ByoipCidrs", + "PortMappings": { + "target": "com.amazonaws.globalaccelerator#PortMappings", "traits": { - "smithy.api#documentation": "

                          Information about your address ranges.

                          " + "smithy.api#documentation": "

                          The port mappings for a custom routing accelerator.

                          " } }, "NextToken": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The token for the next page of results.

                          " + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " } } } @@ -1669,16 +3278,22 @@ } ], "traits": { - "smithy.api#documentation": "

                          List the endpoint groups that are associated with a listener. To see an AWS CLI example of listing \n\t\t\tthe endpoint groups for listener, scroll down to Example.

                          " + "smithy.api#documentation": "

                          List the endpoint groups that are associated with a listener.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, "com.amazonaws.globalaccelerator#ListEndpointGroupsRequest": { "type": "structure", "members": { - "NextToken": { + "ListenerArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          ", + "smithy.api#required": {} } }, "MaxResults": { @@ -1687,11 +3302,10 @@ "smithy.api#documentation": "

                          The number of endpoint group objects that you want to return with this call. The default value is 10.

                          " } }, - "ListenerArn": { + "NextToken": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

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

                          The token for the next set of results. You receive this token from a previous call.

                          " } } } @@ -1699,17 +3313,17 @@ "com.amazonaws.globalaccelerator#ListEndpointGroupsResponse": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.globalaccelerator#GenericString", - "traits": { - "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " - } - }, "EndpointGroups": { "target": "com.amazonaws.globalaccelerator#EndpointGroups", "traits": { "smithy.api#documentation": "

                          The list of the endpoint groups associated with a listener.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + } } } }, @@ -1736,16 +3350,22 @@ } ], "traits": { - "smithy.api#documentation": "

                          List the listeners for an accelerator. To see an AWS CLI example of listing the listeners for an accelerator,\n\t\t\tscroll down to Example.

                          " + "smithy.api#documentation": "

                          List the listeners for an accelerator.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } } }, "com.amazonaws.globalaccelerator#ListListenersRequest": { "type": "structure", "members": { - "NextToken": { + "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The token for the next set of results. You receive this token from a previous call.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator for which you want to list listener objects.

                          ", + "smithy.api#required": {} } }, "MaxResults": { @@ -1754,11 +3374,10 @@ "smithy.api#documentation": "

                          The number of listener objects that you want to return with this call. The default value is 10.

                          " } }, - "AcceleratorArn": { + "NextToken": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator for which you want to list listener objects.

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

                          The token for the next set of results. You receive this token from a previous call.

                          " } } } @@ -1800,7 +3419,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          List all tags for an accelerator. To see an AWS CLI example of listing tags for an accelerator,\n\t\t\tscroll down to Example.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          List all tags for an accelerator.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#ListTagsForResourceRequest": { @@ -1835,18 +3454,18 @@ "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener.

                          " } }, - "Protocol": { - "target": "com.amazonaws.globalaccelerator#Protocol", - "traits": { - "smithy.api#documentation": "

                          The protocol for the connections from clients to the accelerator.

                          " - } - }, "PortRanges": { "target": "com.amazonaws.globalaccelerator#PortRanges", "traits": { "smithy.api#documentation": "

                          The list of port ranges for the connections from clients to the accelerator.

                          " } }, + "Protocol": { + "target": "com.amazonaws.globalaccelerator#Protocol", + "traits": { + "smithy.api#documentation": "

                          The protocol for the connections from clients to the accelerator.

                          " + } + }, "ClientAffinity": { "target": "com.amazonaws.globalaccelerator#ClientAffinity", "traits": { @@ -1887,6 +3506,66 @@ } } }, + "com.amazonaws.globalaccelerator#PortMapping": { + "type": "structure", + "members": { + "AcceleratorPort": { + "target": "com.amazonaws.globalaccelerator#PortNumber", + "traits": { + "smithy.api#documentation": "

                          The accelerator port.

                          " + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group.

                          " + } + }, + "EndpointId": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The IP address of the VPC subnet (the subnet ID).

                          " + } + }, + "DestinationSocketAddress": { + "target": "com.amazonaws.globalaccelerator#SocketAddress", + "traits": { + "smithy.api#documentation": "

                          The EC2 instance IP address and port number in the virtual private cloud (VPC) subnet.

                          " + } + }, + "Protocols": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingProtocols", + "traits": { + "smithy.api#documentation": "

                          The protocols supported by the endpoint group.

                          " + } + }, + "DestinationTrafficState": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingDestinationTrafficState", + "traits": { + "smithy.api#documentation": "

                          Indicates whether or not a port mapping destination can receive traffic. The value is either ALLOW, if\n\t\t\ttraffic is allowed to the destination, or DENY, if traffic is not allowed to the destination.

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

                          Returns the ports and associated IP addresses and ports of Amazon EC2 instances in your virtual\n\t\t\tprivate cloud (VPC) subnets. Custom routing is a port mapping protocol in AWS Global Accelerator that\n\t\t\tstatically associates port ranges with VPC subnets, which allows Global Accelerator to route to\n\t\t\tspecific instances and ports within one or more subnets.

                          " + } + }, + "com.amazonaws.globalaccelerator#PortMappings": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#PortMapping" + } + }, + "com.amazonaws.globalaccelerator#PortMappingsMaxResults": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 20000 + } + } + }, "com.amazonaws.globalaccelerator#PortNumber": { "type": "integer", "traits": { @@ -1976,6 +3655,12 @@ ] } }, + "com.amazonaws.globalaccelerator#Protocols": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#Protocol" + } + }, "com.amazonaws.globalaccelerator#ProvisionByoipCidr": { "type": "operation", "input": { @@ -2002,7 +3687,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Provisions an IP address range to use with your AWS resources through bring your own IP\n\t\t\taddresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, \n\t\t\tit is ready to be advertised using \n\t\t\tAdvertiseByoipCidr.

                          \n\t\t

                          To see an AWS CLI example of provisioning an address range for BYOIP, scroll down to \n\t\t\tExample.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Provisions an IP address range to use with your AWS resources through bring your own IP\n\t\t\taddresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, \n\t\t\tit is ready to be advertised using \n\t\t\tAdvertiseByoipCidr.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#ProvisionByoipCidrRequest": { @@ -2035,6 +3720,54 @@ } } }, + "com.amazonaws.globalaccelerator#RemoveCustomRoutingEndpoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#RemoveCustomRoutingEndpointsRequest" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#ConflictException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointGroupNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#EndpointNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Remove endpoints from a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#RemoveCustomRoutingEndpointsRequest": { + "type": "structure", + "members": { + "EndpointIds": { + "target": "com.amazonaws.globalaccelerator#EndpointIds", + "traits": { + "smithy.api#documentation": "

                          The IDs for the endpoints. For custom routing accelerators, endpoint IDs are the virtual private cloud (VPC)\n\t\tsubnet IDs.

                          ", + "smithy.api#required": {} + } + }, + "EndpointGroupArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the endpoint group to remove endpoints from.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.globalaccelerator#ResourceArn": { "type": "string", "traits": { @@ -2044,22 +3777,48 @@ } } }, - "com.amazonaws.globalaccelerator#Tag": { + "com.amazonaws.globalaccelerator#SocketAddress": { "type": "structure", "members": { - "Value": { - "target": "com.amazonaws.globalaccelerator#TagValue", + "IpAddress": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          A string that contains a Tag value.

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

                          The IP address for the socket address.

                          " } }, + "Port": { + "target": "com.amazonaws.globalaccelerator#PortNumber", + "traits": { + "smithy.api#documentation": "

                          The port for the socket address.

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

                          An IP address/port combination.

                          " + } + }, + "com.amazonaws.globalaccelerator#SocketAddresses": { + "type": "list", + "member": { + "target": "com.amazonaws.globalaccelerator#SocketAddress" + } + }, + "com.amazonaws.globalaccelerator#Tag": { + "type": "structure", + "members": { "Key": { "target": "com.amazonaws.globalaccelerator#TagKey", "traits": { "smithy.api#documentation": "

                          A string that contains a Tag key.

                          ", "smithy.api#required": {} } + }, + "Value": { + "target": "com.amazonaws.globalaccelerator#TagValue", + "traits": { + "smithy.api#documentation": "

                          A string that contains a Tag value.

                          ", + "smithy.api#required": {} + } } }, "traits": { @@ -2107,23 +3866,23 @@ } ], "traits": { - "smithy.api#documentation": "

                          Add tags to an accelerator resource. To see an AWS CLI example of adding tags to an accelerator, scroll down to \n\t\t\tExample.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Add tags to an accelerator resource.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#TagResourceRequest": { "type": "structure", "members": { - "Tags": { - "target": "com.amazonaws.globalaccelerator#Tags", + "ResourceArn": { + "target": "com.amazonaws.globalaccelerator#ResourceArn", "traits": { - "smithy.api#documentation": "

                          The tags to add to a resource. A tag consists of a key and a value that you define.

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

                          The Amazon Resource Name (ARN) of the Global Accelerator resource to add tags to. An ARN uniquely identifies a resource.

                          ", "smithy.api#required": {} } }, - "ResourceArn": { - "target": "com.amazonaws.globalaccelerator#ResourceArn", + "Tags": { + "target": "com.amazonaws.globalaccelerator#Tags", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the Global Accelerator resource to add tags to. An ARN uniquely identifies a resource.

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

                          The tags to add to a resource. A tag consists of a key and a value that you define.

                          ", "smithy.api#required": {} } } @@ -2191,7 +3950,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. To \n\t\t\tsee an AWS CLI example of removing tags from an accelerator, scroll down to Example.\n\t\t\tThe operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value.\n\t\t\tThe operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

                          \n\t\t

                          For more information, see Tagging\n\t\t\tin AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#UntagResourceRequest": { @@ -2237,7 +3996,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Update an accelerator. To see an AWS CLI example of updating an accelerator,\n\t\t\tscroll down to Example.

                          \n\t\t\n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          " + "smithy.api#documentation": "

                          Update an accelerator.

                          \n\t\t\n\t\t \n\t\t\t

                          Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the \n\t\t\t\tUS West (Oregon) Region to create or update accelerators.

                          \n\t\t
                          " } }, "com.amazonaws.globalaccelerator#UpdateAcceleratorAttributes": { @@ -2263,18 +4022,12 @@ } ], "traits": { - "smithy.api#documentation": "

                          Update the attributes for an accelerator. To see an AWS CLI example of updating an accelerator to enable flow logs,\n\t\t\tscroll down to Example.

                          " + "smithy.api#documentation": "

                          Update the attributes for an accelerator.

                          " } }, "com.amazonaws.globalaccelerator#UpdateAcceleratorAttributesRequest": { "type": "structure", "members": { - "FlowLogsEnabled": { - "target": "com.amazonaws.globalaccelerator#GenericBoolean", - "traits": { - "smithy.api#documentation": "

                          Update whether flow logs are enabled. The default value is false. If the value is true,\n\t\t\t\tFlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

                          \n\t\t

                          For more information, see Flow Logs in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          " - } - }, "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { @@ -2282,6 +4035,12 @@ "smithy.api#required": {} } }, + "FlowLogsEnabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Update whether flow logs are enabled. The default value is false. If the value is true,\n\t\t\t\tFlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

                          \n\t\t

                          For more information, see Flow Logs in\n\t\t\tthe AWS Global Accelerator Developer Guide.

                          " + } + }, "FlowLogsS3Bucket": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { @@ -2310,40 +4069,230 @@ "com.amazonaws.globalaccelerator#UpdateAcceleratorRequest": { "type": "structure", "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to update.

                          ", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          " + } + }, "IpAddressType": { "target": "com.amazonaws.globalaccelerator#IpAddressType", "traits": { - "smithy.api#documentation": "

                          The value for the address type must be IPv4.\n\t\t\t

                          " + "smithy.api#documentation": "

                          The IP address type, which must be IPv4.

                          " + } + }, + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateAcceleratorResponse": { + "type": "structure", + "members": { + "Accelerator": { + "target": "com.amazonaws.globalaccelerator#Accelerator", + "traits": { + "smithy.api#documentation": "

                          Information about the updated accelerator.

                          " } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAccelerator": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Update a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributesRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#AcceleratorNotFoundException" + }, + { + "target": "com.amazonaws.globalaccelerator#AccessDeniedException" + }, + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Update the attributes for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributesRequest": { + "type": "structure", + "members": { "AcceleratorArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to update.

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

                          The Amazon Resource Name (ARN) of the custom routing accelerator to update attributes for.

                          ", "smithy.api#required": {} } }, - "Enabled": { + "FlowLogsEnabled": { "target": "com.amazonaws.globalaccelerator#GenericBoolean", "traits": { - "smithy.api#documentation": "

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " + "smithy.api#documentation": "

                          Update whether flow logs are enabled. The default value is false. If the value is true,\n\t\tFlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

                          \n\t

                          For more information, see Flow Logs in\n\t\tthe AWS Global Accelerator Developer Guide.

                          " + } + }, + "FlowLogsS3Bucket": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is\n\t\ttrue. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the\n\t\tbucket.

                          " + } + }, + "FlowLogsS3Prefix": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if\n\t\tFlowLogsEnabled is true.

                          \n\t

                          If you don’t specify a prefix, the flow logs are stored in the\n\t\troot of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

                          \n\t

                          DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorAttributesResponse": { + "type": "structure", + "members": { + "AcceleratorAttributes": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingAcceleratorAttributes", + "traits": { + "smithy.api#documentation": "

                          Updated custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorRequest": { + "type": "structure", + "members": { + "AcceleratorArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the accelerator to update.

                          ", + "smithy.api#required": {} } }, "Name": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or\n\t\t\thyphens (-), and must not begin or end with a hyphen.

                          " + "smithy.api#documentation": "

                          The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or\n\t\thyphens (-), and must not begin or end with a hyphen.

                          " + } + }, + "IpAddressType": { + "target": "com.amazonaws.globalaccelerator#IpAddressType", + "traits": { + "smithy.api#documentation": "

                          The value for the address type must be IPv4.

                          " + } + }, + "Enabled": { + "target": "com.amazonaws.globalaccelerator#GenericBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

                          \n\t

                          If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.

                          " } } } }, - "com.amazonaws.globalaccelerator#UpdateAcceleratorResponse": { + "com.amazonaws.globalaccelerator#UpdateCustomRoutingAcceleratorResponse": { "type": "structure", "members": { "Accelerator": { - "target": "com.amazonaws.globalaccelerator#Accelerator", + "target": "com.amazonaws.globalaccelerator#CustomRoutingAccelerator", "traits": { - "smithy.api#documentation": "

                          Information about the updated accelerator.

                          " + "smithy.api#documentation": "

                          Information about the updated custom routing accelerator.

                          " + } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingListener": { + "type": "operation", + "input": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingListenerRequest" + }, + "output": { + "target": "com.amazonaws.globalaccelerator#UpdateCustomRoutingListenerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.globalaccelerator#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidArgumentException" + }, + { + "target": "com.amazonaws.globalaccelerator#InvalidPortRangeException" + }, + { + "target": "com.amazonaws.globalaccelerator#LimitExceededException" + }, + { + "target": "com.amazonaws.globalaccelerator#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Update a listener for a custom routing accelerator.

                          " + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingListenerRequest": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to update.

                          ", + "smithy.api#required": {} + } + }, + "PortRanges": { + "target": "com.amazonaws.globalaccelerator#PortRanges", + "traits": { + "smithy.api#documentation": "

                          The updated port range to support for connections from clients to your accelerator. If you remove ports that are\n\tcurrently being used by a subnet endpoint, the call fails.

                          \n\t

                          Separately, you set port ranges for endpoints. For more information, see About \n\t\tendpoints for custom routing accelerators.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.globalaccelerator#UpdateCustomRoutingListenerResponse": { + "type": "structure", + "members": { + "Listener": { + "target": "com.amazonaws.globalaccelerator#CustomRoutingListener", + "traits": { + "smithy.api#documentation": "

                          Information for the updated listener for a custom routing accelerator.

                          " } } } @@ -2374,18 +4323,12 @@ } ], "traits": { - "smithy.api#documentation": "

                          Update an endpoint group. A resource must be valid and active when you add it as an endpoint.

                          \n\t\t

                          To see an AWS CLI example of updating an endpoint group, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Update an endpoint group. A resource must be valid and active when you add it as an endpoint.

                          " } }, "com.amazonaws.globalaccelerator#UpdateEndpointGroupRequest": { "type": "structure", "members": { - "HealthCheckPath": { - "target": "com.amazonaws.globalaccelerator#GenericString", - "traits": { - "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The\n\t\t\tdefault value is slash (/).

                          " - } - }, "EndpointGroupArn": { "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { @@ -2393,34 +4336,40 @@ "smithy.api#required": {} } }, + "EndpointConfigurations": { + "target": "com.amazonaws.globalaccelerator#EndpointConfigurations", + "traits": { + "smithy.api#documentation": "

                          The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.

                          " + } + }, "TrafficDialPercentage": { "target": "com.amazonaws.globalaccelerator#TrafficDialPercentage", "traits": { "smithy.api#documentation": "

                          The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for\n\t\t\tthis listener.

                          \n\t\t

                          Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is\n\t\t\tapplied to the traffic that would otherwise have been routed to the Region based on optimal routing.

                          \n\t\t

                          The default value is 100.

                          " } }, - "HealthCheckIntervalSeconds": { - "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", + "HealthCheckPort": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPort", "traits": { - "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

                          " + "smithy.api#documentation": "

                          The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port\n\t\t\tis the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses\n\t\t\tthe first port in the list.

                          " } }, - "PortOverrides": { - "target": "com.amazonaws.globalaccelerator#PortOverrides", + "HealthCheckProtocol": { + "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", "traits": { - "smithy.api#documentation": "

                          Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. \n\t\t\tFor example, you can create a port override in which the listener \n\t\t\treceives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 \n\t\t\tand 1443, respectively, on the endpoints.

                          \n\t\t

                          For more information, see \n\t\t\tPort overrides in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " } }, - "EndpointConfigurations": { - "target": "com.amazonaws.globalaccelerator#EndpointConfigurations", + "HealthCheckPath": { + "target": "com.amazonaws.globalaccelerator#HealthCheckPath", "traits": { - "smithy.api#documentation": "

                          The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.

                          " + "smithy.api#documentation": "

                          If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The\n\t\t\tdefault value is slash (/).

                          " } }, - "HealthCheckPort": { - "target": "com.amazonaws.globalaccelerator#HealthCheckPort", + "HealthCheckIntervalSeconds": { + "target": "com.amazonaws.globalaccelerator#HealthCheckIntervalSeconds", "traits": { - "smithy.api#documentation": "

                          The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port\n\t\t\tis the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses\n\t\t\tthe first port in the list.

                          " + "smithy.api#documentation": "

                          The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.

                          " } }, "ThresholdCount": { @@ -2429,10 +4378,10 @@ "smithy.api#documentation": "

                          The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an\n\t\t\tunhealthy endpoint to healthy. The default value is 3.

                          " } }, - "HealthCheckProtocol": { - "target": "com.amazonaws.globalaccelerator#HealthCheckProtocol", + "PortOverrides": { + "target": "com.amazonaws.globalaccelerator#PortOverrides", "traits": { - "smithy.api#documentation": "

                          The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default\n\t\t\tvalue is TCP.

                          " + "smithy.api#documentation": "

                          Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. \n\t\t\tFor example, you can create a port override in which the listener \n\t\t\treceives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 \n\t\t\tand 1443, respectively, on the endpoints.

                          \n\t\t

                          For more information, see \n\t\t\tPort overrides in the AWS Global Accelerator Developer Guide.

                          " } } } @@ -2474,16 +4423,17 @@ } ], "traits": { - "smithy.api#documentation": "

                          Update a listener. To see an AWS CLI example of updating listener, scroll down to Example.

                          " + "smithy.api#documentation": "

                          Update a listener.

                          " } }, "com.amazonaws.globalaccelerator#UpdateListenerRequest": { "type": "structure", "members": { - "Protocol": { - "target": "com.amazonaws.globalaccelerator#Protocol", + "ListenerArn": { + "target": "com.amazonaws.globalaccelerator#GenericString", "traits": { - "smithy.api#documentation": "

                          The updated protocol for the connections from clients to the accelerator.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to update.

                          ", + "smithy.api#required": {} } }, "PortRanges": { @@ -2492,17 +4442,16 @@ "smithy.api#documentation": "

                          The updated list of port ranges for the connections from clients to the accelerator.

                          " } }, - "ClientAffinity": { - "target": "com.amazonaws.globalaccelerator#ClientAffinity", + "Protocol": { + "target": "com.amazonaws.globalaccelerator#Protocol", "traits": { - "smithy.api#documentation": "

                          Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications,\n\t\t\tregardless of the port and protocol of the client request. Client affinity gives you control over whether to always\n\t\t\troute each client to the same specific endpoint.

                          \n\t\t

                          AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client\n\t\t\taffinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port,\n\t\t\tdestination IP address, destination port, and protocol—to select the hash value, and then chooses the best\n\t\t\tendpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not\n\t\t\tbe always routed to the same endpoint because the hash value changes.

                          \n\t\t

                          If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP\n\t\t\tinstead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—\n\t\t\tsource (client) IP address and destination IP address—to select the hash value.

                          \n\t\t

                          The default value is NONE.

                          " + "smithy.api#documentation": "

                          The updated protocol for the connections from clients to the accelerator.

                          " } }, - "ListenerArn": { - "target": "com.amazonaws.globalaccelerator#GenericString", + "ClientAffinity": { + "target": "com.amazonaws.globalaccelerator#ClientAffinity", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the listener to update.

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

                          Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications,\n\t\t\tregardless of the port and protocol of the client request. Client affinity gives you control over whether to always\n\t\t\troute each client to the same specific endpoint.

                          \n\t\t

                          AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client\n\t\t\taffinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port,\n\t\t\tdestination IP address, destination port, and protocol—to select the hash value, and then chooses the best\n\t\t\tendpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not\n\t\t\tbe always routed to the same endpoint because the hash value changes.

                          \n\t\t

                          If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP\n\t\t\tinstead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties—\n\t\t\tsource (client) IP address and destination IP address—to select the hash value.

                          \n\t\t

                          The default value is NONE.

                          " } } } @@ -2544,7 +4493,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Stops advertising an address range that is provisioned as an address pool.\n\t\t\tYou can perform this operation at most once every 10 seconds, even if you specify different address\n\t\t\tranges each time. To see an AWS CLI example of withdrawing an address range for BYOIP so \n\t\t\tit will no longer be advertised by AWS, scroll down to Example.

                          \n\t\t

                          It can take a few minutes before traffic to the specified addresses stops routing to AWS because of\n\t\t\tpropagation delays.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " + "smithy.api#documentation": "

                          Stops advertising an address range that is provisioned as an address pool.\n\t\t\tYou can perform this operation at most once every 10 seconds, even if you specify different address\n\t\t\tranges each time.

                          \n\t\t

                          It can take a few minutes before traffic to the specified addresses stops routing to AWS because of\n\t\t\tpropagation delays.

                          \n\t\t

                          For more information, see Bring Your Own \n\t\t\tIP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

                          " } }, "com.amazonaws.globalaccelerator#WithdrawByoipCidrRequest": { diff --git a/codegen/sdk-codegen/aws-models/healthlake.2017-07-01.json b/codegen/sdk-codegen/aws-models/healthlake.2017-07-01.json new file mode 100644 index 0000000000000..cccd8a7b88534 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/healthlake.2017-07-01.json @@ -0,0 +1,973 @@ +{ + "smithy": "1.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.healthlake#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          Access is denied. Your account is not authorized to perform this operation.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.healthlake#BoundedLengthString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5000 + }, + "smithy.api#pattern": "[\\P{M}\\p{M}]{1,5000}" + } + }, + "com.amazonaws.healthlake#ClientTokenString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.healthlake#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The datastore is in a transition state and the user requested action can not be performed.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.healthlake#CreateFHIRDatastore": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#CreateFHIRDatastoreRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#CreateFHIRDatastoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a datastore that can ingest and export FHIR data.

                          " + } + }, + "com.amazonaws.healthlake#CreateFHIRDatastoreRequest": { + "type": "structure", + "members": { + "DatastoreName": { + "target": "com.amazonaws.healthlake#DatastoreName", + "traits": { + "smithy.api#documentation": "

                          The user generated name for the datastore.

                          " + } + }, + "DatastoreTypeVersion": { + "target": "com.amazonaws.healthlake#FHIRVersion", + "traits": { + "smithy.api#documentation": "

                          The FHIR version of the datastore. The only supported version is R4.

                          ", + "smithy.api#required": {} + } + }, + "PreloadDataConfig": { + "target": "com.amazonaws.healthlake#PreloadDataConfig", + "traits": { + "smithy.api#documentation": "

                          Optional parameter to preload data upon creation of the datastore. Currently, the only\n supported preloaded data is synthetic data generated from Synthea.

                          " + } + }, + "ClientToken": { + "target": "com.amazonaws.healthlake#ClientTokenString", + "traits": { + "smithy.api#documentation": "

                          Optional user provided token used for ensuring idempotency.

                          ", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.healthlake#CreateFHIRDatastoreResponse": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated datastore id. This id is in the output from the initial datastore\n creation call.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreArn": { + "target": "com.amazonaws.healthlake#DatastoreArn", + "traits": { + "smithy.api#documentation": "

                          The datastore ARN is generated during the creation of the datastore and can be found in\n the output from the initial datastore creation call.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreStatus": { + "target": "com.amazonaws.healthlake#DatastoreStatus", + "traits": { + "smithy.api#documentation": "

                          The status of the FHIR datastore. Possible statuses are ‘CREATING’, ‘ACTIVE’, ‘DELETING’,\n ‘DELETED’.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreEndpoint": { + "target": "com.amazonaws.healthlake#BoundedLengthString", + "traits": { + "smithy.api#documentation": "

                          The AWS endpoint for the created datastore. For preview, only US-east-1 endpoints are\n supported.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#DatastoreArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:healthlake:[a-zA-Z0-9-]+:[0-9]{12}:datastore/.+?" + } + }, + "com.amazonaws.healthlake#DatastoreFilter": { + "type": "structure", + "members": { + "DatastoreName": { + "target": "com.amazonaws.healthlake#DatastoreName", + "traits": { + "smithy.api#documentation": "

                          Allows the user to filter datastore results by name.

                          " + } + }, + "DatastoreStatus": { + "target": "com.amazonaws.healthlake#DatastoreStatus", + "traits": { + "smithy.api#documentation": "

                          Allows the user to filter datastore results by status.

                          " + } + }, + "CreatedBefore": { + "target": "com.amazonaws.healthlake#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that allows the user to set cutoff dates for records. All datastores created\n before the specified date will be included in the results.

                          " + } + }, + "CreatedAfter": { + "target": "com.amazonaws.healthlake#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that allows the user to set cutoff dates for records. All datastores created\n after the specified date will be included in the results.

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

                          The filters applied to datastore query.

                          " + } + }, + "com.amazonaws.healthlake#DatastoreId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + } + }, + "com.amazonaws.healthlake#DatastoreName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + } + }, + "com.amazonaws.healthlake#DatastoreProperties": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated ID number for the datastore.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreArn": { + "target": "com.amazonaws.healthlake#DatastoreArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name used in the creation of the datastore.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreName": { + "target": "com.amazonaws.healthlake#DatastoreName", + "traits": { + "smithy.api#documentation": "

                          The user-generated name for the datastore.

                          " + } + }, + "DatastoreStatus": { + "target": "com.amazonaws.healthlake#DatastoreStatus", + "traits": { + "smithy.api#documentation": "

                          The status of the datastore. Possible statuses are 'CREATING', 'ACTIVE', 'DELETING', or 'DELETED'.

                          ", + "smithy.api#required": {} + } + }, + "CreatedAt": { + "target": "com.amazonaws.healthlake#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time that a datastore was created.

                          " + } + }, + "DatastoreTypeVersion": { + "target": "com.amazonaws.healthlake#FHIRVersion", + "traits": { + "smithy.api#documentation": "

                          The FHIR version. Only R4 version data is supported.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreEndpoint": { + "target": "com.amazonaws.healthlake#String", + "traits": { + "smithy.api#documentation": "

                          The AWS endpoint for the datastore. Each datastore will have it's own endpoint with datastore ID in the endpoint URL.

                          ", + "smithy.api#required": {} + } + }, + "PreloadDataConfig": { + "target": "com.amazonaws.healthlake#PreloadDataConfig", + "traits": { + "smithy.api#documentation": "

                          The preloaded data configuration for the datastore. Only data preloaded from Synthea is supported.

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

                          Displays the properties of the datastore, including the ID, Arn, name, and the status of the datastore.

                          " + } + }, + "com.amazonaws.healthlake#DatastorePropertiesList": { + "type": "list", + "member": { + "target": "com.amazonaws.healthlake#DatastoreProperties" + } + }, + "com.amazonaws.healthlake#DatastoreStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "DELETING", + "name": "DELETING" + }, + { + "value": "DELETED", + "name": "DELETED" + } + ] + } + }, + "com.amazonaws.healthlake#DeleteFHIRDatastore": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#DeleteFHIRDatastoreRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#DeleteFHIRDatastoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#AccessDeniedException" + }, + { + "target": "com.amazonaws.healthlake#ConflictException" + }, + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a datastore.

                          " + } + }, + "com.amazonaws.healthlake#DeleteFHIRDatastoreRequest": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated ID for the datastore to be deleted.

                          " + } + } + } + }, + "com.amazonaws.healthlake#DeleteFHIRDatastoreResponse": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated ID for the datastore to be deleted.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreArn": { + "target": "com.amazonaws.healthlake#DatastoreArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreStatus": { + "target": "com.amazonaws.healthlake#DatastoreStatus", + "traits": { + "smithy.api#documentation": "

                          The status of the datastore that the user has requested to be deleted. \n

                          ", + "smithy.api#required": {} + } + }, + "DatastoreEndpoint": { + "target": "com.amazonaws.healthlake#BoundedLengthString", + "traits": { + "smithy.api#documentation": "

                          The AWS endpoint for the datastore the user has requested to be deleted.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#DescribeFHIRDatastore": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#DescribeFHIRDatastoreRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#DescribeFHIRDatastoreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets the properties associated with the FHIR datastore, including the datastore ID,\n datastore ARN, datastore name, datastore status, created at, datastore type version, and\n datastore endpoint.

                          " + } + }, + "com.amazonaws.healthlake#DescribeFHIRDatastoreRequest": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated datastore id. This is part of the ‘CreateFHIRDatastore’ output.

                          " + } + } + } + }, + "com.amazonaws.healthlake#DescribeFHIRDatastoreResponse": { + "type": "structure", + "members": { + "DatastoreProperties": { + "target": "com.amazonaws.healthlake#DatastoreProperties", + "traits": { + "smithy.api#documentation": "

                          All properties associated with a datastore, including the datastore ID, datastore ARN,\n datastore name, datastore status, created at, datastore type version, and datastore\n endpoint.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#DescribeFHIRImportJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#DescribeFHIRImportJobRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#DescribeFHIRImportJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Displays the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore.

                          " + } + }, + "com.amazonaws.healthlake#DescribeFHIRImportJobRequest": { + "type": "structure", + "members": { + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated ID of the datastore.

                          ", + "smithy.api#required": {} + } + }, + "JobId": { + "target": "com.amazonaws.healthlake#JobId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated job ID.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#DescribeFHIRImportJobResponse": { + "type": "structure", + "members": { + "ImportJobProperties": { + "target": "com.amazonaws.healthlake#ImportJobProperties", + "traits": { + "smithy.api#documentation": "

                          The properties of the Import job request, including the ID, ARN, name, and the status of the datastore.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#FHIRVersion": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "R4", + "name": "R4" + } + ] + } + }, + "com.amazonaws.healthlake#HealthLake": { + "type": "service", + "version": "2017-07-01", + "operations": [ + { + "target": "com.amazonaws.healthlake#CreateFHIRDatastore" + }, + { + "target": "com.amazonaws.healthlake#DeleteFHIRDatastore" + }, + { + "target": "com.amazonaws.healthlake#DescribeFHIRDatastore" + }, + { + "target": "com.amazonaws.healthlake#DescribeFHIRImportJob" + }, + { + "target": "com.amazonaws.healthlake#ListFHIRDatastores" + }, + { + "target": "com.amazonaws.healthlake#StartFHIRImportJob" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "HealthLake", + "arnNamespace": "healthlake", + "cloudFormationName": "HealthLake", + "cloudTrailEventSource": "healthlake.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "healthlake" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

                          Amazon HealthLake is a HIPAA eligibile service that allows customers to store,\n transform, query, and analyze their data in a consistent fashion in the cloud.

                          ", + "smithy.api#title": "Amazon HealthLake" + } + }, + "com.amazonaws.healthlake#IamRoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+" + } + }, + "com.amazonaws.healthlake#ImportJobProperties": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.healthlake#JobId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated id number for the Import job.

                          ", + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.healthlake#JobName", + "traits": { + "smithy.api#documentation": "

                          The user-generated name for an Import job.

                          " + } + }, + "JobStatus": { + "target": "com.amazonaws.healthlake#JobStatus", + "traits": { + "smithy.api#documentation": "

                          The job status for an Import job. Possible statuses are SUBMITTED, IN_PROGRESS, COMPLETED, FAILED.

                          ", + "smithy.api#required": {} + } + }, + "SubmitTime": { + "target": "com.amazonaws.healthlake#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time that the Import job was submitted for processing.

                          ", + "smithy.api#required": {} + } + }, + "EndTime": { + "target": "com.amazonaws.healthlake#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time that the Import job was completed.

                          " + } + }, + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The datastore id used when the Import job was created.

                          ", + "smithy.api#required": {} + } + }, + "InputDataConfig": { + "target": "com.amazonaws.healthlake#InputDataConfig", + "traits": { + "smithy.api#documentation": "

                          The input data configuration that was supplied when the Import job was created.

                          ", + "smithy.api#required": {} + } + }, + "DataAccessRoleArn": { + "target": "com.amazonaws.healthlake#IamRoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that gives Amazon HealthLake access to your input data.

                          " + } + }, + "Message": { + "target": "com.amazonaws.healthlake#Message", + "traits": { + "smithy.api#documentation": "

                          An explanation of any errors that may have occurred during the FHIR import job.

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

                          Displays the properties of the import job, including the ID, Arn, Name, and the status of the datastore.

                          " + } + }, + "com.amazonaws.healthlake#InputDataConfig": { + "type": "union", + "members": { + "S3Uri": { + "target": "com.amazonaws.healthlake#S3Uri", + "traits": { + "smithy.api#documentation": "

                          The S3Uri is the user specified S3 location of the FHIR data to be imported into Amazon HealthLake.

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

                          The input properties for an import job.

                          " + } + }, + "com.amazonaws.healthlake#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          Unknown error occurs in the service.

                          ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.healthlake#JobId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + } + }, + "com.amazonaws.healthlake#JobName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + } + }, + "com.amazonaws.healthlake#JobStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SUBMITTED", + "name": "SUBMITTED" + }, + { + "value": "IN_PROGRESS", + "name": "IN_PROGRESS" + }, + { + "value": "COMPLETED", + "name": "COMPLETED" + }, + { + "value": "FAILED", + "name": "FAILED" + } + ] + } + }, + "com.amazonaws.healthlake#ListFHIRDatastores": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#ListFHIRDatastoresRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#ListFHIRDatastoresResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all FHIR datastores that are in the user’s account, regardless of datastore\n status.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.healthlake#ListFHIRDatastoresRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.healthlake#DatastoreFilter", + "traits": { + "smithy.api#documentation": "

                          Lists all filters associated with a FHIR datastore request.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.healthlake#NextToken", + "traits": { + "smithy.api#documentation": "

                          Fetches the next page of datastores when results are paginated.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.healthlake#MaxResultsInteger", + "traits": { + "smithy.api#documentation": "

                          The maximum number of datastores returned in a single page of a\n ListFHIRDatastoresRequest call.

                          " + } + } + } + }, + "com.amazonaws.healthlake#ListFHIRDatastoresResponse": { + "type": "structure", + "members": { + "DatastorePropertiesList": { + "target": "com.amazonaws.healthlake#DatastorePropertiesList", + "traits": { + "smithy.api#documentation": "

                          All properties associated with the listed datastores.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.healthlake#NextToken", + "traits": { + "smithy.api#documentation": "

                          Pagination token that can be used to retrieve the next page of results.

                          " + } + } + } + }, + "com.amazonaws.healthlake#MaxResultsInteger": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, + "com.amazonaws.healthlake#Message": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$" + } + }, + "com.amazonaws.healthlake#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 8192 + }, + "smithy.api#pattern": "\\p{ASCII}{0,8192}" + } + }, + "com.amazonaws.healthlake#PreloadDataConfig": { + "type": "structure", + "members": { + "PreloadDataType": { + "target": "com.amazonaws.healthlake#PreloadDataType", + "traits": { + "smithy.api#documentation": "

                          The type of preloaded data. Only Synthea preloaded data is supported.

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

                          The input properties for the preloaded datastore. Only data preloaded from Synthea is supported.

                          " + } + }, + "com.amazonaws.healthlake#PreloadDataType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SYNTHEA", + "name": "SYNTHEA" + } + ] + } + }, + "com.amazonaws.healthlake#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The requested datastore was not found.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.healthlake#S3Uri": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?" + } + }, + "com.amazonaws.healthlake#StartFHIRImportJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.healthlake#StartFHIRImportJobRequest" + }, + "output": { + "target": "com.amazonaws.healthlake#StartFHIRImportJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.healthlake#AccessDeniedException" + }, + { + "target": "com.amazonaws.healthlake#InternalServerException" + }, + { + "target": "com.amazonaws.healthlake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.healthlake#ThrottlingException" + }, + { + "target": "com.amazonaws.healthlake#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Begins a FHIR Import job.

                          " + } + }, + "com.amazonaws.healthlake#StartFHIRImportJobRequest": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.healthlake#JobName", + "traits": { + "smithy.api#documentation": "

                          The name of the FHIR Import job in the StartFHIRImport job request.

                          " + } + }, + "InputDataConfig": { + "target": "com.amazonaws.healthlake#InputDataConfig", + "traits": { + "smithy.api#documentation": "

                          The input properties of the FHIR Import job in the StartFHIRImport job request.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated datastore ID.

                          ", + "smithy.api#required": {} + } + }, + "DataAccessRoleArn": { + "target": "com.amazonaws.healthlake#IamRoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.

                          ", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.healthlake#ClientTokenString", + "traits": { + "smithy.api#documentation": "

                          Optional user provided token used for ensuring idempotency.

                          ", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.healthlake#StartFHIRImportJobResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.healthlake#JobId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated job ID.

                          ", + "smithy.api#required": {} + } + }, + "JobStatus": { + "target": "com.amazonaws.healthlake#JobStatus", + "traits": { + "smithy.api#documentation": "

                          The status of an import job.

                          ", + "smithy.api#required": {} + } + }, + "DatastoreId": { + "target": "com.amazonaws.healthlake#DatastoreId", + "traits": { + "smithy.api#documentation": "

                          The AWS-generated datastore ID.

                          " + } + } + } + }, + "com.amazonaws.healthlake#String": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10000 + }, + "smithy.api#pattern": "[\\P{M}\\p{M}]{0,10000}" + } + }, + "com.amazonaws.healthlake#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The user has exceeded their maximum number of allowed calls to the given API.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.healthlake#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.healthlake#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.healthlake#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The user input parameter was invalid.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + } + } +} diff --git a/codegen/sdk-codegen/aws-models/kafka.2018-11-14.json b/codegen/sdk-codegen/aws-models/kafka.2018-11-14.json index 67d841c324d58..3386ef9e3420f 100644 --- a/codegen/sdk-codegen/aws-models/kafka.2018-11-14.json +++ b/codegen/sdk-codegen/aws-models/kafka.2018-11-14.json @@ -558,7 +558,7 @@ "State": { "target": "com.amazonaws.kafka#ClusterState", "traits": { - "smithy.api#documentation": "

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

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

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

                          ", "smithy.api#jsonName": "state" } }, @@ -737,6 +737,10 @@ "value": "FAILED", "name": "FAILED" }, + { + "value": "HEALING", + "name": "HEALING" + }, { "value": "MAINTENANCE", "name": "MAINTENANCE" @@ -1082,7 +1086,7 @@ "State": { "target": "com.amazonaws.kafka#ClusterState", "traits": { - "smithy.api#documentation": "

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

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

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

                          ", "smithy.api#jsonName": "state" } } @@ -1267,7 +1271,7 @@ "State": { "target": "com.amazonaws.kafka#ClusterState", "traits": { - "smithy.api#documentation": "

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

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

                          The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.

                          ", "smithy.api#jsonName": "state" } } diff --git a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json index d45b44ed0bc82..683a3353b583b 100644 --- a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json +++ b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json @@ -132,7 +132,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Access Control List files for the documents in a data source.

                          " + "smithy.api#documentation": "

                          Access Control List files for the documents in a data source. For\n the format of the file, see Access control for S3 data\n sources.

                          " } }, "com.amazonaws.kendra#AccessDeniedException": { @@ -154,13 +154,13 @@ "AllowedGroupsColumnName": { "target": "com.amazonaws.kendra#ColumnName", "traits": { - "smithy.api#documentation": "

                          A list of groups, separated by semi-colons, that filters a query response based on\n user context. The document is only returned to users that are in one of the groups\n specified in the UserContext field of the Query\n operation.

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

                          A list of groups, separated by semi-colons, that filters a query\n response based on user context. The document is only returned to\n users that are in one of the groups specified in the\n UserContext field of the Query\n operation.

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

                          Provides information about the column that should be used for filtering the query\n response by groups.

                          " + "smithy.api#documentation": "

                          Provides information about the column that should be used for\n filtering the query response by groups.

                          " } }, "com.amazonaws.kendra#AdditionalResultAttribute": { @@ -204,7 +204,7 @@ "TextWithHighlightsValue": { "target": "com.amazonaws.kendra#TextWithHighlights", "traits": { - "smithy.api#documentation": "

                          The text associated with the attribute and information about the highlight to apply to\n the text.

                          " + "smithy.api#documentation": "

                          The text associated with the attribute and information about the\n highlight to apply to the text.

                          " } } }, @@ -238,19 +238,19 @@ "AndAllFilters": { "target": "com.amazonaws.kendra#AttributeFilterList", "traits": { - "smithy.api#documentation": "

                          Performs a logical AND operation on all supplied filters.

                          " + "smithy.api#documentation": "

                          Performs a logical AND operation on all supplied\n filters.

                          " } }, "OrAllFilters": { "target": "com.amazonaws.kendra#AttributeFilterList", "traits": { - "smithy.api#documentation": "

                          Performs a logical OR operation on all supplied filters.

                          " + "smithy.api#documentation": "

                          Performs a logical OR operation on all supplied\n filters.

                          " } }, "NotFilter": { "target": "com.amazonaws.kendra#AttributeFilter", "traits": { - "smithy.api#documentation": "

                          Performs a logical NOT operation on all supplied filters.

                          " + "smithy.api#documentation": "

                          Performs a logical NOT operation on all supplied\n filters.

                          " } }, "EqualsTo": { @@ -262,42 +262,42 @@ "ContainsAll": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Returns true when a document contains all of the specified document attributes. This\n filter is only applicable to StringListValue metadata.

                          " + "smithy.api#documentation": "

                          Returns true when a document contains all of the specified document\n attributes. This filter is only applicable to\n StringListValue metadata.

                          " } }, "ContainsAny": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Returns true when a document contains any of the specified document attributes. This\n filter is only applicable to StringListValue metadata.

                          " + "smithy.api#documentation": "

                          Returns true when a document contains any of the specified document\n attributes. This filter is only applicable to\n StringListValue metadata.

                          " } }, "GreaterThan": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Performs a greater than operation on two document attributes. Use with a document\n attribute of type Integer or Long.

                          " + "smithy.api#documentation": "

                          Performs a greater than operation on two document attributes. Use\n with a document attribute of type Integer or\n Long.

                          " } }, "GreaterThanOrEquals": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Performs a greater or equals than operation on two document attributes. Use with a\n document attribute of type Integer or Long.

                          " + "smithy.api#documentation": "

                          Performs a greater or equals than operation on two document\n attributes. Use with a document attribute of type Integer\n or Long.

                          " } }, "LessThan": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Performs a less than operation on two document attributes. Use with a document attribute\n of type Integer or Long.

                          " + "smithy.api#documentation": "

                          Performs a less than operation on two document attributes. Use with\n a document attribute of type Integer or\n Long.

                          " } }, "LessThanOrEquals": { "target": "com.amazonaws.kendra#DocumentAttribute", "traits": { - "smithy.api#documentation": "

                          Performs a less than or equals operation on two document attributes. Use with a document\n attribute of type Integer or Long.

                          " + "smithy.api#documentation": "

                          Performs a less than or equals operation on two document attributes.\n Use with a document attribute of type Integer or\n Long.

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

                          Provides filtering the query results based on document attributes.

                          \n

                          When you use the AndAllFilters or OrAllFilters, filters you\n can use 2 layers under the first attribute filter. For example, you can use:

                          \n

                          \n \n

                          \n
                            \n
                          1. \n

                            \n \n

                            \n
                          2. \n
                          3. \n

                            \n \n

                            \n
                          4. \n
                          \n

                          If you use more than 2 layers, you receive a ValidationException exception\n with the message \"AttributeFilter cannot have a depth of more than 2.\"

                          " + "smithy.api#documentation": "

                          Provides filtering the query results based on document\n attributes.

                          \n

                          When you use the AndAllFilters or\n OrAllFilters, filters you can use 2 layers under the\n first attribute filter. For example, you can use:

                          \n

                          \n \n

                          \n
                            \n
                          1. \n

                            \n \n

                            \n
                          2. \n
                          3. \n

                            \n \n

                            \n
                          4. \n
                          \n

                          If you use more than 2 layers, you receive a\n ValidationException exception with the message\n \"AttributeFilter cannot have a depth of more than\n 2.\"

                          " } }, "com.amazonaws.kendra#AttributeFilterList": { @@ -377,24 +377,24 @@ "Id": { "target": "com.amazonaws.kendra#DocumentId", "traits": { - "smithy.api#documentation": "

                          The identifier of the document that couldn't be removed from the index.

                          " + "smithy.api#documentation": "

                          The identifier of the document that couldn't be removed from the\n index.

                          " } }, "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { - "smithy.api#documentation": "

                          The error code for why the document couldn't be removed from the index.

                          " + "smithy.api#documentation": "

                          The error code for why the document couldn't be removed from the\n index.

                          " } }, "ErrorMessage": { "target": "com.amazonaws.kendra#ErrorMessage", "traits": { - "smithy.api#documentation": "

                          An explanation for why the document couldn't be removed from the index.

                          " + "smithy.api#documentation": "

                          An explanation for why the document couldn't be removed from the\n index.

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

                          Provides information about documents that could not be removed from an index by the\n BatchDeleteDocument operation.

                          " + "smithy.api#documentation": "

                          Provides information about documents that could not be removed\n from an index by the BatchDeleteDocument\n operation.

                          " } }, "com.amazonaws.kendra#BatchDeleteDocumentResponseFailedDocuments": { @@ -486,18 +486,18 @@ "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { - "smithy.api#documentation": "

                          The type of error that caused the document to fail to be indexed.

                          " + "smithy.api#documentation": "

                          The type of error that caused the document to fail to be\n indexed.

                          " } }, "ErrorMessage": { "target": "com.amazonaws.kendra#ErrorMessage", "traits": { - "smithy.api#documentation": "

                          A description of the reason why the document could not be indexed.

                          " + "smithy.api#documentation": "

                          A description of the reason why the document could not be\n indexed.

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

                          Provides information about a document that could not be indexed.

                          " + "smithy.api#documentation": "

                          Provides information about a document that could not be\n indexed.

                          " } }, "com.amazonaws.kendra#BatchPutDocumentResponseFailedDocuments": { @@ -518,20 +518,20 @@ "StorageCapacityUnits": { "target": "com.amazonaws.kendra#StorageCapacityUnit", "traits": { - "smithy.api#documentation": "

                          The amount of extra storage capacity for an index. Each capacity unit provides 150 Gb\n of storage space or 500,000 documents, whichever is reached first.

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

                          The amount of extra storage capacity for an index. Each capacity\n unit provides 150 Gb of storage space or 500,000 documents,\n whichever is reached first.

                          ", "smithy.api#required": {} } }, "QueryCapacityUnits": { "target": "com.amazonaws.kendra#QueryCapacityUnit", "traits": { - "smithy.api#documentation": "

                          The amount of extra query capacity for an index. Each capacity unit provides 0.5\n queries per second and 40,000 queries per day.

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

                          The amount of extra query capacity for an index. Each capacity\n unit provides 0.5 queries per second and 40,000 queries per\n day.

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

                          Specifies capacity units configured for your index. You can add and remove capacity\n units to tune an index to your requirements.

                          " + "smithy.api#documentation": "

                          Specifies capacity units configured for your index. You can add\n and remove capacity units to tune an index to your\n requirements.

                          " } }, "com.amazonaws.kendra#ChangeDetectingColumns": { @@ -562,20 +562,20 @@ "ResultId": { "target": "com.amazonaws.kendra#ResultId", "traits": { - "smithy.api#documentation": "

                          The unique identifier of the search result that was clicked.

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

                          The unique identifier of the search result that was\n clicked.

                          ", "smithy.api#required": {} } }, "ClickTime": { "target": "com.amazonaws.kendra#Timestamp", "traits": { - "smithy.api#documentation": "

                          The Unix timestamp of the date and time that the result was clicked.

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

                          The Unix timestamp of the date and time that the result was\n clicked.

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

                          Gathers information about when a particular result was clicked by a user. Your\n application uses the SubmitFeedback operation to provide click\n information.

                          " + "smithy.api#documentation": "

                          Gathers information about when a particular result was clicked by\n a user. Your application uses the SubmitFeedback\n operation to provide click information.

                          " } }, "com.amazonaws.kendra#ClickFeedbackList": { @@ -619,19 +619,19 @@ "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          An array of objects that map database column names to the corresponding fields in an\n index. You must first create the fields in the index using the UpdateIndex operation.

                          " + "smithy.api#documentation": "

                          An array of objects that map database column names to the\n corresponding fields in an index. You must first create the fields\n in the index using the UpdateIndex\n operation.

                          " } }, "ChangeDetectingColumns": { "target": "com.amazonaws.kendra#ChangeDetectingColumns", "traits": { - "smithy.api#documentation": "

                          One to five columns that indicate when a document in the database has changed.

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

                          One to five columns that indicate when a document in the database\n has changed.

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

                          Provides information about how Amazon Kendra should use the columns of a database in an\n index.

                          " + "smithy.api#documentation": "

                          Provides information about how Amazon Kendra should use the columns of\n a database in an index.

                          " } }, "com.amazonaws.kendra#ColumnName": { @@ -1208,13 +1208,13 @@ "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The\n credentials should be a user/password pair. For more information, see Using a\n Database Data Source. For more information about AWS Secrets Manager, see\n What\n Is AWS Secrets Manager in the AWS Secrets Manager user\n guide.

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

                          The Amazon Resource Name (ARN) of credentials stored in AWS\n Secrets Manager. The credentials should be a user/password pair. For\n more information, see Using a\n Database Data Source. For more information about AWS\n Secrets Manager, see What Is AWS\n Secrets Manager in the AWS Secrets\n Manager user guide.

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

                          Provides the information necessary to connect to a database.

                          " + "smithy.api#documentation": "

                          Provides the information necessary to connect to a\n database.

                          " } }, "com.amazonaws.kendra#ContentType": { @@ -1575,37 +1575,37 @@ "S3Configuration": { "target": "com.amazonaws.kendra#S3DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides information to create a data source connector for a document repository in an\n Amazon S3 bucket.

                          " + "smithy.api#documentation": "

                          Provides information to create a data source connector for a\n document repository in an Amazon S3 bucket.

                          " } }, "SharePointConfiguration": { "target": "com.amazonaws.kendra#SharePointConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides information necessary to create a data source connector for a Microsoft\n SharePoint site.

                          " + "smithy.api#documentation": "

                          Provides information necessary to create a data source connector\n for a Microsoft SharePoint site.

                          " } }, "DatabaseConfiguration": { "target": "com.amazonaws.kendra#DatabaseConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides information necessary to create a data source connector for a\n database.

                          " + "smithy.api#documentation": "

                          Provides information necessary to create a data source connector\n for a database.

                          " } }, "SalesforceConfiguration": { "target": "com.amazonaws.kendra#SalesforceConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for data sources that connect to a Salesforce\n site.

                          " + "smithy.api#documentation": "

                          Provides configuration information for data sources that connect\n to a Salesforce site.

                          " } }, "OneDriveConfiguration": { "target": "com.amazonaws.kendra#OneDriveConfiguration", "traits": { - "smithy.api#documentation": "

                          Provided configuration for data sources that connect to Microsoft OneDrive.

                          " + "smithy.api#documentation": "

                          Provides configuration for data sources that connect to Microsoft OneDrive.

                          " } }, "ServiceNowConfiguration": { "target": "com.amazonaws.kendra#ServiceNowConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration for data sources that connect to ServiceNow instances.

                          " + "smithy.api#documentation": "

                          Provides configuration for data sources that connect to ServiceNow\n instances.

                          " } }, "ConfluenceConfiguration": { @@ -1613,6 +1613,12 @@ "traits": { "smithy.api#documentation": "

                          Provides configuration information for connecting to a Confluence\n data source.

                          " } + }, + "GoogleDriveConfiguration": { + "target": "com.amazonaws.kendra#GoogleDriveConfiguration", + "traits": { + "smithy.api#documentation": "

                          Provides configuration for data sources that connect to \n Google Drive.

                          " + } } }, "traits": { @@ -1743,12 +1749,12 @@ "Status": { "target": "com.amazonaws.kendra#DataSourceStatus", "traits": { - "smithy.api#documentation": "

                          The status of the data source. When the status is ATIVE the data source\n is ready to use.

                          " + "smithy.api#documentation": "

                          The status of the data source. When the status is\n ATIVE the data source is ready to use.

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

                          Summary information for a Amazon Kendra data source. Returned in a call to .

                          " + "smithy.api#documentation": "

                          Summary information for a Amazon Kendra data source. Returned in a call\n to .

                          " } }, "com.amazonaws.kendra#DataSourceSummaryList": { @@ -1775,37 +1781,37 @@ "EndTime": { "target": "com.amazonaws.kendra#Timestamp", "traits": { - "smithy.api#documentation": "

                          The UNIX datetime that the synchronization job was completed.

                          " + "smithy.api#documentation": "

                          The UNIX datetime that the synchronization job was\n completed.

                          " } }, "Status": { "target": "com.amazonaws.kendra#DataSourceSyncJobStatus", "traits": { - "smithy.api#documentation": "

                          The execution status of the synchronization job. When the Status field is\n set to SUCCEEDED, the synchronization job is done. If the status code is\n set to FAILED, the ErrorCode and ErrorMessage\n fields give you the reason for the failure.

                          " + "smithy.api#documentation": "

                          The execution status of the synchronization job. When the\n Status field is set to SUCCEEDED, the\n synchronization job is done. If the status code is set to\n FAILED, the ErrorCode and\n ErrorMessage fields give you the reason for the\n failure.

                          " } }, "ErrorMessage": { "target": "com.amazonaws.kendra#ErrorMessage", "traits": { - "smithy.api#documentation": "

                          If the Status field is set to ERROR, the\n ErrorMessage field contains a description of the error that caused the\n synchronization to fail.

                          " + "smithy.api#documentation": "

                          If the Status field is set to ERROR, the\n ErrorMessage field contains a description of the\n error that caused the synchronization to fail.

                          " } }, "ErrorCode": { "target": "com.amazonaws.kendra#ErrorCode", "traits": { - "smithy.api#documentation": "

                          If the Status field is set to FAILED, the\n ErrorCode field contains a the reason that the synchronization\n failed.

                          " + "smithy.api#documentation": "

                          If the Status field is set to FAILED,\n the ErrorCode field contains a the reason that the\n synchronization failed.

                          " } }, "DataSourceErrorCode": { "target": "com.amazonaws.kendra#String", "traits": { - "smithy.api#documentation": "

                          If the reason that the synchronization failed is due to an error with the underlying\n data source, this field contains a code that identifies the error.

                          " + "smithy.api#documentation": "

                          If the reason that the synchronization failed is due to an error\n with the underlying data source, this field contains a code that\n identifies the error.

                          " } }, "Metrics": { "target": "com.amazonaws.kendra#DataSourceSyncJobMetrics", "traits": { - "smithy.api#documentation": "

                          Maps a batch delete document request to a specific data source sync job. This is\n optional and should only be supplied when documents are deleted by a data source\n connector.

                          " + "smithy.api#documentation": "

                          Maps a batch delete document request to a specific data source\n sync job. This is optional and should only be supplied when\n documents are deleted by a data source connector.

                          " } } }, @@ -1848,7 +1854,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Maps a particular data source sync job to a particular data source.

                          " + "smithy.api#documentation": "

                          Maps a particular data source sync job to a particular data\n source.

                          " } }, "com.amazonaws.kendra#DataSourceSyncJobMetrics": { @@ -1857,36 +1863,36 @@ "DocumentsAdded": { "target": "com.amazonaws.kendra#MetricValue", "traits": { - "smithy.api#documentation": "

                          The number of documents added from the data source up to now in the data source\n sync.

                          " + "smithy.api#documentation": "

                          The number of documents added from the data source up to now in\n the data source sync.

                          " } }, "DocumentsModified": { "target": "com.amazonaws.kendra#MetricValue", "traits": { - "smithy.api#documentation": "

                          The number of documents modified in the data source up to now in the data source sync\n run.

                          " + "smithy.api#documentation": "

                          The number of documents modified in the data source up to now in\n the data source sync run.

                          " } }, "DocumentsDeleted": { "target": "com.amazonaws.kendra#MetricValue", "traits": { - "smithy.api#documentation": "

                          The number of documents deleted from the data source up to now in the data source sync\n run.

                          " + "smithy.api#documentation": "

                          The number of documents deleted from the data source up to now in\n the data source sync run.

                          " } }, "DocumentsFailed": { "target": "com.amazonaws.kendra#MetricValue", "traits": { - "smithy.api#documentation": "

                          The number of documents that failed to sync from the data source up to now in the data\n source sync run.

                          " + "smithy.api#documentation": "

                          The number of documents that failed to sync from the data source\n up to now in the data source sync run.

                          " } }, "DocumentsScanned": { "target": "com.amazonaws.kendra#MetricValue", "traits": { - "smithy.api#documentation": "

                          The current number of documents crawled by the current sync job in the data\n source.

                          " + "smithy.api#documentation": "

                          The current number of documents crawled by the current sync job in\n the data source.

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

                          Maps a batch delete document request to a specific data source sync job. This is\n optional and should only be supplied when documents are deleted by a data source\n connector.

                          " + "smithy.api#documentation": "

                          Maps a batch delete document request to a specific data source\n sync job. This is optional and should only be supplied when\n documents are deleted by a data source connector.

                          " } }, "com.amazonaws.kendra#DataSourceSyncJobStatus": { @@ -1949,7 +1955,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Maps a column or attribute in the data source to an index field. You must first create\n the fields in the index using the UpdateIndex operation.

                          " + "smithy.api#documentation": "

                          Maps a column or attribute in the data source to an index field.\n You must first create the fields in the index using the UpdateIndex operation.

                          " } }, "com.amazonaws.kendra#DataSourceToIndexFieldMappingList": { @@ -1999,6 +2005,10 @@ { "value": "CONFLUENCE", "name": "CONFLUENCE" + }, + { + "value": "GOOGLEDRIVE", + "name": "GOOGLEDRIVE" } ] } @@ -2009,14 +2019,14 @@ "SubnetIds": { "target": "com.amazonaws.kendra#SubnetIdList", "traits": { - "smithy.api#documentation": "

                          A list of identifiers for subnets within your Amazon VPC. The subnets should be able\n to connect to each other in the VPC, and they should have outgoing access to the\n Internet through a NAT device.

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

                          A list of identifiers for subnets within your Amazon VPC. The\n subnets should be able to connect to each other in the VPC, and they\n should have outgoing access to the Internet through a NAT\n device.

                          ", "smithy.api#required": {} } }, "SecurityGroupIds": { "target": "com.amazonaws.kendra#SecurityGroupIdList", "traits": { - "smithy.api#documentation": "

                          A list of identifiers of security groups within your Amazon VPC. The security groups\n should enable Amazon Kendra to connect to the data source.

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

                          A list of identifiers of security groups within your Amazon VPC.\n The security groups should enable Amazon Kendra to connect to the data\n source.

                          ", "smithy.api#required": {} } } @@ -2048,25 +2058,25 @@ "ColumnConfiguration": { "target": "com.amazonaws.kendra#ColumnConfiguration", "traits": { - "smithy.api#documentation": "

                          Information about where the index should get the document information from the\n database.

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

                          Information about where the index should get the document\n information from the database.

                          ", "smithy.api#required": {} } }, "AclConfiguration": { "target": "com.amazonaws.kendra#AclConfiguration", "traits": { - "smithy.api#documentation": "

                          Information about the database column that provides information for user context\n filtering.

                          " + "smithy.api#documentation": "

                          Information about the database column that provides information\n for user context filtering.

                          " } }, "SqlConfiguration": { "target": "com.amazonaws.kendra#SqlConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides information about how Amazon Kendra uses quote marks around SQL identifiers when\n querying a database data source.

                          " + "smithy.api#documentation": "

                          Provides information about how Amazon Kendra uses quote marks around SQL\n identifiers when querying a database data source.

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

                          Provides the information necessary to connect a database to an index.

                          " + "smithy.api#documentation": "

                          Provides the information necessary to connect a database to an\n index.

                          " } }, "com.amazonaws.kendra#DatabaseEngineType": { @@ -2664,7 +2674,7 @@ "Blob": { "target": "com.amazonaws.kendra#Blob", "traits": { - "smithy.api#documentation": "

                          The contents of the document.

                          \n

                          Documents passed to the Blob parameter must be base64 encoded. Your code\n might not need to encode the document file bytes if you're using an AWS SDK to call\n Amazon Kendra operations. If you are calling the Amazon Kendra endpoint directly using REST, you\n must base64 encode the contents before sending.

                          " + "smithy.api#documentation": "

                          The contents of the document.

                          \n

                          Documents passed to the Blob parameter must be base64\n encoded. Your code might not need to encode the document file bytes\n if you're using an AWS SDK to call Amazon Kendra operations. If you are\n calling the Amazon Kendra endpoint directly using REST, you must base64\n encode the contents before sending.

                          " } }, "S3Path": { @@ -2673,7 +2683,7 @@ "Attributes": { "target": "com.amazonaws.kendra#DocumentAttributeList", "traits": { - "smithy.api#documentation": "

                          Custom attributes to apply to the document. Use the custom attributes to provide\n additional information for searching, to provide facets for refining searches, and to\n provide additional information in the query response.

                          " + "smithy.api#documentation": "

                          Custom attributes to apply to the document. Use the custom\n attributes to provide additional information for searching, to\n provide facets for refining searches, and to provide additional\n information in the query response.

                          " } }, "AccessControlList": { @@ -2685,7 +2695,7 @@ "ContentType": { "target": "com.amazonaws.kendra#ContentType", "traits": { - "smithy.api#documentation": "

                          The file type of the document in the Blob field.

                          " + "smithy.api#documentation": "

                          The file type of the document in the Blob\n field.

                          " } } }, @@ -2759,7 +2769,7 @@ } }, "com.amazonaws.kendra#DocumentAttributeValue": { - "type": "structure", + "type": "union", "members": { "StringValue": { "target": "com.amazonaws.kendra#DocumentAttributeStringValue", @@ -2787,7 +2797,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The value of a custom document attribute. You can only provide one value for a custom\n attribute.

                          " + "smithy.api#documentation": "

                          The value of a custom document attribute. You can only provide one\n value for a custom attribute.

                          " } }, "com.amazonaws.kendra#DocumentAttributeValueCountPair": { @@ -2802,12 +2812,12 @@ "Count": { "target": "com.amazonaws.kendra#Integer", "traits": { - "smithy.api#documentation": "

                          The number of documents in the response that have the attribute value for the\n key.

                          " + "smithy.api#documentation": "

                          The number of documents in the response that have the attribute\n value for the key.

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

                          Provides the count of documents that match a particular attribute when doing a faceted\n search.

                          " + "smithy.api#documentation": "

                          Provides the count of documents that match a particular attribute\n when doing a faceted search.

                          " } }, "com.amazonaws.kendra#DocumentAttributeValueCountPairList": { @@ -2898,13 +2908,13 @@ "Relevance": { "target": "com.amazonaws.kendra#Relevance", "traits": { - "smithy.api#documentation": "

                          Provides manual tuning parameters to determine how the field affects the search\n results.

                          " + "smithy.api#documentation": "

                          Provides manual tuning parameters to determine how the field\n affects the search results.

                          " } }, "Search": { "target": "com.amazonaws.kendra#Search", "traits": { - "smithy.api#documentation": "

                          Provides information about how the field is used during a search.

                          " + "smithy.api#documentation": "

                          Provides information about how the field is used during a\n search.

                          " } } }, @@ -2939,12 +2949,12 @@ "S3Prefix": { "target": "com.amazonaws.kendra#S3ObjectKey", "traits": { - "smithy.api#documentation": "

                          A prefix used to filter metadata configuration files in the AWS S3 bucket. The S3\n bucket might contain multiple metadata files. Use S3Prefix to include only\n the desired metadata files.

                          " + "smithy.api#documentation": "

                          A prefix used to filter metadata configuration files in the AWS S3\n bucket. The S3 bucket might contain multiple metadata files. Use\n S3Prefix to include only the desired metadata\n files.

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

                          Document metadata files that contain information such as the document access control\n information, source URI, document author, and custom attributes. Each metadata file\n contains metadata about a single document.

                          " + "smithy.api#documentation": "

                          Document metadata files that contain information such as the\n document access control information, source URI, document author,\n and custom attributes. Each metadata file contains metadata about a\n single document.

                          " } }, "com.amazonaws.kendra#Duration": { @@ -2982,6 +2992,42 @@ "smithy.api#pattern": "^\\P{C}*$" } }, + "com.amazonaws.kendra#ExcludeMimeTypesList": { + "type": "list", + "member": { + "target": "com.amazonaws.kendra#MimeType" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + } + } + }, + "com.amazonaws.kendra#ExcludeSharedDrivesList": { + "type": "list", + "member": { + "target": "com.amazonaws.kendra#SharedDriveId" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, + "com.amazonaws.kendra#ExcludeUserAccountsList": { + "type": "list", + "member": { + "target": "com.amazonaws.kendra#UserAccount" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 100 + } + } + }, "com.amazonaws.kendra#Facet": { "type": "structure", "members": { @@ -3008,19 +3054,19 @@ "DocumentAttributeKey": { "target": "com.amazonaws.kendra#DocumentAttributeKey", "traits": { - "smithy.api#documentation": "

                          The key for the facet values. This is the same as the DocumentAttributeKey\n provided in the query.

                          " + "smithy.api#documentation": "

                          The key for the facet values. This is the same as the\n DocumentAttributeKey provided in the query.

                          " } }, "DocumentAttributeValueType": { "target": "com.amazonaws.kendra#DocumentAttributeValueType", "traits": { - "smithy.api#documentation": "

                          The data type of the facet value. This is the same as the type defined for the index\n field when it was created.

                          " + "smithy.api#documentation": "

                          The data type of the facet value. This is the same as the type\n defined for the index field when it was created.

                          " } }, "DocumentAttributeValueCountPairs": { "target": "com.amazonaws.kendra#DocumentAttributeValueCountPairList", "traits": { - "smithy.api#documentation": "

                          An array of key/value pairs, where the key is the value of the attribute and the count\n is the number of documents that share the key value.

                          " + "smithy.api#documentation": "

                          An array of key/value pairs, where the key is the value of the\n attribute and the count is the number of documents that share the key\n value.

                          " } } }, @@ -3079,13 +3125,13 @@ "IndexedQuestionAnswersCount": { "target": "com.amazonaws.kendra#IndexedQuestionAnswersCount", "traits": { - "smithy.api#documentation": "

                          The total number of FAQ questions and answers contained in the index.

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

                          The total number of FAQ questions and answers contained in the\n index.

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

                          Provides statistical information about the FAQ questions and answers contained in an\n index.

                          " + "smithy.api#documentation": "

                          Provides statistical information about the FAQ questions and\n answers contained in an index.

                          " } }, "com.amazonaws.kendra#FaqStatus": { @@ -3127,13 +3173,13 @@ "Name": { "target": "com.amazonaws.kendra#FaqName", "traits": { - "smithy.api#documentation": "

                          The name that you assigned the FAQ when you created or updated the FAQ.

                          " + "smithy.api#documentation": "

                          The name that you assigned the FAQ when you created or updated the\n FAQ.

                          " } }, "Status": { "target": "com.amazonaws.kendra#FaqStatus", "traits": { - "smithy.api#documentation": "

                          The current status of the FAQ. When the status is ACTIVE the FAQ is ready\n for use.

                          " + "smithy.api#documentation": "

                          The current status of the FAQ. When the status is\n ACTIVE the FAQ is ready for use.

                          " } }, "CreatedAt": { @@ -3156,7 +3202,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides information about a frequently asked questions and answer contained in an\n index.

                          " + "smithy.api#documentation": "

                          Provides information about a frequently asked questions and answer\n contained in an index.

                          " } }, "com.amazonaws.kendra#FaqSummaryItems": { @@ -3165,6 +3211,67 @@ "target": "com.amazonaws.kendra#FaqSummary" } }, + "com.amazonaws.kendra#FeedbackToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + }, + "smithy.api#pattern": "^\\P{C}*.\\P{C}*$" + } + }, + "com.amazonaws.kendra#GoogleDriveConfiguration": { + "type": "structure", + "members": { + "SecretArn": { + "target": "com.amazonaws.kendra#SecretArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of a AWS Secrets Manager secret\n that contains the credentials required to connect to Google Drive.\n For more information, see Using a Google Workspace Drive data\n source.

                          ", + "smithy.api#required": {} + } + }, + "InclusionPatterns": { + "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", + "traits": { + "smithy.api#documentation": "

                          A list of regular expression patterns that apply to path on Google\n Drive. Items that match the pattern are included in the index from\n both shared drives and users' My Drives. Items that don't match the\n pattern are excluded from the index. If an item matches both an\n inclusion pattern and an exclusion pattern, it is excluded from the\n index.

                          " + } + }, + "ExclusionPatterns": { + "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", + "traits": { + "smithy.api#documentation": "

                          A list of regular expression patterns that apply to the path on\n Google Drive. Items that match the pattern are excluded from the\n index from both shared drives and users' My Drives. Items that don't\n match the pattern are included in the index. If an item matches both\n an exclusion pattern and an inclusion pattern, it is excluded from\n the index.

                          " + } + }, + "FieldMappings": { + "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", + "traits": { + "smithy.api#documentation": "

                          Defines mapping between a field in the Google Drive and a Amazon Kendra\n index field.

                          \n

                          If you are using the console, you can define index fields when\n creating the mapping. If you are using the API, you must first\n create the field using the UpdateIndex\n operation.

                          " + } + }, + "ExcludeMimeTypes": { + "target": "com.amazonaws.kendra#ExcludeMimeTypesList", + "traits": { + "smithy.api#documentation": "

                          A list of MIME types to exclude from the index. All documents\n matching the specified MIME type are excluded.

                          \n

                          For a list of MIME types, see Using a Google Workspace Drive data\n source.

                          " + } + }, + "ExcludeUserAccounts": { + "target": "com.amazonaws.kendra#ExcludeUserAccountsList", + "traits": { + "smithy.api#documentation": "

                          A list of email addresses of the users. Documents owned by these\n users are excluded from the index. Documents shared with excluded\n users are indexed unless they are excluded in another way.

                          " + } + }, + "ExcludeSharedDrives": { + "target": "com.amazonaws.kendra#ExcludeSharedDrivesList", + "traits": { + "smithy.api#documentation": "

                          A list of identifiers or shared drives to exclude from the index.\n All files and folders stored on the shared drive are\n excluded.

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

                          Provides configuration information for data sources that connect\n to Google Drive.

                          " + } + }, "com.amazonaws.kendra#GroupAttributeField": { "type": "string", "traits": { @@ -3181,26 +3288,26 @@ "BeginOffset": { "target": "com.amazonaws.kendra#Integer", "traits": { - "smithy.api#documentation": "

                          The zero-based location in the response string where the highlight starts.

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

                          The zero-based location in the response string where the highlight\n starts.

                          ", "smithy.api#required": {} } }, "EndOffset": { "target": "com.amazonaws.kendra#Integer", "traits": { - "smithy.api#documentation": "

                          The zero-based location in the response string where the highlight ends.

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

                          The zero-based location in the response string where the highlight\n ends.

                          ", "smithy.api#required": {} } }, "TopAnswer": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Indicates whether the response is the best response. True if this is the best\n response; otherwise, false.

                          " + "smithy.api#documentation": "

                          Indicates whether the response is the best response. True if this\n is the best response; otherwise, false.

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

                          Provides information that you can use to highlight a search result so that your users\n can quickly identify terms in the response.

                          " + "smithy.api#documentation": "

                          Provides information that you can use to highlight a search result\n so that your users can quickly identify terms in the\n response.

                          " } }, "com.amazonaws.kendra#HighlightList": { @@ -3231,13 +3338,13 @@ "Id": { "target": "com.amazonaws.kendra#IndexId", "traits": { - "smithy.api#documentation": "

                          A unique identifier for the index. Use this to identify the index when you are using\n operations such as Query, DescribeIndex,\n UpdateIndex, and DeleteIndex.

                          " + "smithy.api#documentation": "

                          A unique identifier for the index. Use this to identify the index\n when you are using operations such as Query,\n DescribeIndex, UpdateIndex, and\n DeleteIndex.

                          " } }, "Edition": { "target": "com.amazonaws.kendra#IndexEdition", "traits": { - "smithy.api#documentation": "

                          Indicates whether the index is a enterprise edition index or a developer edition\n index.

                          " + "smithy.api#documentation": "

                          Indicates whether the index is a enterprise edition index or a\n developer edition index.

                          " } }, "CreatedAt": { @@ -3250,14 +3357,14 @@ "UpdatedAt": { "target": "com.amazonaws.kendra#Timestamp", "traits": { - "smithy.api#documentation": "

                          The Unix timestamp when the index was last updated by the UpdateIndex\n operation.

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

                          The Unix timestamp when the index was last updated by the\n UpdateIndex operation.

                          ", "smithy.api#required": {} } }, "Status": { "target": "com.amazonaws.kendra#IndexStatus", "traits": { - "smithy.api#documentation": "

                          The current status of the index. When the status is ACTIVE, the index is\n ready to search.

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

                          The current status of the index. When the status is\n ACTIVE, the index is ready to search.

                          ", "smithy.api#required": {} } } @@ -3336,7 +3443,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides information about the number of documents and the number of questions and\n answers in an index.

                          " + "smithy.api#documentation": "

                          Provides information about the number of documents and the number\n of questions and answers in an index.

                          " } }, "com.amazonaws.kendra#IndexStatus": { @@ -3932,6 +4039,16 @@ "smithy.api#pattern": "(([1-9][0-9]*)|0)" } }, + "com.amazonaws.kendra#MimeType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, "com.amazonaws.kendra#NextToken": { "type": "string", "traits": { @@ -3947,14 +4064,14 @@ "TenantDomain": { "target": "com.amazonaws.kendra#TenantDomain", "traits": { - "smithy.api#documentation": "

                          Tha Azure Active Directory domain of the organization.

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

                          The Azure Active Directory domain of the organization.

                          ", "smithy.api#required": {} } }, "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user\n name and password to connect to OneDrive. The user namd should be the application ID for\n the OneDrive application, and the password is the application key for the OneDrive\n application.

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

                          The Amazon Resource Name (ARN) of an AWS Secrets Manager secret\n that contains the user name and password to connect to OneDrive. The\n user namd should be the application ID for the OneDrive application,\n and the password is the application key for the OneDrive\n application.

                          ", "smithy.api#required": {} } }, @@ -3968,19 +4085,19 @@ "InclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the pattern are included\n in the index. Documents that don't match the pattern are excluded from the index. If a\n document matches both an inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The exclusion pattern is applied to the file name.

                          " + "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the\n pattern are included in the index. Documents that don't match the\n pattern are excluded from the index. If a document matches both an\n inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The exclusion pattern is applied to the file name.

                          " } }, "ExclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          List of regular expressions applied to documents. Items that match the exclusion\n pattern are not indexed. If you provide both an inclusion pattern and an exclusion\n pattern, any item that matches the exclusion pattern isn't indexed.

                          \n

                          The exclusion pattern is applied to the file name.

                          " + "smithy.api#documentation": "

                          List of regular expressions applied to documents. Items that match\n the exclusion pattern are not indexed. If you provide both an\n inclusion pattern and an exclusion pattern, any item that matches\n the exclusion pattern isn't indexed.

                          \n

                          The exclusion pattern is applied to the file name.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          A list of DataSourceToIndexFieldMapping objects that map Microsoft\n OneDrive fields to custom fields in the Amazon Kendra index. You must first create the index\n fields before you map OneDrive fields.

                          " + "smithy.api#documentation": "

                          A list of DataSourceToIndexFieldMapping objects that\n map Microsoft OneDrive fields to custom fields in the Amazon Kendra\n index. You must first create the index fields before you map\n OneDrive fields.

                          " } }, "DisableLocalGroups": { @@ -3991,7 +4108,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides configuration information for data sources that connect to OneDrive.

                          " + "smithy.api#documentation": "

                          Provides configuration information for data sources that connect\n to OneDrive.

                          " } }, "com.amazonaws.kendra#OneDriveUser": { @@ -4022,13 +4139,13 @@ "OneDriveUserList": { "target": "com.amazonaws.kendra#OneDriveUserList", "traits": { - "smithy.api#documentation": "

                          A list of users whose documents should be indexed. Specify the user names in email\n format, for example, username@tenantdomain. If you need to index the\n documents of more than 100 users, use the OneDriveUserS3Path field to\n specify the location of a file containing a list of users.

                          " + "smithy.api#documentation": "

                          A list of users whose documents should be indexed. Specify the\n user names in email format, for example,\n username@tenantdomain. If you need to index the\n documents of more than 100 users, use the\n OneDriveUserS3Path field to specify the location of\n a file containing a list of users.

                          " } }, "OneDriveUserS3Path": { "target": "com.amazonaws.kendra#S3Path", "traits": { - "smithy.api#documentation": "

                          The S3 bucket location of a file containing a list of users whose documents should be\n indexed.

                          " + "smithy.api#documentation": "

                          The S3 bucket location of a file containing a list of users whose\n documents should be indexed.

                          " } } }, @@ -4077,7 +4194,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides user and group information for document access filtering.

                          " + "smithy.api#documentation": "

                          Provides user and group information for document access\n filtering.

                          " } }, "com.amazonaws.kendra#PrincipalList": { @@ -4243,6 +4360,12 @@ "traits": { "smithy.api#documentation": "

                          The user context token.

                          " } + }, + "VisitorId": { + "target": "com.amazonaws.kendra#VisitorId", + "traits": { + "smithy.api#documentation": "

                          Provides an identifier for a specific user. The VisitorId\n should be a unique identifier, such as a GUID. Don't use personally\n identifiable information, such as the user's email address, as the \n VisitorId.

                          " + } } } }, @@ -4293,7 +4416,7 @@ "AdditionalAttributes": { "target": "com.amazonaws.kendra#AdditionalResultAttributeList", "traits": { - "smithy.api#documentation": "

                          One or more additional attributes associated with the query result.

                          " + "smithy.api#documentation": "

                          One or more additional attributes associated with the query\n result.

                          " } }, "DocumentId": { @@ -4305,13 +4428,13 @@ "DocumentTitle": { "target": "com.amazonaws.kendra#TextWithHighlights", "traits": { - "smithy.api#documentation": "

                          The title of the document. Contains the text of the title and information for\n highlighting the relevant terms in the title.

                          " + "smithy.api#documentation": "

                          The title of the document. Contains the text of the title and\n information for highlighting the relevant terms in the title.

                          " } }, "DocumentExcerpt": { "target": "com.amazonaws.kendra#TextWithHighlights", "traits": { - "smithy.api#documentation": "

                          An extract of the text in the document. Contains information about highlighting the\n relevant terms in the excerpt.

                          " + "smithy.api#documentation": "

                          An extract of the text in the document. Contains information about\n highlighting the relevant terms in the excerpt.

                          " } }, "DocumentURI": { @@ -4323,18 +4446,24 @@ "DocumentAttributes": { "target": "com.amazonaws.kendra#DocumentAttributeList", "traits": { - "smithy.api#documentation": "

                          An array of document attributes for the document that the query result maps to. For\n example, the document author (Author) or the source URI (SourceUri) of the document.

                          " + "smithy.api#documentation": "

                          An array of document attributes for the document that the query\n result maps to. For example, the document author (Author) or the source\n URI (SourceUri) of the document.

                          " } }, "ScoreAttributes": { "target": "com.amazonaws.kendra#ScoreAttributes", "traits": { - "smithy.api#documentation": "

                          Indicates the confidence that Amazon Kendra has that a result matches the query that you\n provided. Each result is placed into a bin that indicates the confidence,\n VERY_HIGH, HIGH, MEDIUM and LOW. You\n can use the score to determine if a response meets the confidence needed for your\n application.

                          \n

                          The field is only set to LOW when the Type field is set to\n DOCUMENT and Amazon Kendra is not confident that the result matches the\n query.

                          " + "smithy.api#documentation": "

                          Indicates the confidence that Amazon Kendra has that a result matches the\n query that you provided. Each result is placed into a bin that\n indicates the confidence, VERY_HIGH, HIGH,\n MEDIUM and LOW. You can use the score to\n determine if a response meets the confidence needed for your\n application.

                          \n

                          The field is only set to LOW when the Type\n field is set to DOCUMENT and Amazon Kendra is not confident that\n the result matches the query.

                          " + } + }, + "FeedbackToken": { + "target": "com.amazonaws.kendra#FeedbackToken", + "traits": { + "smithy.api#documentation": "

                          A token that identifies a particular result from a particular query.\n Use this token to provide click-through feedback for the result. For\n more information, see Submitting feedback\n .

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

                          A single query result.

                          \n

                          A query result contains information about a document returned by the query. This\n includes the original location of the document, a list of attributes assigned to the\n document, and relevant text from the document that satisfies the query.

                          " + "smithy.api#documentation": "

                          A single query result.

                          \n

                          A query result contains information about a document returned by the\n query. This includes the original location of the document, a list of\n attributes assigned to the document, and relevant text from the\n document that satisfies the query.

                          " } }, "com.amazonaws.kendra#QueryResultItemList": { @@ -4393,36 +4522,36 @@ "Freshness": { "target": "com.amazonaws.kendra#DocumentMetadataBoolean", "traits": { - "smithy.api#documentation": "

                          Indicates that this field determines how \"fresh\" a document is. For example, if\n document 1 was created on November 5, and document 2 was created on October 31, document\n 1 is \"fresher\" than document 2. You can only set the Freshness field on one\n DATE type field. Only applies to DATE fields.

                          " + "smithy.api#documentation": "

                          Indicates that this field determines how \"fresh\" a document is.\n For example, if document 1 was created on November 5, and document 2\n was created on October 31, document 1 is \"fresher\" than document 2.\n You can only set the Freshness field on one\n DATE type field. Only applies to DATE\n fields.

                          " } }, "Importance": { "target": "com.amazonaws.kendra#Importance", "traits": { - "smithy.api#documentation": "

                          The relative importance of the field in the search. Larger numbers provide more of a\n boost than smaller numbers.

                          " + "smithy.api#documentation": "

                          The relative importance of the field in the search. Larger numbers\n provide more of a boost than smaller numbers.

                          " } }, "Duration": { "target": "com.amazonaws.kendra#Duration", "traits": { - "smithy.api#documentation": "

                          Specifies the time period that the boost applies to. For example, to make the boost\n apply to documents with the field value within the last month, you would use \"2628000s\".\n Once the field value is beyond the specified range, the effect of the boost drops off.\n The higher the importance, the faster the effect drops off. If you don't specify a\n value, the default is 3 months. The value of the field is a numeric string followed by\n the character \"s\", for example \"86400s\" for one day, or \"604800s\" for one week.

                          \n

                          Only applies to DATE fields.

                          " + "smithy.api#documentation": "

                          Specifies the time period that the boost applies to. For example,\n to make the boost apply to documents with the field value within the\n last month, you would use \"2628000s\". Once the field value is beyond\n the specified range, the effect of the boost drops off. The higher\n the importance, the faster the effect drops off. If you don't\n specify a value, the default is 3 months. The value of the field is\n a numeric string followed by the character \"s\", for example \"86400s\"\n for one day, or \"604800s\" for one week.

                          \n

                          Only applies to DATE fields.

                          " } }, "RankOrder": { "target": "com.amazonaws.kendra#Order", "traits": { - "smithy.api#documentation": "

                          Determines how values should be interpreted.

                          \n

                          When the RankOrder field is ASCENDING, higher numbers are\n better. For example, a document with a rating score of 10 is higher ranking than a\n document with a rating score of 1.

                          \n

                          When the RankOrder field is DESCENDING, lower numbers are\n better. For example, in a task tracking application, a priority 1 task is more important\n than a priority 5 task.

                          \n

                          Only applies to LONG and DOUBLE fields.

                          " + "smithy.api#documentation": "

                          Determines how values should be interpreted.

                          \n

                          When the RankOrder field is ASCENDING,\n higher numbers are better. For example, a document with a rating\n score of 10 is higher ranking than a document with a rating score of\n 1.

                          \n

                          When the RankOrder field is DESCENDING,\n lower numbers are better. For example, in a task tracking\n application, a priority 1 task is more important than a priority 5\n task.

                          \n

                          Only applies to LONG and DOUBLE\n fields.

                          " } }, "ValueImportanceMap": { "target": "com.amazonaws.kendra#ValueImportanceMap", "traits": { - "smithy.api#documentation": "

                          A list of values that should be given a different boost when they appear in the result\n list. For example, if you are boosting a field called \"department,\" query terms that\n match the department field are boosted in the result. However, you can add entries from\n the department field to boost documents with those values higher.

                          \n

                          For example, you can add entries to the map with names of departments. If you add\n \"HR\",5 and \"Legal\",3 those departments are given special attention when they appear in\n the metadata of a document. When those terms appear they are given the specified\n importance instead of the regular importance for the boost.

                          " + "smithy.api#documentation": "

                          A list of values that should be given a different boost when they\n appear in the result list. For example, if you are boosting a field\n called \"department,\" query terms that match the department field are\n boosted in the result. However, you can add entries from the\n department field to boost documents with those values higher.

                          \n

                          For example, you can add entries to the map with names of\n departments. If you add \"HR\",5 and \"Legal\",3 those departments are\n given special attention when they appear in the metadata of a\n document. When those terms appear they are given the specified\n importance instead of the regular importance for the boost.

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

                          Provides information for manually tuning the relevance of a field in a search. When a\n query includes terms that match the field, the results are given a boost in the response\n based on these tuning parameters.

                          " + "smithy.api#documentation": "

                          Provides information for manually tuning the relevance of a field\n in a search. When a query includes terms that match the field, the\n results are given a boost in the response based on these tuning\n parameters.

                          " } }, "com.amazonaws.kendra#RelevanceFeedback": { @@ -4431,20 +4560,20 @@ "ResultId": { "target": "com.amazonaws.kendra#ResultId", "traits": { - "smithy.api#documentation": "

                          The unique identifier of the search result that the user provided relevance feedback\n for.

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

                          The unique identifier of the search result that the user provided\n relevance feedback for.

                          ", "smithy.api#required": {} } }, "RelevanceValue": { "target": "com.amazonaws.kendra#RelevanceType", "traits": { - "smithy.api#documentation": "

                          Whether to document was relevant or not relevant to the search.

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

                          Whether to document was relevant or not relevant to the\n search.

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

                          Provides feedback on how relevant a document is to a search. Your application uses the\n SubmitFeedback operation to provide relevance information.

                          " + "smithy.api#documentation": "

                          Provides feedback on how relevant a document is to a search. Your\n application uses the SubmitFeedback operation to\n provide relevance information.

                          " } }, "com.amazonaws.kendra#RelevanceFeedbackList": { @@ -4562,19 +4691,19 @@ "InclusionPrefixes": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of S3 prefixes for the documents that should be included in the index.

                          " + "smithy.api#documentation": "

                          A list of S3 prefixes for the documents that should be included in\n the index.

                          " } }, "InclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of glob patterns for documents that should be indexed. If a document that\n matches an inclusion pattern also matches an exclusion pattern, the document is not\n indexed.

                          \n

                          For more information about glob patterns, see glob (programming) in\n Wikipedia.

                          " + "smithy.api#documentation": "

                          A list of glob patterns for documents that should be indexed. If a\n document that matches an inclusion pattern also matches an exclusion\n pattern, the document is not indexed.

                          \n

                          For more information about glob patterns, see glob\n (programming) in Wikipedia.

                          " } }, "ExclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of glob patterns for documents that should not be indexed. If a document that\n matches an inclusion prefix or inclusion pattern also matches an exclusion pattern, the\n document is not indexed.

                          \n

                          For more information about glob patterns, see glob (programming) in\n Wikipedia.

                          " + "smithy.api#documentation": "

                          A list of glob patterns for documents that should not be indexed.\n If a document that matches an inclusion prefix or inclusion pattern\n also matches an exclusion pattern, the document is not\n indexed.

                          \n

                          For more information about glob patterns, see glob\n (programming) in Wikipedia.

                          " } }, "DocumentsMetadataConfiguration": { @@ -4583,12 +4712,12 @@ "AccessControlListConfiguration": { "target": "com.amazonaws.kendra#AccessControlListConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides the path to the S3 bucket that contains the user context filtering files for\n the data source.

                          " + "smithy.api#documentation": "

                          Provides the path to the S3 bucket that contains the user context\n filtering files for the data source. For the format of the file, see\n Access control for S3 data sources.

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

                          Provides configuration information for a data source to index documents in an Amazon\n S3 bucket.

                          " + "smithy.api#documentation": "

                          Provides configuration information for a data source to index\n documents in an Amazon S3 bucket.

                          " } }, "com.amazonaws.kendra#S3ObjectKey": { @@ -4619,7 +4748,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Information required to find a specific file in an Amazon S3 bucket.

                          " + "smithy.api#documentation": "

                          Information required to find a specific file in an Amazon S3\n bucket.

                          " } }, "com.amazonaws.kendra#SalesforceChatterFeedConfiguration": { @@ -4628,31 +4757,31 @@ "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the column in the Salesforce FeedItem table that contains the content to\n index. Typically this is the Body column.

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

                          The name of the column in the Salesforce FeedItem table that\n contains the content to index. Typically this is the\n Body column.

                          ", "smithy.api#required": {} } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the column in the Salesforce FeedItem table that contains the title of the\n document. This is typically the Title collumn.

                          " + "smithy.api#documentation": "

                          The name of the column in the Salesforce FeedItem table that\n contains the title of the document. This is typically the\n Title collumn.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          Maps fields from a Salesforce chatter feed into Amazon Kendra index fields.

                          " + "smithy.api#documentation": "

                          Maps fields from a Salesforce chatter feed into Amazon Kendra index\n fields.

                          " } }, "IncludeFilterTypes": { "target": "com.amazonaws.kendra#SalesforceChatterFeedIncludeFilterTypes", "traits": { - "smithy.api#documentation": "

                          Filters the documents in the feed based on status of the user. When you specify\n ACTIVE_USERS only documents from users who have an active account are\n indexed. When you specify STANDARD_USER only documents for Salesforce\n standard users are documented. You can specify both.

                          " + "smithy.api#documentation": "

                          Filters the documents in the feed based on status of the user.\n When you specify ACTIVE_USERS only documents from users\n who have an active account are indexed. When you specify\n STANDARD_USER only documents for Salesforce\n standard users are documented. You can specify both.

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

                          Defines configuration for syncing a Salesforce chatter feed. The contents of the\n object comes from the Salesforce FeedItem table.

                          " + "smithy.api#documentation": "

                          Defines configuration for syncing a Salesforce chatter feed. The\n contents of the object comes from the Salesforce FeedItem\n table.

                          " } }, "com.amazonaws.kendra#SalesforceChatterFeedIncludeFilterType": { @@ -4688,62 +4817,62 @@ "ServerUrl": { "target": "com.amazonaws.kendra#Url", "traits": { - "smithy.api#documentation": "

                          The instance URL for the Salesforce site that you want to index.

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

                          The instance URL for the Salesforce site that you want to\n index.

                          ", "smithy.api#required": {} } }, "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the\n key/value pairs required to connect to your Salesforce instance. The secret must contain\n a JSON structure with the following keys:

                          \n
                            \n
                          • \n

                            authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH\n token.

                            \n
                          • \n
                          • \n

                            consumerKey - The application public key generated when you created your\n Salesforce application.

                            \n
                          • \n
                          • \n

                            consumerSecret - The application private key generated when you created your\n Salesforce application.

                            \n
                          • \n
                          • \n

                            password - The password associated with the user logging in to the Salesforce\n instance.

                            \n
                          • \n
                          • \n

                            securityToken - The token associated with the user account logging in to the\n Salesforce instance.

                            \n
                          • \n
                          • \n

                            username - The user name of the user logging in to the Salesforce\n instance.

                            \n
                          • \n
                          ", + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an AWS Secrets Manager secret\n that contains the key/value pairs required to connect to your\n Salesforce instance. The secret must contain a JSON structure with\n the following keys:

                          \n
                            \n
                          • \n

                            authenticationUrl - The OAUTH endpoint that Amazon Kendra\n connects to get an OAUTH token.

                            \n
                          • \n
                          • \n

                            consumerKey - The application public key generated when\n you created your Salesforce application.

                            \n
                          • \n
                          • \n

                            consumerSecret - The application private key generated\n when you created your Salesforce application.

                            \n
                          • \n
                          • \n

                            password - The password associated with the user logging\n in to the Salesforce instance.

                            \n
                          • \n
                          • \n

                            securityToken - The token associated with the user account\n logging in to the Salesforce instance.

                            \n
                          • \n
                          • \n

                            username - The user name of the user logging in to the\n Salesforce instance.

                            \n
                          • \n
                          ", "smithy.api#required": {} } }, "StandardObjectConfigurations": { "target": "com.amazonaws.kendra#SalesforceStandardObjectConfigurationList", "traits": { - "smithy.api#documentation": "

                          Specifies the Salesforce standard objects that Amazon Kendra indexes.

                          " + "smithy.api#documentation": "

                          Specifies the Salesforce standard objects that Amazon Kendra\n indexes.

                          " } }, "KnowledgeArticleConfiguration": { "target": "com.amazonaws.kendra#SalesforceKnowledgeArticleConfiguration", "traits": { - "smithy.api#documentation": "

                          Specifies configuration information for the knowlege article types that Amazon Kendra\n indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of\n knowledge articles, or the custom fields of custom knowledge articles, but not\n both.

                          " + "smithy.api#documentation": "

                          Specifies configuration information for the knowlege article types\n that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles\n and the standard fields of knowledge articles, or the custom fields\n of custom knowledge articles, but not both.

                          " } }, "ChatterFeedConfiguration": { "target": "com.amazonaws.kendra#SalesforceChatterFeedConfiguration", "traits": { - "smithy.api#documentation": "

                          Specifies configuration information for Salesforce chatter feeds.

                          " + "smithy.api#documentation": "

                          Specifies configuration information for Salesforce chatter\n feeds.

                          " } }, "CrawlAttachments": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should index attachments to Salesforce objects.

                          " + "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should index attachments to Salesforce\n objects.

                          " } }, "StandardObjectAttachmentConfiguration": { "target": "com.amazonaws.kendra#SalesforceStandardObjectAttachmentConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for processing attachments to Salesforce standard\n objects.

                          " + "smithy.api#documentation": "

                          Provides configuration information for processing attachments to\n Salesforce standard objects.

                          " } }, "IncludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the patterns are included\n in the index. Documents that don't match the patterns are excluded from the index. If a\n document matches both an inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the name of the attached file.

                          " + "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the\n patterns are included in the index. Documents that don't match the\n patterns are excluded from the index. If a document matches both an\n inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the name of the attached file.

                          " } }, "ExcludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the patterns are excluded\n from the index. Documents that don't match the patterns are included in the index. If a\n document matches both an exclusion pattern and an inclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the name of the attached file.

                          " + "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the\n patterns are excluded from the index. Documents that don't match the\n patterns are included in the index. If a document matches both an\n exclusion pattern and an inclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the name of the attached file.

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

                          Provides configuration information for connecting to a Salesforce data source.

                          " + "smithy.api#documentation": "

                          Provides configuration information for connecting to a Salesforce\n data source.

                          " } }, "com.amazonaws.kendra#SalesforceCustomKnowledgeArticleTypeConfiguration": { @@ -4759,25 +4888,25 @@ "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the field in the custom knowledge article that contains the document data\n to index.

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

                          The name of the field in the custom knowledge article that\n contains the document data to index.

                          ", "smithy.api#required": {} } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the field in the custom knowledge article that contains the document\n title.

                          " + "smithy.api#documentation": "

                          The name of the field in the custom knowledge article that\n contains the document title.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          One or more objects that map fields in the custom knowledge article to fields in the\n Amazon Kendra index.

                          " + "smithy.api#documentation": "

                          One or more objects that map fields in the custom knowledge\n article to fields in the Amazon Kendra index.

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

                          Provides configuration information for indexing Salesforce custom articles.

                          " + "smithy.api#documentation": "

                          Provides configuration information for indexing Salesforce custom\n articles.

                          " } }, "com.amazonaws.kendra#SalesforceCustomKnowledgeArticleTypeConfigurationList": { @@ -4808,25 +4937,25 @@ "IncludedStates": { "target": "com.amazonaws.kendra#SalesforceKnowledgeArticleStateList", "traits": { - "smithy.api#documentation": "

                          Specifies the document states that should be included when Amazon Kendra indexes knowledge\n articles. You must specify at least one state.

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

                          Specifies the document states that should be included when\n Amazon Kendra indexes knowledge articles. You must specify at least one\n state.

                          ", "smithy.api#required": {} } }, "StandardKnowledgeArticleTypeConfiguration": { "target": "com.amazonaws.kendra#SalesforceStandardKnowledgeArticleTypeConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for standard Salesforce knowledge articles.

                          " + "smithy.api#documentation": "

                          Provides configuration information for standard Salesforce\n knowledge articles.

                          " } }, "CustomKnowledgeArticleTypeConfigurations": { "target": "com.amazonaws.kendra#SalesforceCustomKnowledgeArticleTypeConfigurationList", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for custom Salesforce knowledge articles.

                          " + "smithy.api#documentation": "

                          Provides configuration information for custom Salesforce knowledge\n articles.

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

                          Specifies configuration information for the knowlege article types that Amazon Kendra\n indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of\n knowledge articles, or the custom fields of custom knowledge articles, but not both\n

                          " + "smithy.api#documentation": "

                          Specifies configuration information for the knowlege article types\n that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles\n and the standard fields of knowledge articles, or the custom fields\n of custom knowledge articles, but not both

                          " } }, "com.amazonaws.kendra#SalesforceKnowledgeArticleState": { @@ -4866,7 +4995,7 @@ "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the field that contains the document data to index.

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

                          The name of the field that contains the document data to\n index.

                          ", "smithy.api#required": {} } }, @@ -4879,12 +5008,12 @@ "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          One or more objects that map fields in the knowledge article to Amazon Kendra index fields.\n The index field must exist before you can map a Salesforce field to it.

                          " + "smithy.api#documentation": "

                          One or more objects that map fields in the knowledge article to\n Amazon Kendra index fields. The index field must exist before you can map\n a Salesforce field to it.

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

                          Provides configuration information for standard Salesforce knowledge articles.

                          " + "smithy.api#documentation": "

                          Provides configuration information for standard Salesforce\n knowledge articles.

                          " } }, "com.amazonaws.kendra#SalesforceStandardObjectAttachmentConfiguration": { @@ -4899,12 +5028,12 @@ "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          One or more objects that map fields in attachments to Amazon Kendra index fields.

                          " + "smithy.api#documentation": "

                          One or more objects that map fields in attachments to Amazon Kendra\n index fields.

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

                          Provides configuration information for processing attachments to Salesforce standard\n objects.

                          " + "smithy.api#documentation": "

                          Provides configuration information for processing attachments to\n Salesforce standard objects.

                          " } }, "com.amazonaws.kendra#SalesforceStandardObjectConfiguration": { @@ -4920,25 +5049,25 @@ "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the field in the standard object table that contains the document\n contents.

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

                          The name of the field in the standard object table that contains\n the document contents.

                          ", "smithy.api#required": {} } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the field in the standard object table that contains the document\n titleB.

                          " + "smithy.api#documentation": "

                          The name of the field in the standard object table that contains\n the document titleB.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          One or more objects that map fields in the standard object to Amazon Kendra index fields.\n The index field must exist before you can map a Salesforce field to it.

                          " + "smithy.api#documentation": "

                          One or more objects that map fields in the standard object to\n Amazon Kendra index fields. The index field must exist before you can map\n a Salesforce field to it.

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

                          Specifies confguration information for indexing a single standard object.

                          " + "smithy.api#documentation": "

                          Specifies confguration information for indexing a single standard\n object.

                          " } }, "com.amazonaws.kendra#SalesforceStandardObjectConfigurationList": { @@ -5037,12 +5166,12 @@ "ScoreConfidence": { "target": "com.amazonaws.kendra#ScoreConfidence", "traits": { - "smithy.api#documentation": "

                          A relative ranking for how well the response matches the query.

                          " + "smithy.api#documentation": "

                          A relative ranking for how well the response matches the\n query.

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

                          Provides a relative ranking that indicates how confident Amazon Kendra is that the response\n matches the query.

                          " + "smithy.api#documentation": "

                          Provides a relative ranking that indicates how confident Amazon Kendra is\n that the response matches the query.

                          " } }, "com.amazonaws.kendra#ScoreConfidence": { @@ -5075,30 +5204,30 @@ "Facetable": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Indicates that the field can be used to create search facets, a count of results for\n each value in the field. The default is false .

                          " + "smithy.api#documentation": "

                          Indicates that the field can be used to create search facets, a\n count of results for each value in the field. The default is\n false .

                          " } }, "Searchable": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Determines whether the field is used in the search. If the Searchable\n field is true, you can use relevance tuning to manually tune how Amazon Kendra\n weights the field in the search. The default is true for string fields and\n false for number and date fields.

                          " + "smithy.api#documentation": "

                          Determines whether the field is used in the search. If the\n Searchable field is true, you can use\n relevance tuning to manually tune how Amazon Kendra weights the field in\n the search. The default is true for string fields and\n false for number and date fields.

                          " } }, "Displayable": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Determines whether the field is returned in the query response. The default is\n true.

                          " + "smithy.api#documentation": "

                          Determines whether the field is returned in the query response.\n The default is true.

                          " } }, "Sortable": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Determines whether the field can be used to sort the results of a query. If you\n specify sorting on a field that does not have Sortable set to\n true, Amazon Kendra returns an exception. The default is\n false.

                          " + "smithy.api#documentation": "

                          Determines whether the field can be used to sort the results of a\n query. If you specify sorting on a field that does not have\n Sortable set to true, Amazon Kendra returns an\n exception. The default is false.

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

                          Provides information about how a custom index field is used during a search.

                          " + "smithy.api#documentation": "

                          Provides information about how a custom index field is used during\n a search.

                          " } }, "com.amazonaws.kendra#SecretArn": { @@ -5129,12 +5258,12 @@ "KmsKeyId": { "target": "com.amazonaws.kendra#KmsKeyId", "traits": { - "smithy.api#documentation": "

                          The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't support\n asymmetric CMKs.

                          " + "smithy.api#documentation": "

                          The identifier of the AWS KMS customer master key (CMK). Amazon Kendra\n doesn't support asymmetric CMKs.

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

                          Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt data\n indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.

                          " + "smithy.api#documentation": "

                          Provides the identifier of the AWS KMS customer master key (CMK)\n used to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support\n asymmetric CMKs.

                          " } }, "com.amazonaws.kendra#ServiceNowBuildVersionType": { @@ -5158,39 +5287,39 @@ "HostUrl": { "target": "com.amazonaws.kendra#ServiceNowHostUrl", "traits": { - "smithy.api#documentation": "

                          The ServiceNow instance that the data source connects to. The host endpoint should\n look like the following: {instance}.service-now.com.\n

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

                          The ServiceNow instance that the data source connects to. The host\n endpoint should look like the following:\n {instance}.service-now.com.\n

                          ", "smithy.api#required": {} } }, "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains the user\n name and password required to connect to the ServiceNow instance.

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

                          The Amazon Resource Name (ARN) of the AWS Secret Manager secret\n that contains the user name and password required to connect to the\n ServiceNow instance.

                          ", "smithy.api#required": {} } }, "ServiceNowBuildVersion": { "target": "com.amazonaws.kendra#ServiceNowBuildVersionType", "traits": { - "smithy.api#documentation": "

                          The identifier of the release that the ServiceNow host is running. If the host is not\n running the LONDON release, use OTHERS.

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

                          The identifier of the release that the ServiceNow host is running.\n If the host is not running the LONDON release, use\n OTHERS.

                          ", "smithy.api#required": {} } }, "KnowledgeArticleConfiguration": { "target": "com.amazonaws.kendra#ServiceNowKnowledgeArticleConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for crawling knowledge articles in the ServiceNow\n site.

                          " + "smithy.api#documentation": "

                          Provides configuration information for crawling knowledge articles\n in the ServiceNow site.

                          " } }, "ServiceCatalogConfiguration": { "target": "com.amazonaws.kendra#ServiceNowServiceCatalogConfiguration", "traits": { - "smithy.api#documentation": "

                          Provides configuration information for crawling service catalogs in the ServiceNow\n site.

                          " + "smithy.api#documentation": "

                          Provides configuration information for crawling service catalogs\n in the ServiceNow site.

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

                          Provides configuration information required to connect to a ServiceNow data\n source.

                          " + "smithy.api#documentation": "

                          Provides configuration information required to connect to a\n ServiceNow data source.

                          " } }, "com.amazonaws.kendra#ServiceNowHostUrl": { @@ -5209,43 +5338,43 @@ "CrawlAttachments": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should index attachments to knowledge articles.

                          " + "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should index attachments to knowledge\n articles.

                          " } }, "IncludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          List of regular expressions applied to knowledge articles. Items that don't match the\n inclusion pattern are not indexed. The regex is applied to the field specified in the\n PatternTargetField.

                          " + "smithy.api#documentation": "

                          List of regular expressions applied to knowledge articles. Items\n that don't match the inclusion pattern are not indexed. The regex is\n applied to the field specified in the\n PatternTargetField.

                          " } }, "ExcludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          List of regular expressions applied to knowledge articles. Items that don't match the\n inclusion pattern are not indexed. The regex is applied to the field specified in the\n PatternTargetField\n

                          " + "smithy.api#documentation": "

                          List of regular expressions applied to knowledge articles. Items\n that don't match the inclusion pattern are not indexed. The regex is\n applied to the field specified in the\n PatternTargetField\n

                          " } }, "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index document contents field\n in the Amazon Kendra index.

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

                          The name of the ServiceNow field that is mapped to the index\n document contents field in the Amazon Kendra index.

                          ", "smithy.api#required": {} } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index document title\n field.

                          " + "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index\n document title field.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          Mapping between ServiceNow fields and Amazon Kendra index fields. You must create the index\n field before you map the field.

                          " + "smithy.api#documentation": "

                          Mapping between ServiceNow fields and Amazon Kendra index fields. You\n must create the index field before you map the field.

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

                          Provides configuration information for crawling knowledge articles in the ServiceNow\n site.

                          " + "smithy.api#documentation": "

                          Provides configuration information for crawling knowledge articles\n in the ServiceNow site.

                          " } }, "com.amazonaws.kendra#ServiceNowServiceCatalogConfiguration": { @@ -5254,43 +5383,43 @@ "CrawlAttachments": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should crawl attachments to the service catalog items.\n

                          " + "smithy.api#documentation": "

                          Indicates whether Amazon Kendra should crawl attachments to the service\n catalog items.

                          " } }, "IncludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          Determines the types of file attachments that are included in the index.

                          " + "smithy.api#documentation": "

                          Determines the types of file attachments that are included in the\n index.

                          " } }, "ExcludeAttachmentFilePatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          Determines the types of file attachments that are excluded from the index.

                          " + "smithy.api#documentation": "

                          Determines the types of file attachments that are excluded from\n the index.

                          " } }, "DocumentDataFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index document contents field\n in the Amazon Kendra index.

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

                          The name of the ServiceNow field that is mapped to the index\n document contents field in the Amazon Kendra index.

                          ", "smithy.api#required": {} } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index document title\n field.

                          " + "smithy.api#documentation": "

                          The name of the ServiceNow field that is mapped to the index\n document title field.

                          " } }, "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          Mapping between ServiceNow fields and Amazon Kendra index fields. You must create the index\n field before you map the field.

                          " + "smithy.api#documentation": "

                          Mapping between ServiceNow fields and Amazon Kendra index fields. You\n must create the index field before you map the field.

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

                          Provides configuration information for crawling service catalog items in the\n ServiceNow site

                          " + "smithy.api#documentation": "

                          Provides configuration information for crawling service catalog\n items in the ServiceNow site

                          " } }, "com.amazonaws.kendra#ServiceQuotaExceededException": { @@ -5312,46 +5441,46 @@ "SharePointVersion": { "target": "com.amazonaws.kendra#SharePointVersion", "traits": { - "smithy.api#documentation": "

                          The version of Microsoft SharePoint that you are using as a data source.

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

                          The version of Microsoft SharePoint that you are using as a data\n source.

                          ", "smithy.api#required": {} } }, "Urls": { "target": "com.amazonaws.kendra#SharePointUrlList", "traits": { - "smithy.api#documentation": "

                          The URLs of the Microsoft SharePoint site that contains the documents that should be\n indexed.

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

                          The URLs of the Microsoft SharePoint site that contains the\n documents that should be indexed.

                          ", "smithy.api#required": {} } }, "SecretArn": { "target": "com.amazonaws.kendra#SecretArn", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The\n credentials should be a user/password pair. For more information, see Using a\n Microsoft SharePoint Data Source. For more information about AWS Secrets\n Manager, see What Is AWS Secrets Manager\n in the AWS Secrets Manager user guide.

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

                          The Amazon Resource Name (ARN) of credentials stored in AWS\n Secrets Manager. The credentials should be a user/password pair. For\n more information, see Using a\n Microsoft SharePoint Data Source. For more information\n about AWS Secrets Manager, see What Is AWS\n Secrets Manager in the AWS Secrets\n Manager user guide.

                          ", "smithy.api#required": {} } }, "CrawlAttachments": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          \n TRUE to include attachments to documents stored in your Microsoft\n SharePoint site in the index; otherwise, FALSE.

                          " + "smithy.api#documentation": "

                          \n TRUE to include attachments to documents stored in\n your Microsoft SharePoint site in the index; otherwise,\n FALSE.

                          " } }, "UseChangeLog": { "target": "com.amazonaws.kendra#Boolean", "traits": { - "smithy.api#documentation": "

                          Set to TRUE to use the Microsoft SharePoint change log to determine the\n documents that need to be updated in the index. Depending on the size of the SharePoint\n change log, it may take longer for Amazon Kendra to use the change log than it takes it\n to determine the changed documents using the Amazon Kendra document crawler.

                          " + "smithy.api#documentation": "

                          Set to TRUE to use the Microsoft SharePoint change\n log to determine the documents that need to be updated in the index.\n Depending on the size of the SharePoint change log, it may take\n longer for Amazon Kendra to use the change log than it takes it to\n determine the changed documents using the Amazon Kendra document\n crawler.

                          " } }, "InclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the patterns are included\n in the index. Documents that don't match the patterns are excluded from the index. If a\n document matches both an inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the display URL of the SharePoint document.

                          " + "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the\n patterns are included in the index. Documents that don't match the\n patterns are excluded from the index. If a document matches both an\n inclusion pattern and an exclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the display URL of the SharePoint\n document.

                          " } }, "ExclusionPatterns": { "target": "com.amazonaws.kendra#DataSourceInclusionsExclusionsStrings", "traits": { - "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the patterns are excluded\n from the index. Documents that don't match the patterns are included in the index. If a\n document matches both an exclusion pattern and an inclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the display URL of the SharePoint document.

                          " + "smithy.api#documentation": "

                          A list of regular expression patterns. Documents that match the\n patterns are excluded from the index. Documents that don't match the\n patterns are included in the index. If a document matches both an\n exclusion pattern and an inclusion pattern, the document is not\n included in the index.

                          \n

                          The regex is applied to the display URL of the SharePoint\n document.

                          " } }, "VpcConfiguration": { @@ -5360,13 +5489,13 @@ "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

                          A list of DataSourceToIndexFieldMapping objects that map Microsoft\n SharePoint attributes to custom fields in the Amazon Kendra index. You must first create the\n index fields using the operation before you map\n SharePoint attributes. For more information, see Mapping Data Source Fields.

                          " + "smithy.api#documentation": "

                          A list of DataSourceToIndexFieldMapping objects that\n map Microsoft SharePoint attributes to custom fields in the Amazon Kendra\n index. You must first create the index fields using the operation before you map SharePoint\n attributes. For more information, see Mapping Data Source\n Fields.

                          " } }, "DocumentTitleFieldName": { "target": "com.amazonaws.kendra#DataSourceFieldName", "traits": { - "smithy.api#documentation": "

                          The Microsoft SharePoint attribute field that contains the title of the\n document.

                          " + "smithy.api#documentation": "

                          The Microsoft SharePoint attribute field that contains the title\n of the document.

                          " } }, "DisableLocalGroups": { @@ -5377,7 +5506,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides configuration information for connecting to a Microsoft SharePoint data\n source.

                          " + "smithy.api#documentation": "

                          Provides configuration information for connecting to a Microsoft\n SharePoint data source.

                          " } }, "com.amazonaws.kendra#SharePointUrlList": { @@ -5403,6 +5532,16 @@ ] } }, + "com.amazonaws.kendra#SharedDriveId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, "com.amazonaws.kendra#SortOrder": { "type": "string", "traits": { @@ -5424,20 +5563,20 @@ "DocumentAttributeKey": { "target": "com.amazonaws.kendra#DocumentAttributeKey", "traits": { - "smithy.api#documentation": "

                          The name of the document attribute used to sort the response. You can use any field\n that has the Sortable flag set to true.

                          \n

                          You can also sort by any of the following built-in attributes:

                          \n
                            \n
                          • \n

                            _category

                            \n
                          • \n
                          • \n

                            _created_at

                            \n
                          • \n
                          • \n

                            _last_updated_at

                            \n
                          • \n
                          • \n

                            _version

                            \n
                          • \n
                          • \n

                            _view_count

                            \n
                          • \n
                          ", + "smithy.api#documentation": "

                          The name of the document attribute used to sort the response. You\n can use any field that has the Sortable flag set to\n true.

                          \n

                          You can also sort by any of the following built-in\n attributes:

                          \n
                            \n
                          • \n

                            _category

                            \n
                          • \n
                          • \n

                            _created_at

                            \n
                          • \n
                          • \n

                            _last_updated_at

                            \n
                          • \n
                          • \n

                            _version

                            \n
                          • \n
                          • \n

                            _view_count

                            \n
                          • \n
                          ", "smithy.api#required": {} } }, "SortOrder": { "target": "com.amazonaws.kendra#SortOrder", "traits": { - "smithy.api#documentation": "

                          The order that the results should be returned in. In case of ties, the relevance\n assigned to the result by Amazon Kendra is used as the tie-breaker.

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

                          The order that the results should be returned in. In case of ties,\n the relevance assigned to the result by Amazon Kendra is used as the\n tie-breaker.

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

                          Specifies the document attribute to use to sort the response to a Amazon Kendra query. You can\n specify a single attribute for sorting. The attribute must have the\n Sortable flag set to true, otherwise Amazon Kendra returns an\n exception.

                          \n

                          You can sort attributes of the following types.

                          \n
                            \n
                          • \n

                            Date value

                            \n
                          • \n
                          • \n

                            Long value

                            \n
                          • \n
                          • \n

                            String value

                            \n
                          • \n
                          \n

                          You can't sort attributes of the following type.

                          \n
                            \n
                          • \n

                            String list value

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          Specifies the document attribute to use to sort the response to a\n Amazon Kendra query. You can specify a single attribute for sorting. The\n attribute must have the Sortable flag set to\n true, otherwise Amazon Kendra returns an exception.

                          \n

                          You can sort attributes of the following types.

                          \n
                            \n
                          • \n

                            Date value

                            \n
                          • \n
                          • \n

                            Long value

                            \n
                          • \n
                          • \n

                            String value

                            \n
                          • \n
                          \n

                          You can't sort attributes of the following type.

                          \n
                            \n
                          • \n

                            String list value

                            \n
                          • \n
                          " } }, "com.amazonaws.kendra#SqlConfiguration": { @@ -5446,12 +5585,12 @@ "QueryIdentifiersEnclosingOption": { "target": "com.amazonaws.kendra#QueryIdentifiersEnclosingOption", "traits": { - "smithy.api#documentation": "

                          Determines whether Amazon Kendra encloses SQL identifiers for tables and column names in\n double quotes (\") when making a database query.

                          \n

                          By default, Amazon Kendra passes SQL identifiers the way that they are entered into the data\n source configuration. It does not change the case of identifiers or enclose them in\n quotes.

                          \n

                          PostgreSQL internally converts uppercase characters to lower case characters in\n identifiers unless they are quoted. Choosing this option encloses identifiers in quotes\n so that PostgreSQL does not convert the character's case.

                          \n

                          For MySQL databases, you must enable the ansi_quotes option when you set\n this field to DOUBLE_QUOTES.

                          " + "smithy.api#documentation": "

                          Determines whether Amazon Kendra encloses SQL identifiers for tables and\n column names in double quotes (\") when making a database\n query.

                          \n

                          By default, Amazon Kendra passes SQL identifiers the way that they are\n entered into the data source configuration. It does not change the\n case of identifiers or enclose them in quotes.

                          \n

                          PostgreSQL internally converts uppercase characters to lower case\n characters in identifiers unless they are quoted. Choosing this\n option encloses identifiers in quotes so that PostgreSQL does not\n convert the character's case.

                          \n

                          For MySQL databases, you must enable the ansi_quotes\n option when you set this field to DOUBLE_QUOTES.

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

                          Provides information that configures Amazon Kendra to use a SQL database.

                          " + "smithy.api#documentation": "

                          Provides information that configures Amazon Kendra to use a SQL\n database.

                          " } }, "com.amazonaws.kendra#StartDataSourceSyncJob": { @@ -5819,7 +5958,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Provides information about text documents indexed in an index.

                          " + "smithy.api#documentation": "

                          Provides information about text documents indexed in an\n index.

                          " } }, "com.amazonaws.kendra#TextWithHighlights": { @@ -5834,12 +5973,12 @@ "Highlights": { "target": "com.amazonaws.kendra#HighlightList", "traits": { - "smithy.api#documentation": "

                          The beginning and end of the text that should be highlighted.

                          " + "smithy.api#documentation": "

                          The beginning and end of the text that should be\n highlighted.

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

                          Provides text and information about where to highlight the text.

                          " + "smithy.api#documentation": "

                          Provides text and information about where to highlight the\n text.

                          " } }, "com.amazonaws.kendra#ThrottlingException": { @@ -6114,6 +6253,16 @@ "smithy.api#pattern": "^(https?|ftp|file):\\/\\/([^\\s]*)" } }, + "com.amazonaws.kendra#UserAccount": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, "com.amazonaws.kendra#UserContext": { "type": "structure", "members": { @@ -6216,6 +6365,16 @@ } } }, + "com.amazonaws.kendra#VisitorId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "[a-zA-Z0-9][a-zA-Z0-9_-]*" + } + }, "com.amazonaws.kendra#VpcSecurityGroupId": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/lambda.2015-03-31.json b/codegen/sdk-codegen/aws-models/lambda.2015-03-31.json index c5d0eb9bf1a39..888d9c69a43d5 100644 --- a/codegen/sdk-codegen/aws-models/lambda.2015-03-31.json +++ b/codegen/sdk-codegen/aws-models/lambda.2015-03-31.json @@ -1137,7 +1137,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Creates a Lambda function. To create a function, you need a deployment package and an execution role. The\n deployment package is a ZIP archive or image container that contains your function code. The execution role grants the function permission to use AWS\n services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

                          \n \n

                          When you create a function, Lambda provisions an instance of the function and its supporting resources. If\n your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or\n modify the function. The State, StateReason, and StateReasonCode fields in\n the response from GetFunctionConfiguration indicate when the function is ready to invoke. For\n more information, see Function\n States.

                          \n \n

                          A function has an unpublished version, and can have published versions and aliases. The unpublished version\n changes when you update your function's code and configuration. A published version is a snapshot of your function\n code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be\n changed to map to a different version. Use the Publish parameter to create version 1 of\n your function from its initial configuration.

                          \n \n

                          The other parameters let you configure version-specific and function-level settings. You can modify\n version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply\n to both the unpublished and published versions of the function, and include tags (TagResource)\n and per-function concurrency limits (PutFunctionConcurrency).

                          \n \n

                          You can use code signing if your deployment package is a ZIP archive. To enable code signing for this function, \n specify the ARN of a code-signing configuration. When a user\n attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code\n package has a valid signature from a trusted publisher. The code-signing configuration\n includes set set of signing profiles, which define the trusted publishers for this function.

                          \n \n

                          If another account or an AWS service invokes your function, use AddPermission to grant\n permission by creating a resource-based IAM policy. You can grant permissions at the function level, on a version,\n or on an alias.

                          \n \n

                          To invoke your function directly, use Invoke. To invoke your function in response to events\n in other AWS services, create an event source mapping (CreateEventSourceMapping), or configure a\n function trigger in the other service. For more information, see Invoking Functions.

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

                          Creates a Lambda function. To create a function, you need a deployment package and an execution role. The\n deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS\n services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.

                          \n \n

                          When you create a function, Lambda provisions an instance of the function and its supporting resources. If\n your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or\n modify the function. The State, StateReason, and StateReasonCode fields in\n the response from GetFunctionConfiguration indicate when the function is ready to invoke. For\n more information, see Function\n States.

                          \n \n

                          A function has an unpublished version, and can have published versions and aliases. The unpublished version\n changes when you update your function's code and configuration. A published version is a snapshot of your function\n code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be\n changed to map to a different version. Use the Publish parameter to create version 1 of\n your function from its initial configuration.

                          \n \n

                          The other parameters let you configure version-specific and function-level settings. You can modify\n version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply\n to both the unpublished and published versions of the function, and include tags (TagResource)\n and per-function concurrency limits (PutFunctionConcurrency).

                          \n \n

                          You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, \n specify the ARN of a code-signing configuration. When a user\n attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code\n package has a valid signature from a trusted publisher. The code-signing configuration\n includes set set of signing profiles, which define the trusted publishers for this function.

                          \n \n

                          If another account or an AWS service invokes your function, use AddPermission to grant\n permission by creating a resource-based IAM policy. You can grant permissions at the function level, on a version,\n or on an alias.

                          \n \n

                          To invoke your function directly, use Invoke. To invoke your function in response to events\n in other AWS services, create an event source mapping (CreateEventSourceMapping), or configure a\n function trigger in the other service. For more information, see Invoking Functions.

                          ", "smithy.api#http": { "method": "POST", "uri": "/2015-03-31/functions", @@ -1196,7 +1196,7 @@ "MemorySize": { "target": "com.amazonaws.lambda#MemorySize", "traits": { - "smithy.api#documentation": "

                          The amount of memory that your function has access to. Increasing the function's memory also increases its CPU\n allocation. The default value is 128 MB. The value must be a multiple of 64 MB.

                          " + "smithy.api#documentation": "

                          The amount of memory available to the function at runtime. Increasing the function's memory also increases its CPU\n allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

                          " } }, "Publish": { @@ -2222,7 +2222,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          The code for the Lambda function. You can specify either an object in Amazon S3, upload a ZIP archive deployment\n package directly, or specify the URI of a container image.

                          " + "smithy.api#documentation": "

                          The code for the Lambda function. You can specify either an object in Amazon S3, upload a .zip file archive deployment\n package directly, or specify the URI of a container image.

                          " } }, "com.amazonaws.lambda#FunctionCodeLocation": { @@ -2311,7 +2311,7 @@ "MemorySize": { "target": "com.amazonaws.lambda#MemorySize", "traits": { - "smithy.api#documentation": "

                          The memory that's allocated to the function.

                          " + "smithy.api#documentation": "

                          The amount of memory available to the function at runtime.

                          " } }, "LastModified": { @@ -2425,7 +2425,7 @@ "PackageType": { "target": "com.amazonaws.lambda#PackageType", "traits": { - "smithy.api#documentation": "

                          The type of deployment package. Set to Image for container image and set Zip for ZIP archive.

                          " + "smithy.api#documentation": "

                          The type of deployment package. Set to Image for container image and set Zip for .zip file archive.

                          " } }, "ImageConfigResponse": { @@ -4012,6 +4012,10 @@ { "value": "ImageAccessDenied", "name": "ImageAccessDenied" + }, + { + "value": "InvalidImage", + "name": "InvalidImage" } ] } @@ -6586,6 +6590,10 @@ { "value": "ImageAccessDenied", "name": "ImageAccessDenied" + }, + { + "value": "InvalidImage", + "name": "InvalidImage" } ] } @@ -7229,7 +7237,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed\n by a trusted publisher. For more information, see Configuring code signing.

                          \n \n

                          The function's code is locked when you publish a version. You can't modify the code of a published version,\n only the unpublished version.

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

                          Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed\n by a trusted publisher. For more information, see Configuring code signing.

                          \n \n

                          The function's code is locked when you publish a version. You can't modify the code of a published version,\n only the unpublished version.

                          \n \n

                          For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if\n you update the image tag to a new image, Lambda does not automatically update the function.

                          \n
                          ", "smithy.api#http": { "method": "PUT", "uri": "/2015-03-31/functions/{FunctionName}/code", @@ -7382,7 +7390,7 @@ "MemorySize": { "target": "com.amazonaws.lambda#MemorySize", "traits": { - "smithy.api#documentation": "

                          The amount of memory that your function has access to. Increasing the function's memory also increases its CPU\n allocation. The default value is 128 MB. The value must be a multiple of 64 MB.

                          " + "smithy.api#documentation": "

                          The amount of memory available to the function at runtime. Increasing the function's memory also increases its CPU\n allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

                          " } }, "VpcConfig": { diff --git a/codegen/sdk-codegen/aws-models/license-manager.2018-08-01.json b/codegen/sdk-codegen/aws-models/license-manager.2018-08-01.json index e70537fc95e68..4c510d77f20de 100644 --- a/codegen/sdk-codegen/aws-models/license-manager.2018-08-01.json +++ b/codegen/sdk-codegen/aws-models/license-manager.2018-08-01.json @@ -33,39 +33,111 @@ "type": "service", "version": "2018-08-01", "operations": [ + { + "target": "com.amazonaws.licensemanager#AcceptGrant" + }, + { + "target": "com.amazonaws.licensemanager#CheckInLicense" + }, + { + "target": "com.amazonaws.licensemanager#CheckoutBorrowLicense" + }, + { + "target": "com.amazonaws.licensemanager#CheckoutLicense" + }, + { + "target": "com.amazonaws.licensemanager#CreateGrant" + }, + { + "target": "com.amazonaws.licensemanager#CreateGrantVersion" + }, + { + "target": "com.amazonaws.licensemanager#CreateLicense" + }, { "target": "com.amazonaws.licensemanager#CreateLicenseConfiguration" }, + { + "target": "com.amazonaws.licensemanager#CreateLicenseVersion" + }, + { + "target": "com.amazonaws.licensemanager#CreateToken" + }, + { + "target": "com.amazonaws.licensemanager#DeleteGrant" + }, + { + "target": "com.amazonaws.licensemanager#DeleteLicense" + }, { "target": "com.amazonaws.licensemanager#DeleteLicenseConfiguration" }, + { + "target": "com.amazonaws.licensemanager#DeleteToken" + }, + { + "target": "com.amazonaws.licensemanager#ExtendLicenseConsumption" + }, + { + "target": "com.amazonaws.licensemanager#GetAccessToken" + }, + { + "target": "com.amazonaws.licensemanager#GetGrant" + }, + { + "target": "com.amazonaws.licensemanager#GetLicense" + }, { "target": "com.amazonaws.licensemanager#GetLicenseConfiguration" }, + { + "target": "com.amazonaws.licensemanager#GetLicenseUsage" + }, { "target": "com.amazonaws.licensemanager#GetServiceSettings" }, { "target": "com.amazonaws.licensemanager#ListAssociationsForLicenseConfiguration" }, + { + "target": "com.amazonaws.licensemanager#ListDistributedGrants" + }, { "target": "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperations" }, { "target": "com.amazonaws.licensemanager#ListLicenseConfigurations" }, + { + "target": "com.amazonaws.licensemanager#ListLicenses" + }, { "target": "com.amazonaws.licensemanager#ListLicenseSpecificationsForResource" }, + { + "target": "com.amazonaws.licensemanager#ListLicenseVersions" + }, + { + "target": "com.amazonaws.licensemanager#ListReceivedGrants" + }, + { + "target": "com.amazonaws.licensemanager#ListReceivedLicenses" + }, { "target": "com.amazonaws.licensemanager#ListResourceInventory" }, { "target": "com.amazonaws.licensemanager#ListTagsForResource" }, + { + "target": "com.amazonaws.licensemanager#ListTokens" + }, { "target": "com.amazonaws.licensemanager#ListUsageForLicenseConfiguration" }, + { + "target": "com.amazonaws.licensemanager#RejectGrant" + }, { "target": "com.amazonaws.licensemanager#TagResource" }, @@ -93,13 +165,83 @@ "name": "license-manager" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": " AWS License Manager \n

                          AWS License Manager makes it easier to manage licenses from software vendors across multiple\n AWS accounts and on-premises servers.

                          ", + "smithy.api#documentation": " AWS License Manager \n

                          AWS License Manager makes it easier to manage licenses from software vendors across multiple \n AWS accounts and on-premises servers.

                          ", "smithy.api#title": "AWS License Manager", "smithy.api#xmlNamespace": { "uri": "https://license-manager.amazonaws.com/doc/2018_08_01" } } }, + "com.amazonaws.licensemanager#AcceptGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#AcceptGrantRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#AcceptGrantResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Accepts the specified grant.

                          " + } + }, + "com.amazonaws.licensemanager#AcceptGrantRequest": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the grant.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#AcceptGrantResponse": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Grant ARN.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

                          " + } + } + } + }, "com.amazonaws.licensemanager#AccessDeniedException": { "type": "structure", "members": { @@ -113,6 +255,69 @@ "smithy.api#httpError": 401 } }, + "com.amazonaws.licensemanager#AllowedOperation": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CreateGrant", + "name": "CREATE_GRANT" + }, + { + "value": "CheckoutLicense", + "name": "CHECKOUT_LICENSE" + }, + { + "value": "CheckoutBorrowLicense", + "name": "CHECKOUT_BORROW_LICENSE" + }, + { + "value": "CheckInLicense", + "name": "CHECK_IN_LICENSE" + }, + { + "value": "ExtendConsumptionLicense", + "name": "EXTEND_CONSUMPTION_LICENSE" + }, + { + "value": "ListPurchasedLicenses", + "name": "LIST_PURCHASED_LICENSES" + }, + { + "value": "CreateToken", + "name": "CREATE_TOKEN" + } + ] + } + }, + "com.amazonaws.licensemanager#AllowedOperationList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#AllowedOperation" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 7 + } + } + }, + "com.amazonaws.licensemanager#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$" + } + }, + "com.amazonaws.licensemanager#ArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Arn" + } + }, "com.amazonaws.licensemanager#AuthorizationException": { "type": "structure", "members": { @@ -143,6 +348,28 @@ "com.amazonaws.licensemanager#Boolean": { "type": "boolean" }, + "com.amazonaws.licensemanager#BorrowConfiguration": { + "type": "structure", + "members": { + "AllowEarlyCheckIn": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether early check-ins are allowed.

                          ", + "smithy.api#required": {} + } + }, + "MaxTimeToLiveInMinutes": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum time for the borrow configuration, in minutes.

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

                          Details about a borrow configuration.

                          " + } + }, "com.amazonaws.licensemanager#BoxBoolean": { "type": "boolean", "traits": { @@ -161,39 +388,13 @@ "smithy.api#box": {} } }, - "com.amazonaws.licensemanager#ConsumedLicenseSummary": { - "type": "structure", - "members": { - "ResourceType": { - "target": "com.amazonaws.licensemanager#ResourceType", - "traits": { - "smithy.api#documentation": "

                          Resource type of the resource consuming a license.

                          " - } - }, - "ConsumedLicenses": { - "target": "com.amazonaws.licensemanager#BoxLong", - "traits": { - "smithy.api#documentation": "

                          Number of licenses consumed by the resource.

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

                          Details about license consumption.

                          " - } - }, - "com.amazonaws.licensemanager#ConsumedLicenseSummaryList": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#ConsumedLicenseSummary" - } - }, - "com.amazonaws.licensemanager#CreateLicenseConfiguration": { + "com.amazonaws.licensemanager#CheckInLicense": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#CreateLicenseConfigurationRequest" + "target": "com.amazonaws.licensemanager#CheckInLicenseRequest" }, "output": { - "target": "com.amazonaws.licensemanager#CreateLicenseConfigurationResponse" + "target": "com.amazonaws.licensemanager#CheckInLicenseResponse" }, "errors": [ { @@ -203,98 +404,54 @@ "target": "com.amazonaws.licensemanager#AuthorizationException" }, { - "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + "target": "com.amazonaws.licensemanager#ConflictException" }, { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, { - "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Creates a license configuration.

                          \n

                          A license configuration is an abstraction of a customer license agreement that can be\n consumed and enforced by License Manager. Components include specifications for the license\n type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy,\n Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a\n license must be associated with a host), and the number of licenses purchased and\n used.

                          " + "smithy.api#documentation": "

                          Checks in the specified license. Check in a license when it is no longer in use.

                          " } }, - "com.amazonaws.licensemanager#CreateLicenseConfigurationRequest": { + "com.amazonaws.licensemanager#CheckInLicenseRequest": { "type": "structure", "members": { - "Name": { + "LicenseConsumptionToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Name of the license configuration.

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

                          License consumption token.

                          ", "smithy.api#required": {} } }, - "Description": { + "Beneficiary": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Description of the license configuration.

                          " - } - }, - "LicenseCountingType": { - "target": "com.amazonaws.licensemanager#LicenseCountingType", - "traits": { - "smithy.api#documentation": "

                          Dimension used to track the license inventory.

                          ", - "smithy.api#required": {} - } - }, - "LicenseCount": { - "target": "com.amazonaws.licensemanager#BoxLong", - "traits": { - "smithy.api#documentation": "

                          Number of licenses managed by the license configuration.

                          " - } - }, - "LicenseCountHardLimit": { - "target": "com.amazonaws.licensemanager#BoxBoolean", - "traits": { - "smithy.api#documentation": "

                          Indicates whether hard or soft license enforcement is used. Exceeding a hard limit\n blocks the launch of new instances.

                          " - } - }, - "LicenseRules": { - "target": "com.amazonaws.licensemanager#StringList", - "traits": { - "smithy.api#documentation": "

                          License rules. The syntax is #name=value (for example,\n #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as\n follows.

                          \n
                            \n
                          • \n

                            \n Cores dimension: allowedTenancy |\n licenseAffinityToHost | maximumCores |\n minimumCores\n

                            \n
                          • \n
                          • \n

                            \n Instances dimension: allowedTenancy |\n maximumCores | minimumCores |\n maximumSockets | minimumSockets |\n maximumVcpus | minimumVcpus\n

                            \n
                          • \n
                          • \n

                            \n Sockets dimension: allowedTenancy |\n licenseAffinityToHost | maximumSockets |\n minimumSockets\n

                            \n
                          • \n
                          • \n

                            \n vCPUs dimension: allowedTenancy |\n honorVcpuOptimization | maximumVcpus |\n minimumVcpus\n

                            \n
                          • \n
                          \n

                          The unit for licenseAffinityToHost is days and the range is 1 to 180. The\n possible values for allowedTenancy are EC2-Default,\n EC2-DedicatedHost, and EC2-DedicatedInstance. The possible\n values for honorVcpuOptimization are True and\n False.

                          " - } - }, - "Tags": { - "target": "com.amazonaws.licensemanager#TagList", - "traits": { - "smithy.api#documentation": "

                          Tags to add to the license configuration.

                          " - } - }, - "ProductInformationList": { - "target": "com.amazonaws.licensemanager#ProductInformationList", - "traits": { - "smithy.api#documentation": "

                          Product information.

                          " + "smithy.api#documentation": "

                          License beneficiary.

                          " } } } }, - "com.amazonaws.licensemanager#CreateLicenseConfigurationResponse": { + "com.amazonaws.licensemanager#CheckInLicenseResponse": { "type": "structure", - "members": { - "LicenseConfigurationArn": { - "target": "com.amazonaws.licensemanager#String", - "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          " - } - } - } - }, - "com.amazonaws.licensemanager#DateTime": { - "type": "timestamp" + "members": {} }, - "com.amazonaws.licensemanager#DeleteLicenseConfiguration": { + "com.amazonaws.licensemanager#CheckoutBorrowLicense": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#DeleteLicenseConfigurationRequest" + "target": "com.amazonaws.licensemanager#CheckoutBorrowLicenseRequest" }, "output": { - "target": "com.amazonaws.licensemanager#DeleteLicenseConfigurationResponse" + "target": "com.amazonaws.licensemanager#CheckoutBorrowLicenseResponse" }, "errors": [ { @@ -304,112 +461,139 @@ "target": "com.amazonaws.licensemanager#AuthorizationException" }, { - "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + "target": "com.amazonaws.licensemanager#EntitlementNotAllowedException" + }, + { + "target": "com.amazonaws.licensemanager#NoEntitlementsAllowedException" }, { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#UnsupportedDigitalSignatureMethodException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Deletes the specified license configuration.

                          \n

                          You cannot delete a license configuration that is in use.

                          " + "smithy.api#documentation": "

                          Checks out the specified license for offline use.

                          " } }, - "com.amazonaws.licensemanager#DeleteLicenseConfigurationRequest": { + "com.amazonaws.licensemanager#CheckoutBorrowLicenseRequest": { "type": "structure", "members": { - "LicenseConfigurationArn": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license. The license must use the borrow consumption configuration.

                          ", + "smithy.api#required": {} + } + }, + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementDataList", + "traits": { + "smithy.api#documentation": "

                          License entitlements. Partial checkouts are not supported.

                          ", + "smithy.api#required": {} + } + }, + "DigitalSignatureMethod": { + "target": "com.amazonaws.licensemanager#DigitalSignatureMethod", + "traits": { + "smithy.api#documentation": "

                          Digital signature method. The possible value is JSON Web Signature (JWS) algorithm PS384.\n For more information, see RFC 7518 Digital Signature with RSASSA-PSS.

                          ", + "smithy.api#required": {} + } + }, + "NodeId": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          ID of the license configuration.

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

                          Node ID.

                          " + } + }, + "CheckoutMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          Information about constraints.

                          " + } + }, + "ClientToken": { + "target": "com.amazonaws.licensemanager#ClientToken", + "traits": { + "smithy.api#documentation": "

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          ", "smithy.api#required": {} } } } }, - "com.amazonaws.licensemanager#DeleteLicenseConfigurationResponse": { - "type": "structure", - "members": {} - }, - "com.amazonaws.licensemanager#FailedDependencyException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.licensemanager#Message" - } - }, - "traits": { - "smithy.api#documentation": "

                          A dependency required to run the API is missing.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 424 - } - }, - "com.amazonaws.licensemanager#Filter": { + "com.amazonaws.licensemanager#CheckoutBorrowLicenseResponse": { "type": "structure", "members": { - "Name": { - "target": "com.amazonaws.licensemanager#FilterName", + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Name of the filter. Filter names are case-sensitive.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          " } }, - "Values": { - "target": "com.amazonaws.licensemanager#FilterValues", + "LicenseConsumptionToken": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Filter values. Filter values are case-sensitive.

                          " + "smithy.api#documentation": "

                          License consumption token.

                          " + } + }, + "EntitlementsAllowed": { + "target": "com.amazonaws.licensemanager#EntitlementDataList", + "traits": { + "smithy.api#documentation": "

                          Allowed license entitlements.

                          " + } + }, + "NodeId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Node ID.

                          " + } + }, + "SignedToken": { + "target": "com.amazonaws.licensemanager#SignedToken", + "traits": { + "smithy.api#documentation": "

                          Signed token.

                          " + } + }, + "IssuedAt": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Date and time at which the license checkout is issued.

                          " + } + }, + "Expiration": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Date and time at which the license checkout expires.

                          " + } + }, + "CheckoutMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          Information about constraints.

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

                          A filter name and value pair that is used to return more specific results from a\n describe operation. Filters can be used to match a set of resources by specific criteria,\n such as tags, attributes, or IDs.

                          " - } - }, - "com.amazonaws.licensemanager#FilterLimitExceededException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.licensemanager#Message" - } - }, - "traits": { - "smithy.api#documentation": "

                          The request uses too many filters or too many filter values.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, - "com.amazonaws.licensemanager#FilterName": { - "type": "string" - }, - "com.amazonaws.licensemanager#FilterValue": { - "type": "string" - }, - "com.amazonaws.licensemanager#FilterValues": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#FilterValue", - "traits": { - "smithy.api#xmlName": "item" - } - } - }, - "com.amazonaws.licensemanager#Filters": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#Filter", - "traits": { - "smithy.api#xmlName": "item" } } }, - "com.amazonaws.licensemanager#GetLicenseConfiguration": { + "com.amazonaws.licensemanager#CheckoutLicense": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#GetLicenseConfigurationRequest" + "target": "com.amazonaws.licensemanager#CheckoutLicenseRequest" }, "output": { - "target": "com.amazonaws.licensemanager#GetLicenseConfigurationResponse" + "target": "com.amazonaws.licensemanager#CheckoutLicenseResponse" }, "errors": [ { @@ -419,139 +603,223 @@ "target": "com.amazonaws.licensemanager#AuthorizationException" }, { - "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + "target": "com.amazonaws.licensemanager#NoEntitlementsAllowedException" }, { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#UnsupportedDigitalSignatureMethodException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Gets detailed information about the specified license configuration.

                          " + "smithy.api#documentation": "

                          Checks out the specified license.

                          " } }, - "com.amazonaws.licensemanager#GetLicenseConfigurationRequest": { + "com.amazonaws.licensemanager#CheckoutLicenseRequest": { "type": "structure", "members": { - "LicenseConfigurationArn": { + "ProductSKU": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

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

                          Product SKU.

                          ", "smithy.api#required": {} } - } - } - }, - "com.amazonaws.licensemanager#GetLicenseConfigurationResponse": { - "type": "structure", - "members": { - "LicenseConfigurationId": { - "target": "com.amazonaws.licensemanager#String", + }, + "CheckoutType": { + "target": "com.amazonaws.licensemanager#CheckoutType", "traits": { - "smithy.api#documentation": "

                          Unique ID for the license configuration.

                          " + "smithy.api#documentation": "

                          Checkout type.

                          ", + "smithy.api#required": {} } }, - "LicenseConfigurationArn": { + "KeyFingerprint": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          " + "smithy.api#documentation": "

                          Key fingerprint identifying the license.

                          ", + "smithy.api#required": {} } }, - "Name": { - "target": "com.amazonaws.licensemanager#String", + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementDataList", "traits": { - "smithy.api#documentation": "

                          Name of the license configuration.

                          " + "smithy.api#documentation": "

                          License entitlements.

                          ", + "smithy.api#required": {} } }, - "Description": { - "target": "com.amazonaws.licensemanager#String", + "ClientToken": { + "target": "com.amazonaws.licensemanager#ClientToken", "traits": { - "smithy.api#documentation": "

                          Description of the license configuration.

                          " + "smithy.api#documentation": "

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          ", + "smithy.api#required": {} } }, - "LicenseCountingType": { - "target": "com.amazonaws.licensemanager#LicenseCountingType", + "Beneficiary": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Dimension on which the licenses are counted.

                          " + "smithy.api#documentation": "

                          License beneficiary.

                          " } }, - "LicenseRules": { - "target": "com.amazonaws.licensemanager#StringList", + "NodeId": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          License rules.

                          " + "smithy.api#documentation": "

                          Node ID.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#CheckoutLicenseResponse": { + "type": "structure", + "members": { + "CheckoutType": { + "target": "com.amazonaws.licensemanager#CheckoutType", + "traits": { + "smithy.api#documentation": "

                          Checkout type.

                          " } }, - "LicenseCount": { - "target": "com.amazonaws.licensemanager#BoxLong", + "LicenseConsumptionToken": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Number of available licenses.

                          " + "smithy.api#documentation": "

                          License consumption token.

                          " } }, - "LicenseCountHardLimit": { - "target": "com.amazonaws.licensemanager#BoxBoolean", + "EntitlementsAllowed": { + "target": "com.amazonaws.licensemanager#EntitlementDataList", "traits": { - "smithy.api#documentation": "

                          Sets the number of available licenses as a hard limit.

                          " + "smithy.api#documentation": "

                          Allowed license entitlements.

                          " } }, - "ConsumedLicenses": { - "target": "com.amazonaws.licensemanager#BoxLong", + "SignedToken": { + "target": "com.amazonaws.licensemanager#SignedToken", "traits": { - "smithy.api#documentation": "

                          Number of licenses assigned to resources.

                          " + "smithy.api#documentation": "

                          Signed token.

                          " } }, - "Status": { + "NodeId": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          License configuration status.

                          " + "smithy.api#documentation": "

                          Node ID.

                          " } }, - "OwnerAccountId": { - "target": "com.amazonaws.licensemanager#String", + "IssuedAt": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", "traits": { - "smithy.api#documentation": "

                          Account ID of the owner of the license configuration.

                          " + "smithy.api#documentation": "

                          Date and time at which the license checkout is issued.

                          " } }, - "ConsumedLicenseSummaryList": { - "target": "com.amazonaws.licensemanager#ConsumedLicenseSummaryList", + "Expiration": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", "traits": { - "smithy.api#documentation": "

                          Summaries of the licenses consumed by resources.

                          " + "smithy.api#documentation": "

                          Date and time at which the license checkout expires.

                          " } + } + } + }, + "com.amazonaws.licensemanager#CheckoutType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PROVISIONAL", + "name": "PROVISIONAL" + } + ] + } + }, + "com.amazonaws.licensemanager#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 64 }, - "ManagedResourceSummaryList": { - "target": "com.amazonaws.licensemanager#ManagedResourceSummaryList", + "smithy.api#pattern": "[a-zA-Z0-9]*" + } + }, + "com.amazonaws.licensemanager#ConflictException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          There was a conflict processing the request. Try your request again.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.licensemanager#ConsumedLicenseSummary": { + "type": "structure", + "members": { + "ResourceType": { + "target": "com.amazonaws.licensemanager#ResourceType", "traits": { - "smithy.api#documentation": "

                          Summaries of the managed resources.

                          " + "smithy.api#documentation": "

                          Resource type of the resource consuming a license.

                          " } }, - "Tags": { - "target": "com.amazonaws.licensemanager#TagList", + "ConsumedLicenses": { + "target": "com.amazonaws.licensemanager#BoxLong", "traits": { - "smithy.api#documentation": "

                          Tags for the license configuration.

                          " + "smithy.api#documentation": "

                          Number of licenses consumed by the resource.

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

                          Details about license consumption.

                          " + } + }, + "com.amazonaws.licensemanager#ConsumedLicenseSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#ConsumedLicenseSummary" + } + }, + "com.amazonaws.licensemanager#ConsumptionConfiguration": { + "type": "structure", + "members": { + "RenewType": { + "target": "com.amazonaws.licensemanager#RenewType", + "traits": { + "smithy.api#documentation": "

                          Renewal frequency.

                          " } }, - "ProductInformationList": { - "target": "com.amazonaws.licensemanager#ProductInformationList", + "ProvisionalConfiguration": { + "target": "com.amazonaws.licensemanager#ProvisionalConfiguration", "traits": { - "smithy.api#documentation": "

                          Product information.

                          " + "smithy.api#documentation": "

                          Details about a provisional configuration.

                          " } }, - "AutomatedDiscoveryInformation": { - "target": "com.amazonaws.licensemanager#AutomatedDiscoveryInformation", + "BorrowConfiguration": { + "target": "com.amazonaws.licensemanager#BorrowConfiguration", "traits": { - "smithy.api#documentation": "

                          Automated discovery information.

                          " + "smithy.api#documentation": "

                          Details about a borrow configuration.

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

                          Details about a consumption configuration.

                          " } }, - "com.amazonaws.licensemanager#GetServiceSettings": { + "com.amazonaws.licensemanager#CreateGrant": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#GetServiceSettingsRequest" + "target": "com.amazonaws.licensemanager#CreateGrantRequest" }, "output": { - "target": "com.amazonaws.licensemanager#GetServiceSettingsResponse" + "target": "com.amazonaws.licensemanager#CreateGrantResponse" }, "errors": [ { @@ -560,158 +828,272 @@ { "target": "com.amazonaws.licensemanager#AuthorizationException" }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Gets the License Manager settings for the current Region.

                          " + "smithy.api#documentation": "

                          Creates a grant for the specified license. A grant shares the use of license entitlements with specific AWS accounts.

                          " } }, - "com.amazonaws.licensemanager#GetServiceSettingsRequest": { - "type": "structure", - "members": {} - }, - "com.amazonaws.licensemanager#GetServiceSettingsResponse": { + "com.amazonaws.licensemanager#CreateGrantRequest": { "type": "structure", "members": { - "S3BucketArn": { + "ClientToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Regional S3 bucket path for storing reports, license trail event data, discovery data,\n and so on.

                          " + "smithy.api#documentation": "

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          ", + "smithy.api#required": {} } }, - "SnsTopicArn": { + "GrantName": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          SNS topic configured to receive notifications from License Manager.

                          " + "smithy.api#documentation": "

                          Grant name.

                          ", + "smithy.api#required": {} } }, - "OrganizationConfiguration": { - "target": "com.amazonaws.licensemanager#OrganizationConfiguration", + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Indicates whether AWS Organizations has been integrated with License Manager for\n cross-account discovery.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          ", + "smithy.api#required": {} } }, - "EnableCrossAccountsDiscovery": { - "target": "com.amazonaws.licensemanager#BoxBoolean", + "Principals": { + "target": "com.amazonaws.licensemanager#PrincipalArnList", "traits": { - "smithy.api#documentation": "

                          Indicates whether cross-account discovery has been enabled.

                          " + "smithy.api#documentation": "

                          The grant principals.

                          ", + "smithy.api#required": {} } }, - "LicenseManagerResourceShareArn": { + "HomeRegion": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the AWS resource share. The License Manager master account\n will provide member accounts with access to this share.

                          " + "smithy.api#documentation": "

                          Home Region of the grant.

                          ", + "smithy.api#required": {} + } + }, + "AllowedOperations": { + "target": "com.amazonaws.licensemanager#AllowedOperationList", + "traits": { + "smithy.api#documentation": "

                          Allowed operations for the grant.

                          ", + "smithy.api#required": {} } } } }, - "com.amazonaws.licensemanager#InvalidParameterValueException": { + "com.amazonaws.licensemanager#CreateGrantResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.licensemanager#Message" + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Grant ARN.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

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

                          One or more parameter values are not valid.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 } }, - "com.amazonaws.licensemanager#InvalidResourceStateException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.licensemanager#Message" - } + "com.amazonaws.licensemanager#CreateGrantVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#CreateGrantVersionRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#CreateGrantVersionResponse" }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], "traits": { - "smithy.api#documentation": "

                          License Manager cannot allocate a license to a resource because of its state.

                          \n

                          For example, you cannot allocate a license to an instance in the process of shutting\n down.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 + "smithy.api#documentation": "

                          Creates a new version of the specified grant.

                          " } }, - "com.amazonaws.licensemanager#InventoryFilter": { + "com.amazonaws.licensemanager#CreateGrantVersionRequest": { "type": "structure", "members": { - "Name": { + "ClientToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Name of the filter.

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

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          ", "smithy.api#required": {} } }, - "Condition": { - "target": "com.amazonaws.licensemanager#InventoryFilterCondition", + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Condition of the filter.

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

                          Amazon Resource Name (ARN) of the grant.

                          ", "smithy.api#required": {} } }, - "Value": { + "GrantName": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Value of the filter.

                          " + "smithy.api#documentation": "

                          Grant name.

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

                          An inventory filter.

                          " - } - }, - "com.amazonaws.licensemanager#InventoryFilterCondition": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "EQUALS", - "name": "EQUALS" - }, - { - "value": "NOT_EQUALS", - "name": "NOT_EQUALS" - }, - { - "value": "BEGINS_WITH", - "name": "BEGINS_WITH" - }, - { - "value": "CONTAINS", - "name": "CONTAINS" + }, + "AllowedOperations": { + "target": "com.amazonaws.licensemanager#AllowedOperationList", + "traits": { + "smithy.api#documentation": "

                          Allowed operations for the grant.

                          " } - ] - } - }, - "com.amazonaws.licensemanager#InventoryFilterList": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#InventoryFilter" + }, + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "SourceVersion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Current version of the grant.

                          " + } + } } }, - "com.amazonaws.licensemanager#LicenseConfiguration": { + "com.amazonaws.licensemanager#CreateGrantVersionResponse": { "type": "structure", "members": { - "LicenseConfigurationId": { - "target": "com.amazonaws.licensemanager#String", + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Unique ID of the license configuration.

                          " + "smithy.api#documentation": "

                          Grant ARN.

                          " } }, - "LicenseConfigurationArn": { + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "Version": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          " + "smithy.api#documentation": "

                          New version of the grant.

                          " } + } + } + }, + "com.amazonaws.licensemanager#CreateLicense": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#CreateLicenseRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#CreateLicenseResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a license.

                          " + } + }, + "com.amazonaws.licensemanager#CreateLicenseConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#CreateLicenseConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#CreateLicenseConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a license configuration.

                          \n

                          A license configuration is an abstraction of a customer license agreement that can be\n consumed and enforced by License Manager. Components include specifications for the license\n type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, \n Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a \n license must be associated with a host), and the number of licenses purchased and used.

                          " + } + }, + "com.amazonaws.licensemanager#CreateLicenseConfigurationRequest": { + "type": "structure", + "members": { "Name": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Name of the license configuration.

                          " + "smithy.api#documentation": "

                          Name of the license configuration.

                          ", + "smithy.api#required": {} } }, "Description": { @@ -723,13 +1105,8 @@ "LicenseCountingType": { "target": "com.amazonaws.licensemanager#LicenseCountingType", "traits": { - "smithy.api#documentation": "

                          Dimension to use to track the license inventory.

                          " - } - }, - "LicenseRules": { - "target": "com.amazonaws.licensemanager#StringList", - "traits": { - "smithy.api#documentation": "

                          License rules.

                          " + "smithy.api#documentation": "

                          Dimension used to track the license inventory.

                          ", + "smithy.api#required": {} } }, "LicenseCount": { @@ -741,37 +1118,25 @@ "LicenseCountHardLimit": { "target": "com.amazonaws.licensemanager#BoxBoolean", "traits": { - "smithy.api#documentation": "

                          Number of available licenses as a hard limit.

                          " - } - }, - "ConsumedLicenses": { - "target": "com.amazonaws.licensemanager#BoxLong", - "traits": { - "smithy.api#documentation": "

                          Number of licenses consumed.

                          " - } - }, - "Status": { - "target": "com.amazonaws.licensemanager#String", - "traits": { - "smithy.api#documentation": "

                          Status of the license configuration.

                          " + "smithy.api#documentation": "

                          Indicates whether hard or soft license enforcement is used. Exceeding a hard limit\n blocks the launch of new instances.

                          " } }, - "OwnerAccountId": { - "target": "com.amazonaws.licensemanager#String", + "LicenseRules": { + "target": "com.amazonaws.licensemanager#StringList", "traits": { - "smithy.api#documentation": "

                          Account ID of the license configuration's owner.

                          " + "smithy.api#documentation": "

                          License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules \n vary by dimension, as follows.

                          \n
                            \n
                          • \n

                            \n Cores dimension: allowedTenancy |\n licenseAffinityToHost |\n maximumCores | minimumCores\n

                            \n
                          • \n
                          • \n

                            \n Instances dimension: allowedTenancy | \n maximumCores | minimumCores |\n maximumSockets | minimumSockets |\n maximumVcpus | minimumVcpus\n

                            \n
                          • \n
                          • \n

                            \n Sockets dimension: allowedTenancy | \n licenseAffinityToHost |\n maximumSockets | minimumSockets\n

                            \n
                          • \n
                          • \n

                            \n vCPUs dimension: allowedTenancy | \n honorVcpuOptimization | \n maximumVcpus | minimumVcpus\n

                            \n
                          • \n
                          \n

                          The unit for licenseAffinityToHost is days and the range is 1 to 180. The possible \n values for allowedTenancy are EC2-Default, EC2-DedicatedHost, and \n EC2-DedicatedInstance. The possible values for honorVcpuOptimization are \n True and False.

                          " } }, - "ConsumedLicenseSummaryList": { - "target": "com.amazonaws.licensemanager#ConsumedLicenseSummaryList", + "Tags": { + "target": "com.amazonaws.licensemanager#TagList", "traits": { - "smithy.api#documentation": "

                          Summaries for licenses consumed by various resources.

                          " + "smithy.api#documentation": "

                          Tags to add to the license configuration.

                          " } }, - "ManagedResourceSummaryList": { - "target": "com.amazonaws.licensemanager#ManagedResourceSummaryList", + "DisassociateWhenNotFound": { + "target": "com.amazonaws.licensemanager#BoxBoolean", "traits": { - "smithy.api#documentation": "

                          Summaries for managed resources.

                          " + "smithy.api#documentation": "

                          When true, disassociates a resource when software is uninstalled.

                          " } }, "ProductInformationList": { @@ -779,265 +1144,2889 @@ "traits": { "smithy.api#documentation": "

                          Product information.

                          " } - }, - "AutomatedDiscoveryInformation": { - "target": "com.amazonaws.licensemanager#AutomatedDiscoveryInformation", + } + } + }, + "com.amazonaws.licensemanager#CreateLicenseConfigurationResponse": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Automated discovery information.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

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

                          A license configuration is an abstraction of a customer license agreement that can be\n consumed and enforced by License Manager. Components include specifications for the license\n type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy,\n Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM must be\n associated with a host), and the number of licenses purchased and used.

                          " } }, - "com.amazonaws.licensemanager#LicenseConfigurationAssociation": { + "com.amazonaws.licensemanager#CreateLicenseRequest": { "type": "structure", "members": { - "ResourceArn": { + "LicenseName": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + "smithy.api#documentation": "

                          License name.

                          ", + "smithy.api#required": {} } }, - "ResourceType": { - "target": "com.amazonaws.licensemanager#ResourceType", + "ProductName": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Type of server resource.

                          " + "smithy.api#documentation": "

                          Product name.

                          ", + "smithy.api#required": {} } }, - "ResourceOwnerId": { + "ProductSKU": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          ID of the AWS account that owns the resource consuming licenses.

                          " + "smithy.api#documentation": "

                          Product SKU.

                          ", + "smithy.api#required": {} } }, - "AssociationTime": { - "target": "com.amazonaws.licensemanager#DateTime", + "Issuer": { + "target": "com.amazonaws.licensemanager#Issuer", "traits": { - "smithy.api#documentation": "

                          Time when the license configuration was associated with the resource.

                          " + "smithy.api#documentation": "

                          License issuer.

                          ", + "smithy.api#required": {} } }, - "AmiAssociationScope": { + "HomeRegion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Home Region for the license.

                          ", + "smithy.api#required": {} + } + }, + "Validity": { + "target": "com.amazonaws.licensemanager#DatetimeRange", + "traits": { + "smithy.api#documentation": "

                          Date and time range during which the license is valid, in ISO8601-UTC format.

                          ", + "smithy.api#required": {} + } + }, + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementList", + "traits": { + "smithy.api#documentation": "

                          License entitlements.

                          ", + "smithy.api#required": {} + } + }, + "Beneficiary": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License beneficiary.

                          ", + "smithy.api#required": {} + } + }, + "ConsumptionConfiguration": { + "target": "com.amazonaws.licensemanager#ConsumptionConfiguration", + "traits": { + "smithy.api#documentation": "

                          Configuration for consumption of the license. Choose a provisional configuration for workloads\n running with continuous connectivity. Choose a borrow configuration for workloads with offline\n usage.

                          ", + "smithy.api#required": {} + } + }, + "LicenseMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          Information about the license.

                          " + } + }, + "ClientToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Scope of AMI associations.

                          " + "smithy.api#documentation": "

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

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

                          Describes an association with a license configuration.

                          " } }, - "com.amazonaws.licensemanager#LicenseConfigurationAssociations": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#LicenseConfigurationAssociation" + "com.amazonaws.licensemanager#CreateLicenseResponse": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#LicenseStatus", + "traits": { + "smithy.api#documentation": "

                          License status.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License version.

                          " + } + } } }, - "com.amazonaws.licensemanager#LicenseConfigurationStatus": { - "type": "string", + "com.amazonaws.licensemanager#CreateLicenseVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#CreateLicenseVersionRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#CreateLicenseVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#ConflictException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], "traits": { - "smithy.api#enum": [ - { - "value": "AVAILABLE", - "name": "AVAILABLE" - }, - { - "value": "DISABLED", - "name": "DISABLED" - } - ] + "smithy.api#documentation": "

                          Creates a new version of the specified license.

                          " } }, - "com.amazonaws.licensemanager#LicenseConfigurationUsage": { + "com.amazonaws.licensemanager#CreateLicenseVersionRequest": { "type": "structure", "members": { - "ResourceArn": { - "target": "com.amazonaws.licensemanager#String", + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          ", + "smithy.api#required": {} } }, - "ResourceType": { - "target": "com.amazonaws.licensemanager#ResourceType", + "LicenseName": { + "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Type of resource.

                          " + "smithy.api#documentation": "

                          License name.

                          ", + "smithy.api#required": {} } }, - "ResourceStatus": { + "ProductName": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Status of the resource.

                          " + "smithy.api#documentation": "

                          Product name.

                          ", + "smithy.api#required": {} } }, - "ResourceOwnerId": { + "Issuer": { + "target": "com.amazonaws.licensemanager#Issuer", + "traits": { + "smithy.api#documentation": "

                          License issuer.

                          ", + "smithy.api#required": {} + } + }, + "HomeRegion": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          ID of the account that owns the resource.

                          " + "smithy.api#documentation": "

                          Home Region of the license.

                          ", + "smithy.api#required": {} } }, - "AssociationTime": { - "target": "com.amazonaws.licensemanager#DateTime", + "Validity": { + "target": "com.amazonaws.licensemanager#DatetimeRange", "traits": { - "smithy.api#documentation": "

                          Time when the license configuration was initially associated with the resource.

                          " + "smithy.api#documentation": "

                          Date and time range during which the license is valid, in ISO8601-UTC format.

                          ", + "smithy.api#required": {} } }, - "ConsumedLicenses": { - "target": "com.amazonaws.licensemanager#BoxLong", + "LicenseMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", "traits": { - "smithy.api#documentation": "

                          Number of licenses consumed by the resource.

                          " + "smithy.api#documentation": "

                          Information about the license.

                          " + } + }, + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementList", + "traits": { + "smithy.api#documentation": "

                          License entitlements.

                          ", + "smithy.api#required": {} + } + }, + "ConsumptionConfiguration": { + "target": "com.amazonaws.licensemanager#ConsumptionConfiguration", + "traits": { + "smithy.api#documentation": "

                          Configuration for consumption of the license. Choose a provisional configuration for workloads\n running with continuous connectivity. Choose a borrow configuration for workloads with offline\n usage.

                          ", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#LicenseStatus", + "traits": { + "smithy.api#documentation": "

                          License status.

                          ", + "smithy.api#required": {} + } + }, + "ClientToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          ", + "smithy.api#required": {} + } + }, + "SourceVersion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Current version of the license.

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

                          Details about the usage of a resource associated with a license configuration.

                          " - } - }, - "com.amazonaws.licensemanager#LicenseConfigurationUsageList": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#LicenseConfigurationUsage" } }, - "com.amazonaws.licensemanager#LicenseConfigurations": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#LicenseConfiguration" + "com.amazonaws.licensemanager#CreateLicenseVersionResponse": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          License ARN.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          New version of the license.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#LicenseStatus", + "traits": { + "smithy.api#documentation": "

                          License status.

                          " + } + } } }, - "com.amazonaws.licensemanager#LicenseCountingType": { - "type": "string", + "com.amazonaws.licensemanager#CreateToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#CreateTokenRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#CreateTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], "traits": { - "smithy.api#enum": [ - { - "value": "vCPU", - "name": "VCPU" - }, - { - "value": "Instance", - "name": "INSTANCE" - }, - { - "value": "Core", - "name": "CORE" - }, - { - "value": "Socket", - "name": "SOCKET" - } - ] + "smithy.api#documentation": "

                          Creates a long-lived token.

                          \n

                          A refresh token is a JWT token used to get an access token. With an access token,\n you can call AssumeRoleWithWebIdentity to get role credentials that you can use to \n call License Manager to manage the specified license.

                          " } }, - "com.amazonaws.licensemanager#LicenseOperationFailure": { + "com.amazonaws.licensemanager#CreateTokenRequest": { "type": "structure", "members": { - "ResourceArn": { - "target": "com.amazonaws.licensemanager#String", + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud claim of the\n JWT token.

                          ", + "smithy.api#required": {} } }, - "ResourceType": { - "target": "com.amazonaws.licensemanager#ResourceType", + "RoleArns": { + "target": "com.amazonaws.licensemanager#ArnList", "traits": { - "smithy.api#documentation": "

                          Resource type.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the IAM roles to embed in the token. \n License Manager does not check whether the roles are in use.

                          " } }, - "ErrorMessage": { - "target": "com.amazonaws.licensemanager#String", + "ExpirationInDays": { + "target": "com.amazonaws.licensemanager#Integer", "traits": { - "smithy.api#documentation": "

                          Error message.

                          " + "smithy.api#documentation": "

                          Token expiration, in days, counted from token creation. The default is 365 days.

                          " } }, - "FailureTime": { - "target": "com.amazonaws.licensemanager#DateTime", + "TokenProperties": { + "target": "com.amazonaws.licensemanager#MaxSize3StringList", "traits": { - "smithy.api#documentation": "

                          Failure time.

                          " + "smithy.api#documentation": "

                          Data specified by the caller to be included in the JWT token. The data is mapped\n to the amr claim of the JWT token.

                          " } }, - "OperationName": { + "ClientToken": { + "target": "com.amazonaws.licensemanager#IdempotencyToken", + "traits": { + "smithy.api#documentation": "

                          Idempotency token, valid for 10 minutes.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#CreateTokenResponse": { + "type": "structure", + "members": { + "TokenId": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Name of the operation.

                          " + "smithy.api#documentation": "

                          Token ID.

                          " } }, - "ResourceOwnerId": { - "target": "com.amazonaws.licensemanager#String", + "TokenType": { + "target": "com.amazonaws.licensemanager#TokenType", + "traits": { + "smithy.api#documentation": "

                          Token type.

                          " + } + }, + "Token": { + "target": "com.amazonaws.licensemanager#TokenString", + "traits": { + "smithy.api#documentation": "

                          Refresh token, encoded as a JWT token.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#DateTime": { + "type": "timestamp" + }, + "com.amazonaws.licensemanager#DatetimeRange": { + "type": "structure", + "members": { + "Begin": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Start of the time range.

                          ", + "smithy.api#required": {} + } + }, + "End": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          End of the time range.

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

                          Describes a time range, in ISO8601-UTC format.

                          " + } + }, + "com.amazonaws.licensemanager#DeleteGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#DeleteGrantRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#DeleteGrantResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the specified grant.

                          " + } + }, + "com.amazonaws.licensemanager#DeleteGrantRequest": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the grant.

                          ", + "smithy.api#required": {} + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Current version of the grant.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#DeleteGrantResponse": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Grant ARN.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#DeleteLicense": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#DeleteLicenseRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#DeleteLicenseResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#ConflictException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the specified license.

                          " + } + }, + "com.amazonaws.licensemanager#DeleteLicenseConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#DeleteLicenseConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#DeleteLicenseConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the specified license configuration.

                          \n

                          You cannot delete a license configuration that is in use.

                          " + } + }, + "com.amazonaws.licensemanager#DeleteLicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          ID of the license configuration.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#DeleteLicenseConfigurationResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.licensemanager#DeleteLicenseRequest": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          ", + "smithy.api#required": {} + } + }, + "SourceVersion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Current version of the license.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#DeleteLicenseResponse": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.licensemanager#LicenseDeletionStatus", + "traits": { + "smithy.api#documentation": "

                          License status.

                          " + } + }, + "DeletionDate": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Date on which the license is deleted.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#DeleteToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#DeleteTokenRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#DeleteTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#RedirectException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the specified token. Must be called in the license home Region.

                          " + } + }, + "com.amazonaws.licensemanager#DeleteTokenRequest": { + "type": "structure", + "members": { + "TokenId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token ID.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#DeleteTokenResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.licensemanager#DigitalSignatureMethod": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "JWT_PS384", + "name": "JWT_PS384" + } + ] + } + }, + "com.amazonaws.licensemanager#Entitlement": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Entitlement name.

                          ", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Entitlement resource. Use only if the unit is None.

                          " + } + }, + "MaxCount": { + "target": "com.amazonaws.licensemanager#Long", + "traits": { + "smithy.api#documentation": "

                          Maximum entitlement count. Use if the unit is not None.

                          " + } + }, + "Overage": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether overages are allowed.

                          " + } + }, + "Unit": { + "target": "com.amazonaws.licensemanager#EntitlementUnit", + "traits": { + "smithy.api#documentation": "

                          Entitlement unit.

                          ", + "smithy.api#required": {} + } + }, + "AllowCheckIn": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether check-ins are allowed.

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

                          Describes a resource entitled for use with a license.

                          " + } + }, + "com.amazonaws.licensemanager#EntitlementData": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Entitlement data name.

                          ", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Entitlement data value.

                          " + } + }, + "Unit": { + "target": "com.amazonaws.licensemanager#EntitlementDataUnit", + "traits": { + "smithy.api#documentation": "

                          Entitlement data unit.

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

                          Data associated with an entitlement resource.

                          " + } + }, + "com.amazonaws.licensemanager#EntitlementDataList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#EntitlementData" + } + }, + "com.amazonaws.licensemanager#EntitlementDataUnit": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Count", + "name": "COUNT" + }, + { + "value": "None", + "name": "NONE" + }, + { + "value": "Seconds", + "name": "SECONDS" + }, + { + "value": "Microseconds", + "name": "MICROSECONDS" + }, + { + "value": "Milliseconds", + "name": "MILLISECONDS" + }, + { + "value": "Bytes", + "name": "BYTES" + }, + { + "value": "Kilobytes", + "name": "KILOBYTES" + }, + { + "value": "Megabytes", + "name": "MEGABYTES" + }, + { + "value": "Gigabytes", + "name": "GIGABYTES" + }, + { + "value": "Terabytes", + "name": "TERABYTES" + }, + { + "value": "Bits", + "name": "BITS" + }, + { + "value": "Kilobits", + "name": "KILOBITS" + }, + { + "value": "Megabits", + "name": "MEGABITS" + }, + { + "value": "Gigabits", + "name": "GIGABITS" + }, + { + "value": "Terabits", + "name": "TERABITS" + }, + { + "value": "Percent", + "name": "PERCENT" + }, + { + "value": "Bytes/Second", + "name": "BYTES_PER_SECOND" + }, + { + "value": "Kilobytes/Second", + "name": "KILOBYTES_PER_SECOND" + }, + { + "value": "Megabytes/Second", + "name": "MEGABYTES_PER_SECOND" + }, + { + "value": "Gigabytes/Second", + "name": "GIGABYTES_PER_SECOND" + }, + { + "value": "Terabytes/Second", + "name": "TERABYTES_PER_SECOND" + }, + { + "value": "Bits/Second", + "name": "BITS_PER_SECOND" + }, + { + "value": "Kilobits/Second", + "name": "KILOBITS_PER_SECOND" + }, + { + "value": "Megabits/Second", + "name": "MEGABITS_PER_SECOND" + }, + { + "value": "Gigabits/Second", + "name": "GIGABITS_PER_SECOND" + }, + { + "value": "Terabits/Second", + "name": "TERABITS_PER_SECOND" + }, + { + "value": "Count/Second", + "name": "COUNT_PER_SECOND" + } + ] + } + }, + "com.amazonaws.licensemanager#EntitlementList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Entitlement" + } + }, + "com.amazonaws.licensemanager#EntitlementNotAllowedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The entitlement is not allowed.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.licensemanager#EntitlementUnit": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Count", + "name": "COUNT" + }, + { + "value": "None", + "name": "NONE" + }, + { + "value": "Seconds", + "name": "SECONDS" + }, + { + "value": "Microseconds", + "name": "MICROSECONDS" + }, + { + "value": "Milliseconds", + "name": "MILLISECONDS" + }, + { + "value": "Bytes", + "name": "BYTES" + }, + { + "value": "Kilobytes", + "name": "KILOBYTES" + }, + { + "value": "Megabytes", + "name": "MEGABYTES" + }, + { + "value": "Gigabytes", + "name": "GIGABYTES" + }, + { + "value": "Terabytes", + "name": "TERABYTES" + }, + { + "value": "Bits", + "name": "BITS" + }, + { + "value": "Kilobits", + "name": "KILOBITS" + }, + { + "value": "Megabits", + "name": "MEGABITS" + }, + { + "value": "Gigabits", + "name": "GIGABITS" + }, + { + "value": "Terabits", + "name": "TERABITS" + }, + { + "value": "Percent", + "name": "PERCENT" + }, + { + "value": "Bytes/Second", + "name": "BYTES_PER_SECOND" + }, + { + "value": "Kilobytes/Second", + "name": "KILOBYTES_PER_SECOND" + }, + { + "value": "Megabytes/Second", + "name": "MEGABYTES_PER_SECOND" + }, + { + "value": "Gigabytes/Second", + "name": "GIGABYTES_PER_SECOND" + }, + { + "value": "Terabytes/Second", + "name": "TERABYTES_PER_SECOND" + }, + { + "value": "Bits/Second", + "name": "BITS_PER_SECOND" + }, + { + "value": "Kilobits/Second", + "name": "KILOBITS_PER_SECOND" + }, + { + "value": "Megabits/Second", + "name": "MEGABITS_PER_SECOND" + }, + { + "value": "Gigabits/Second", + "name": "GIGABITS_PER_SECOND" + }, + { + "value": "Terabits/Second", + "name": "TERABITS_PER_SECOND" + }, + { + "value": "Count/Second", + "name": "COUNT_PER_SECOND" + } + ] + } + }, + "com.amazonaws.licensemanager#EntitlementUsage": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Entitlement usage name.

                          ", + "smithy.api#required": {} + } + }, + "ConsumedValue": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Resource usage consumed.

                          ", + "smithy.api#required": {} + } + }, + "MaxCount": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Maximum entitlement usage count.

                          " + } + }, + "Unit": { + "target": "com.amazonaws.licensemanager#EntitlementDataUnit", + "traits": { + "smithy.api#documentation": "

                          Entitlement usage unit.

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

                          Usage associated with an entitlement resource.

                          " + } + }, + "com.amazonaws.licensemanager#EntitlementUsageList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#EntitlementUsage" + } + }, + "com.amazonaws.licensemanager#ExtendLicenseConsumption": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ExtendLicenseConsumptionRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ExtendLicenseConsumptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Extends the expiration date for license consumption.

                          " + } + }, + "com.amazonaws.licensemanager#ExtendLicenseConsumptionRequest": { + "type": "structure", + "members": { + "LicenseConsumptionToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License consumption token.

                          ", + "smithy.api#required": {} + } + }, + "DryRun": { + "target": "com.amazonaws.licensemanager#Boolean", + "traits": { + "smithy.api#documentation": "

                          Checks whether you have the required permissions for the action, without actually making the request. Provides an error response if you do not have the required permissions.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ExtendLicenseConsumptionResponse": { + "type": "structure", + "members": { + "LicenseConsumptionToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License consumption token.

                          " + } + }, + "Expiration": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Date and time at which the license consumption expires.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#FailedDependencyException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + }, + "ErrorCode": { + "target": "com.amazonaws.licensemanager#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          A dependency required to run the API is missing.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 424 + } + }, + "com.amazonaws.licensemanager#Filter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#FilterName", + "traits": { + "smithy.api#documentation": "

                          Name of the filter. Filter names are case-sensitive.

                          " + } + }, + "Values": { + "target": "com.amazonaws.licensemanager#FilterValues", + "traits": { + "smithy.api#documentation": "

                          Filter values. Filter values are case-sensitive.

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

                          A filter name and value pair that is used to return more specific results from a\n describe operation. Filters can be used to match a set of resources by specific criteria,\n such as tags, attributes, or IDs.

                          " + } + }, + "com.amazonaws.licensemanager#FilterLimitExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The request uses too many filters or too many filter values.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.licensemanager#FilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Filter" + } + }, + "com.amazonaws.licensemanager#FilterName": { + "type": "string" + }, + "com.amazonaws.licensemanager#FilterValue": { + "type": "string" + }, + "com.amazonaws.licensemanager#FilterValues": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#FilterValue", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.licensemanager#Filters": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Filter", + "traits": { + "smithy.api#xmlName": "item" + } + } + }, + "com.amazonaws.licensemanager#GetAccessToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetAccessTokenRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetAccessTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets a temporary access token to use with AssumeRoleWithWebIdentity. Access tokens\n are valid for one hour.

                          " + } + }, + "com.amazonaws.licensemanager#GetAccessTokenRequest": { + "type": "structure", + "members": { + "Token": { + "target": "com.amazonaws.licensemanager#TokenString", + "traits": { + "smithy.api#documentation": "

                          Refresh token, encoded as a JWT token.

                          ", + "smithy.api#required": {} + } + }, + "TokenProperties": { + "target": "com.amazonaws.licensemanager#MaxSize3StringList", + "traits": { + "smithy.api#documentation": "

                          Token properties to validate against those present in the JWT token.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetAccessTokenResponse": { + "type": "structure", + "members": { + "AccessToken": { + "target": "com.amazonaws.licensemanager#TokenString", + "traits": { + "smithy.api#documentation": "

                          Temporary access token.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetGrantRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetGrantResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets detailed information about the specified grant.

                          " + } + }, + "com.amazonaws.licensemanager#GetGrantRequest": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the grant.

                          ", + "smithy.api#required": {} + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetGrantResponse": { + "type": "structure", + "members": { + "Grant": { + "target": "com.amazonaws.licensemanager#Grant", + "traits": { + "smithy.api#documentation": "

                          Grant details.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetLicense": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetLicenseRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetLicenseResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets detailed information about the specified license.

                          " + } + }, + "com.amazonaws.licensemanager#GetLicenseConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetLicenseConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetLicenseConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets detailed information about the specified license configuration.

                          " + } + }, + "com.amazonaws.licensemanager#GetLicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#GetLicenseConfigurationResponse": { + "type": "structure", + "members": { + "LicenseConfigurationId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Unique ID for the license configuration.

                          " + } + }, + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          " + } + }, + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Name of the license configuration.

                          " + } + }, + "Description": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Description of the license configuration.

                          " + } + }, + "LicenseCountingType": { + "target": "com.amazonaws.licensemanager#LicenseCountingType", + "traits": { + "smithy.api#documentation": "

                          Dimension on which the licenses are counted.

                          " + } + }, + "LicenseRules": { + "target": "com.amazonaws.licensemanager#StringList", + "traits": { + "smithy.api#documentation": "

                          License rules.

                          " + } + }, + "LicenseCount": { + "target": "com.amazonaws.licensemanager#BoxLong", + "traits": { + "smithy.api#documentation": "

                          Number of available licenses.

                          " + } + }, + "LicenseCountHardLimit": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Sets the number of available licenses as a hard limit.

                          " + } + }, + "ConsumedLicenses": { + "target": "com.amazonaws.licensemanager#BoxLong", + "traits": { + "smithy.api#documentation": "

                          Number of licenses assigned to resources.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License configuration status.

                          " + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Account ID of the owner of the license configuration.

                          " + } + }, + "ConsumedLicenseSummaryList": { + "target": "com.amazonaws.licensemanager#ConsumedLicenseSummaryList", + "traits": { + "smithy.api#documentation": "

                          Summaries of the licenses consumed by resources.

                          " + } + }, + "ManagedResourceSummaryList": { + "target": "com.amazonaws.licensemanager#ManagedResourceSummaryList", + "traits": { + "smithy.api#documentation": "

                          Summaries of the managed resources.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.licensemanager#TagList", + "traits": { + "smithy.api#documentation": "

                          Tags for the license configuration.

                          " + } + }, + "ProductInformationList": { + "target": "com.amazonaws.licensemanager#ProductInformationList", + "traits": { + "smithy.api#documentation": "

                          Product information.

                          " + } + }, + "AutomatedDiscoveryInformation": { + "target": "com.amazonaws.licensemanager#AutomatedDiscoveryInformation", + "traits": { + "smithy.api#documentation": "

                          Automated discovery information.

                          " + } + }, + "DisassociateWhenNotFound": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          When true, disassociates a resource when software is uninstalled.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetLicenseRequest": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          ", + "smithy.api#required": {} + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License version.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetLicenseResponse": { + "type": "structure", + "members": { + "License": { + "target": "com.amazonaws.licensemanager#License", + "traits": { + "smithy.api#documentation": "

                          License details.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetLicenseUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetLicenseUsageRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetLicenseUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets detailed information about the usage of the specified license.

                          " + } + }, + "com.amazonaws.licensemanager#GetLicenseUsageRequest": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#GetLicenseUsageResponse": { + "type": "structure", + "members": { + "LicenseUsage": { + "target": "com.amazonaws.licensemanager#LicenseUsage", + "traits": { + "smithy.api#documentation": "

                          License usage details.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#GetServiceSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#GetServiceSettingsRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#GetServiceSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets the License Manager settings for the current Region.

                          " + } + }, + "com.amazonaws.licensemanager#GetServiceSettingsRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.licensemanager#GetServiceSettingsResponse": { + "type": "structure", + "members": { + "S3BucketArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Regional S3 bucket path for storing reports, license trail event data, discovery data,\n and so on.

                          " + } + }, + "SnsTopicArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          SNS topic configured to receive notifications from License Manager.

                          " + } + }, + "OrganizationConfiguration": { + "target": "com.amazonaws.licensemanager#OrganizationConfiguration", + "traits": { + "smithy.api#documentation": "

                          Indicates whether AWS Organizations is integrated with License Manager for\n cross-account discovery.

                          " + } + }, + "EnableCrossAccountsDiscovery": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Indicates whether cross-account discovery is enabled.

                          " + } + }, + "LicenseManagerResourceShareArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the AWS resource share. The License Manager master account will provide member\n accounts with access to this share.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#Grant": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the grant.

                          ", + "smithy.api#required": {} + } + }, + "GrantName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant name.

                          ", + "smithy.api#required": {} + } + }, + "ParentArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Parent ARN.

                          ", + "smithy.api#required": {} + } + }, + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          License ARN.

                          ", + "smithy.api#required": {} + } + }, + "GranteePrincipalArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          The grantee principal ARN.

                          ", + "smithy.api#required": {} + } + }, + "HomeRegion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Home Region of the grant.

                          ", + "smithy.api#required": {} + } + }, + "GrantStatus": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          ", + "smithy.api#required": {} + } + }, + "StatusReason": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant status reason.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

                          ", + "smithy.api#required": {} + } + }, + "GrantedOperations": { + "target": "com.amazonaws.licensemanager#AllowedOperationList", + "traits": { + "smithy.api#documentation": "

                          Granted operations.

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

                          Describes a grant.

                          " + } + }, + "com.amazonaws.licensemanager#GrantList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Grant" + } + }, + "com.amazonaws.licensemanager#GrantStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING_WORKFLOW", + "name": "PENDING_WORKFLOW" + }, + { + "value": "PENDING_ACCEPT", + "name": "PENDING_ACCEPT" + }, + { + "value": "REJECTED", + "name": "REJECTED" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "FAILED_WORKFLOW", + "name": "FAILED_WORKFLOW" + }, + { + "value": "DELETED", + "name": "DELETED" + }, + { + "value": "PENDING_DELETE", + "name": "PENDING_DELETE" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.licensemanager#GrantedLicense": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          " + } + }, + "LicenseName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License name.

                          " + } + }, + "ProductName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Product name.

                          " + } + }, + "ProductSKU": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Product SKU.

                          " + } + }, + "Issuer": { + "target": "com.amazonaws.licensemanager#IssuerDetails", + "traits": { + "smithy.api#documentation": "

                          Granted license issuer.

                          " + } + }, + "HomeRegion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Home Region of the granted license.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#LicenseStatus", + "traits": { + "smithy.api#documentation": "

                          Granted license status.

                          " + } + }, + "Validity": { + "target": "com.amazonaws.licensemanager#DatetimeRange", + "traits": { + "smithy.api#documentation": "

                          Date and time range during which the granted license is valid, in ISO8601-UTC format.

                          " + } + }, + "Beneficiary": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Granted license beneficiary.

                          " + } + }, + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementList", + "traits": { + "smithy.api#documentation": "

                          License entitlements.

                          " + } + }, + "ConsumptionConfiguration": { + "target": "com.amazonaws.licensemanager#ConsumptionConfiguration", + "traits": { + "smithy.api#documentation": "

                          Configuration for consumption of the license.

                          " + } + }, + "LicenseMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          Granted license metadata.

                          " + } + }, + "CreateTime": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Creation time of the granted license.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Version of the granted license.

                          " + } + }, + "ReceivedMetadata": { + "target": "com.amazonaws.licensemanager#ReceivedMetadata", + "traits": { + "smithy.api#documentation": "

                          Granted license received metadata.

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

                          Describes a license that is granted to a grantee.

                          " + } + }, + "com.amazonaws.licensemanager#GrantedLicenseList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#GrantedLicense" + } + }, + "com.amazonaws.licensemanager#ISO8601DateTime": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#pattern": "^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-](?:2[ 0-3]|[0-1][0-9]):[0-5][0-9])+$" + } + }, + "com.amazonaws.licensemanager#IdempotencyToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 60 + }, + "smithy.api#pattern": "\\S+" + } + }, + "com.amazonaws.licensemanager#Integer": { + "type": "integer", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.licensemanager#InvalidParameterValueException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          One or more parameter values are not valid.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.licensemanager#InvalidResourceStateException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          License Manager cannot allocate a license to a resource because of its state.

                          \n

                          For example, you cannot allocate a license to an instance in the process of shutting\n down.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.licensemanager#InventoryFilter": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Name of the filter.

                          ", + "smithy.api#required": {} + } + }, + "Condition": { + "target": "com.amazonaws.licensemanager#InventoryFilterCondition", + "traits": { + "smithy.api#documentation": "

                          Condition of the filter.

                          ", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Value of the filter.

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

                          An inventory filter.

                          " + } + }, + "com.amazonaws.licensemanager#InventoryFilterCondition": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "EQUALS", + "name": "EQUALS" + }, + { + "value": "NOT_EQUALS", + "name": "NOT_EQUALS" + }, + { + "value": "BEGINS_WITH", + "name": "BEGINS_WITH" + }, + { + "value": "CONTAINS", + "name": "CONTAINS" + } + ] + } + }, + "com.amazonaws.licensemanager#InventoryFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#InventoryFilter" + } + }, + "com.amazonaws.licensemanager#Issuer": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Issuer name.

                          ", + "smithy.api#required": {} + } + }, + "SignKey": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, \n and support the RSASSA-PSS SHA-256 signing algorithm.

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

                          Details about the issuer of a license.

                          " + } + }, + "com.amazonaws.licensemanager#IssuerDetails": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Issuer name.

                          " + } + }, + "SignKey": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, \n and support the RSASSA-PSS SHA-256 signing algorithm.

                          " + } + }, + "KeyFingerprint": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Issuer key fingerprint.

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

                          Details associated with the issuer of a license.

                          " + } + }, + "com.amazonaws.licensemanager#License": { + "type": "structure", + "members": { + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          " + } + }, + "LicenseName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License name.

                          " + } + }, + "ProductName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Product name.

                          " + } + }, + "ProductSKU": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Product SKU.

                          " + } + }, + "Issuer": { + "target": "com.amazonaws.licensemanager#IssuerDetails", + "traits": { + "smithy.api#documentation": "

                          License issuer.

                          " + } + }, + "HomeRegion": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Home Region of the license.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#LicenseStatus", + "traits": { + "smithy.api#documentation": "

                          License status.

                          " + } + }, + "Validity": { + "target": "com.amazonaws.licensemanager#DatetimeRange", + "traits": { + "smithy.api#documentation": "

                          Date and time range during which the license is valid, in ISO8601-UTC format.

                          " + } + }, + "Beneficiary": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License beneficiary.

                          " + } + }, + "Entitlements": { + "target": "com.amazonaws.licensemanager#EntitlementList", + "traits": { + "smithy.api#documentation": "

                          License entitlements.

                          " + } + }, + "ConsumptionConfiguration": { + "target": "com.amazonaws.licensemanager#ConsumptionConfiguration", + "traits": { + "smithy.api#documentation": "

                          Configuration for consumption of the license.

                          " + } + }, + "LicenseMetadata": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          License metadata.

                          " + } + }, + "CreateTime": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          License creation time.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          License version.

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

                          Software license that is managed in AWS License Manager.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseConfiguration": { + "type": "structure", + "members": { + "LicenseConfigurationId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Unique ID of the license configuration.

                          " + } + }, + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          " + } + }, + "Name": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Name of the license configuration.

                          " + } + }, + "Description": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Description of the license configuration.

                          " + } + }, + "LicenseCountingType": { + "target": "com.amazonaws.licensemanager#LicenseCountingType", + "traits": { + "smithy.api#documentation": "

                          Dimension to use to track the license inventory.

                          " + } + }, + "LicenseRules": { + "target": "com.amazonaws.licensemanager#StringList", + "traits": { + "smithy.api#documentation": "

                          License rules.

                          " + } + }, + "LicenseCount": { + "target": "com.amazonaws.licensemanager#BoxLong", + "traits": { + "smithy.api#documentation": "

                          Number of licenses managed by the license configuration.

                          " + } + }, + "LicenseCountHardLimit": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          Number of available licenses as a hard limit.

                          " + } + }, + "DisassociateWhenNotFound": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          When true, disassociates a resource when software is uninstalled.

                          " + } + }, + "ConsumedLicenses": { + "target": "com.amazonaws.licensemanager#BoxLong", + "traits": { + "smithy.api#documentation": "

                          Number of licenses consumed.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Status of the license configuration.

                          " + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Account ID of the license configuration's owner.

                          " + } + }, + "ConsumedLicenseSummaryList": { + "target": "com.amazonaws.licensemanager#ConsumedLicenseSummaryList", + "traits": { + "smithy.api#documentation": "

                          Summaries for licenses consumed by various resources.

                          " + } + }, + "ManagedResourceSummaryList": { + "target": "com.amazonaws.licensemanager#ManagedResourceSummaryList", + "traits": { + "smithy.api#documentation": "

                          Summaries for managed resources.

                          " + } + }, + "ProductInformationList": { + "target": "com.amazonaws.licensemanager#ProductInformationList", + "traits": { + "smithy.api#documentation": "

                          Product information.

                          " + } + }, + "AutomatedDiscoveryInformation": { + "target": "com.amazonaws.licensemanager#AutomatedDiscoveryInformation", + "traits": { + "smithy.api#documentation": "

                          Automated discovery information.

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

                          A license configuration is an abstraction of a customer license agreement that can be\n consumed and enforced by License Manager. Components include specifications for the license\n type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, \n Dedicated Instance, Dedicated Host, or all of these), host affinity (how long a VM\n must be associated with a host), and the number of licenses purchased and used.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseConfigurationAssociation": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + } + }, + "ResourceType": { + "target": "com.amazonaws.licensemanager#ResourceType", + "traits": { + "smithy.api#documentation": "

                          Type of server resource.

                          " + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          ID of the AWS account that owns the resource consuming licenses.

                          " + } + }, + "AssociationTime": { + "target": "com.amazonaws.licensemanager#DateTime", + "traits": { + "smithy.api#documentation": "

                          Time when the license configuration was associated with the resource.

                          " + } + }, + "AmiAssociationScope": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Scope of AMI associations. The possible value is cross-account.

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

                          Describes an association with a license configuration.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseConfigurationAssociations": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#LicenseConfigurationAssociation" + } + }, + "com.amazonaws.licensemanager#LicenseConfigurationStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AVAILABLE", + "name": "AVAILABLE" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.licensemanager#LicenseConfigurationUsage": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + } + }, + "ResourceType": { + "target": "com.amazonaws.licensemanager#ResourceType", + "traits": { + "smithy.api#documentation": "

                          Type of resource.

                          " + } + }, + "ResourceStatus": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Status of the resource.

                          " + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          ID of the account that owns the resource.

                          " + } + }, + "AssociationTime": { + "target": "com.amazonaws.licensemanager#DateTime", + "traits": { + "smithy.api#documentation": "

                          Time when the license configuration was initially associated with the resource.

                          " + } + }, + "ConsumedLicenses": { + "target": "com.amazonaws.licensemanager#BoxLong", + "traits": { + "smithy.api#documentation": "

                          Number of licenses consumed by the resource.

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

                          Details about the usage of a resource associated with a license configuration.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseConfigurationUsageList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#LicenseConfigurationUsage" + } + }, + "com.amazonaws.licensemanager#LicenseConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#LicenseConfiguration" + } + }, + "com.amazonaws.licensemanager#LicenseCountingType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "vCPU", + "name": "VCPU" + }, + { + "value": "Instance", + "name": "INSTANCE" + }, + { + "value": "Core", + "name": "CORE" + }, + { + "value": "Socket", + "name": "SOCKET" + } + ] + } + }, + "com.amazonaws.licensemanager#LicenseDeletionStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING_DELETE", + "name": "PENDING_DELETE" + }, + { + "value": "DELETED", + "name": "DELETED" + } + ] + } + }, + "com.amazonaws.licensemanager#LicenseList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#License" + } + }, + "com.amazonaws.licensemanager#LicenseOperationFailure": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the resource.

                          " + } + }, + "ResourceType": { + "target": "com.amazonaws.licensemanager#ResourceType", + "traits": { + "smithy.api#documentation": "

                          Resource type.

                          " + } + }, + "ErrorMessage": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Error message.

                          " + } + }, + "FailureTime": { + "target": "com.amazonaws.licensemanager#DateTime", + "traits": { + "smithy.api#documentation": "

                          Failure time.

                          " + } + }, + "OperationName": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Name of the operation.

                          " + } + }, + "ResourceOwnerId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          ID of the AWS account that owns the resource.

                          " + } + }, + "OperationRequestedBy": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          The requester is \"License Manager Automated Discovery\".

                          " + } + }, + "MetadataList": { + "target": "com.amazonaws.licensemanager#MetadataList", + "traits": { + "smithy.api#documentation": "

                          Reserved.

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

                          Describes the failure of a license operation.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseOperationFailureList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#LicenseOperationFailure" + } + }, + "com.amazonaws.licensemanager#LicenseSpecification": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

                          ", + "smithy.api#required": {} + } + }, + "AmiAssociationScope": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Scope of AMI associations. The possible value is cross-account.

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

                          Details for associating a license configuration with a resource.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseSpecifications": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#LicenseSpecification" + } + }, + "com.amazonaws.licensemanager#LicenseStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AVAILABLE", + "name": "AVAILABLE" + }, + { + "value": "PENDING_AVAILABLE", + "name": "PENDING_AVAILABLE" + }, + { + "value": "DEACTIVATED", + "name": "DEACTIVATED" + }, + { + "value": "SUSPENDED", + "name": "SUSPENDED" + }, + { + "value": "EXPIRED", + "name": "EXPIRED" + }, + { + "value": "PENDING_DELETE", + "name": "PENDING_DELETE" + }, + { + "value": "DELETED", + "name": "DELETED" + } + ] + } + }, + "com.amazonaws.licensemanager#LicenseUsage": { + "type": "structure", + "members": { + "EntitlementUsages": { + "target": "com.amazonaws.licensemanager#EntitlementUsageList", + "traits": { + "smithy.api#documentation": "

                          License entitlement usages.

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

                          Describes the entitlement usage associated with a license.

                          " + } + }, + "com.amazonaws.licensemanager#LicenseUsageException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          You do not have enough licenses available to support a new resource launch.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 412 + } + }, + "com.amazonaws.licensemanager#ListAssociationsForLicenseConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#FilterLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the resource associations for the specified license configuration.

                          \n

                          Resource associations need not consume licenses from a license configuration. \n For example, an AMI or a stopped instance might not consume a license (depending on \n the license rules).

                          " + } + }, + "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of a license configuration.

                          ", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationResponse": { + "type": "structure", + "members": { + "LicenseConfigurationAssociations": { + "target": "com.amazonaws.licensemanager#LicenseConfigurationAssociations", + "traits": { + "smithy.api#documentation": "

                          Information about the associations for the license configuration.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListDistributedGrants": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListDistributedGrantsRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListDistributedGrantsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the grants distributed for the specified license.

                          " + } + }, + "com.amazonaws.licensemanager#ListDistributedGrantsRequest": { + "type": "structure", + "members": { + "GrantArns": { + "target": "com.amazonaws.licensemanager#ArnList", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Names (ARNs) of the grants.

                          " + } + }, + "Filters": { + "target": "com.amazonaws.licensemanager#FilterList", + "traits": { + "smithy.api#documentation": "

                          Filters to scope the results. The following filters are supported:

                          \n
                            \n
                          • \n

                            \n LicenseARN\n

                            \n
                          • \n
                          • \n

                            \n Status\n

                            \n
                          • \n
                          • \n

                            \n PrincipalARN\n

                            \n
                          • \n
                          • \n

                            \n ParentARN\n

                            \n
                          • \n
                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListDistributedGrantsResponse": { + "type": "structure", + "members": { + "Grants": { + "target": "com.amazonaws.licensemanager#GrantList", + "traits": { + "smithy.api#documentation": "

                          Distributed grant details.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperations": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the license configuration operations that failed.

                          " + } + }, + "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name of the license configuration.

                          ", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsResponse": { + "type": "structure", + "members": { + "LicenseOperationFailureList": { + "target": "com.amazonaws.licensemanager#LicenseOperationFailureList", + "traits": { + "smithy.api#documentation": "

                          License configuration operations that failed.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListLicenseConfigurations": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListLicenseConfigurationsRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListLicenseConfigurationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#FilterLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists the license configurations for your account.

                          " + } + }, + "com.amazonaws.licensemanager#ListLicenseConfigurationsRequest": { + "type": "structure", + "members": { + "LicenseConfigurationArns": { + "target": "com.amazonaws.licensemanager#StringList", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Names (ARN) of the license configurations.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + }, + "Filters": { + "target": "com.amazonaws.licensemanager#Filters", + "traits": { + "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators\n are supported:

                          \n
                            \n
                          • \n

                            \n licenseCountingType - The dimension on which licenses are counted.\n Possible values are vCPU | Instance | Core | Socket.\n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n enforceLicenseCount - A Boolean value that indicates whether hard license enforcement is used. \n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n usagelimitExceeded - A Boolean value that indicates whether the available licenses have been exceeded. \n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListLicenseConfigurationsResponse": { + "type": "structure", + "members": { + "LicenseConfigurations": { + "target": "com.amazonaws.licensemanager#LicenseConfigurations", "traits": { - "smithy.api#documentation": "

                          ID of the AWS account that owns the resource.

                          " + "smithy.api#documentation": "

                          Information about the license configurations.

                          " } }, - "OperationRequestedBy": { + "NextToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          The requester is \"License Manager Automated Discovery\".

                          " - } - }, - "MetadataList": { - "target": "com.amazonaws.licensemanager#MetadataList", - "traits": { - "smithy.api#documentation": "

                          Reserved.

                          " + "smithy.api#documentation": "

                          Token for the next set of results.

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

                          Describes the failure of a license operation.

                          " } }, - "com.amazonaws.licensemanager#LicenseOperationFailureList": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#LicenseOperationFailure" + "com.amazonaws.licensemanager#ListLicenseSpecificationsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describes the license configurations for the specified resource.

                          " } }, - "com.amazonaws.licensemanager#LicenseSpecification": { + "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceRequest": { "type": "structure", "members": { - "LicenseConfigurationArn": { + "ResourceArn": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license configuration.

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

                          Amazon Resource Name (ARN) of a resource that has an associated license configuration.

                          ", "smithy.api#required": {} } }, - "AmiAssociationScope": { + "MaxResults": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + }, + "NextToken": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Scope of AMI associations.

                          " + "smithy.api#documentation": "

                          Token for the next set of results.

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

                          Details for associating a license configuration with a resource.

                          " - } - }, - "com.amazonaws.licensemanager#LicenseSpecifications": { - "type": "list", - "member": { - "target": "com.amazonaws.licensemanager#LicenseSpecification" } }, - "com.amazonaws.licensemanager#LicenseUsageException": { + "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.licensemanager#Message" + "LicenseSpecifications": { + "target": "com.amazonaws.licensemanager#LicenseSpecifications", + "traits": { + "smithy.api#documentation": "

                          License configurations associated with a resource.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

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

                          You do not have enough licenses available to support a new resource launch.

                          ", - "smithy.api#error": "client", - "smithy.api#httpError": 412 } }, - "com.amazonaws.licensemanager#ListAssociationsForLicenseConfiguration": { + "com.amazonaws.licensemanager#ListLicenseVersions": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationRequest" + "target": "com.amazonaws.licensemanager#ListLicenseVersionsRequest" }, "output": { - "target": "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationResponse" + "target": "com.amazonaws.licensemanager#ListLicenseVersionsResponse" }, "errors": [ { @@ -1046,9 +4035,6 @@ { "target": "com.amazonaws.licensemanager#AuthorizationException" }, - { - "target": "com.amazonaws.licensemanager#FilterLimitExceededException" - }, { "target": "com.amazonaws.licensemanager#InvalidParameterValueException" }, @@ -1060,40 +4046,40 @@ } ], "traits": { - "smithy.api#documentation": "

                          Lists the resource associations for the specified license configuration.

                          \n

                          Resource associations need not consume licenses from a license configuration. For\n example, an AMI or a stopped instance might not consume a license (depending on the license\n rules).

                          " + "smithy.api#documentation": "

                          Lists all versions of the specified license.

                          " } }, - "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationRequest": { + "com.amazonaws.licensemanager#ListLicenseVersionsRequest": { "type": "structure", "members": { - "LicenseConfigurationArn": { - "target": "com.amazonaws.licensemanager#String", + "LicenseArn": { + "target": "com.amazonaws.licensemanager#Arn", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of a license configuration.

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

                          Amazon Resource Name (ARN) of the license.

                          ", "smithy.api#required": {} } }, - "MaxResults": { - "target": "com.amazonaws.licensemanager#BoxInteger", - "traits": { - "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " - } - }, "NextToken": { "target": "com.amazonaws.licensemanager#String", "traits": { "smithy.api#documentation": "

                          Token for the next set of results.

                          " } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } } } }, - "com.amazonaws.licensemanager#ListAssociationsForLicenseConfigurationResponse": { + "com.amazonaws.licensemanager#ListLicenseVersionsResponse": { "type": "structure", "members": { - "LicenseConfigurationAssociations": { - "target": "com.amazonaws.licensemanager#LicenseConfigurationAssociations", + "Licenses": { + "target": "com.amazonaws.licensemanager#LicenseList", "traits": { - "smithy.api#documentation": "

                          Information about the associations for the license configuration.

                          " + "smithy.api#documentation": "

                          License details.

                          " } }, "NextToken": { @@ -1104,13 +4090,13 @@ } } }, - "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperations": { + "com.amazonaws.licensemanager#ListLicenses": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsRequest" + "target": "com.amazonaws.licensemanager#ListLicensesRequest" }, "output": { - "target": "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsResponse" + "target": "com.amazonaws.licensemanager#ListLicensesResponse" }, "errors": [ { @@ -1127,26 +4113,28 @@ }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Lists the license configuration operations that failed.

                          " + "smithy.api#documentation": "

                          Lists the licenses for your account.

                          " } }, - "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsRequest": { + "com.amazonaws.licensemanager#ListLicensesRequest": { "type": "structure", "members": { - "LicenseConfigurationArn": { - "target": "com.amazonaws.licensemanager#String", + "LicenseArns": { + "target": "com.amazonaws.licensemanager#ArnList", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name of the license configuration.

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

                          Amazon Resource Names (ARNs) of the licenses.

                          " } }, - "MaxResults": { - "target": "com.amazonaws.licensemanager#BoxInteger", + "Filters": { + "target": "com.amazonaws.licensemanager#FilterList", "traits": { - "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + "smithy.api#documentation": "

                          Filters to scope the results. The following filters are supported:

                          \n
                            \n
                          • \n

                            \n Beneficiary\n

                            \n
                          • \n
                          • \n

                            \n ProductSKU\n

                            \n
                          • \n
                          • \n

                            \n KeyFingerprint\n

                            \n
                          • \n
                          • \n

                            \n Status\n

                            \n
                          • \n
                          " } }, "NextToken": { @@ -1154,16 +4142,22 @@ "traits": { "smithy.api#documentation": "

                          Token for the next set of results.

                          " } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } } } }, - "com.amazonaws.licensemanager#ListFailuresForLicenseConfigurationOperationsResponse": { + "com.amazonaws.licensemanager#ListLicensesResponse": { "type": "structure", "members": { - "LicenseOperationFailureList": { - "target": "com.amazonaws.licensemanager#LicenseOperationFailureList", + "Licenses": { + "target": "com.amazonaws.licensemanager#LicenseList", "traits": { - "smithy.api#documentation": "

                          License configuration operations that failed.

                          " + "smithy.api#documentation": "

                          License details.

                          " } }, "NextToken": { @@ -1174,13 +4168,13 @@ } } }, - "com.amazonaws.licensemanager#ListLicenseConfigurations": { + "com.amazonaws.licensemanager#ListReceivedGrants": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#ListLicenseConfigurationsRequest" + "target": "com.amazonaws.licensemanager#ListReceivedGrantsRequest" }, "output": { - "target": "com.amazonaws.licensemanager#ListLicenseConfigurationsResponse" + "target": "com.amazonaws.licensemanager#ListReceivedGrantsResponse" }, "errors": [ { @@ -1189,36 +4183,39 @@ { "target": "com.amazonaws.licensemanager#AuthorizationException" }, - { - "target": "com.amazonaws.licensemanager#FilterLimitExceededException" - }, { "target": "com.amazonaws.licensemanager#InvalidParameterValueException" }, { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Lists the license configurations for your account.

                          " + "smithy.api#documentation": "

                          Lists grants that are received but not accepted.

                          " } }, - "com.amazonaws.licensemanager#ListLicenseConfigurationsRequest": { + "com.amazonaws.licensemanager#ListReceivedGrantsRequest": { "type": "structure", "members": { - "LicenseConfigurationArns": { - "target": "com.amazonaws.licensemanager#StringList", + "GrantArns": { + "target": "com.amazonaws.licensemanager#ArnList", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Names (ARN) of the license configurations.

                          " + "smithy.api#documentation": "

                          Amazon Resource Names (ARNs) of the grants.

                          " } }, - "MaxResults": { - "target": "com.amazonaws.licensemanager#BoxInteger", + "Filters": { + "target": "com.amazonaws.licensemanager#FilterList", "traits": { - "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + "smithy.api#documentation": "

                          Filters to scope the results. The following filters are supported:

                          \n
                            \n
                          • \n

                            \n LicenseARN\n

                            \n
                          • \n
                          • \n

                            \n Status\n

                            \n
                          • \n
                          " } }, "NextToken": { @@ -1227,21 +4224,21 @@ "smithy.api#documentation": "

                          Token for the next set of results.

                          " } }, - "Filters": { - "target": "com.amazonaws.licensemanager#Filters", + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", "traits": { - "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators are\n supported:

                          \n
                            \n
                          • \n

                            \n licenseCountingType - The dimension on which licenses are counted.\n Possible values are vCPU | Instance | Core |\n Socket. Logical operators are EQUALS |\n NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n enforceLicenseCount - A Boolean value that indicates whether hard\n license enforcement is used. Logical operators are EQUALS |\n NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n usagelimitExceeded - A Boolean value that indicates whether the\n available licenses have been exceeded. Logical operators are EQUALS |\n NOT_EQUALS.

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " } } } }, - "com.amazonaws.licensemanager#ListLicenseConfigurationsResponse": { + "com.amazonaws.licensemanager#ListReceivedGrantsResponse": { "type": "structure", "members": { - "LicenseConfigurations": { - "target": "com.amazonaws.licensemanager#LicenseConfigurations", + "Grants": { + "target": "com.amazonaws.licensemanager#GrantList", "traits": { - "smithy.api#documentation": "

                          Information about the license configurations.

                          " + "smithy.api#documentation": "

                          Received grant details.

                          " } }, "NextToken": { @@ -1252,13 +4249,13 @@ } } }, - "com.amazonaws.licensemanager#ListLicenseSpecificationsForResource": { + "com.amazonaws.licensemanager#ListReceivedLicenses": { "type": "operation", "input": { - "target": "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceRequest" + "target": "com.amazonaws.licensemanager#ListReceivedLicensesRequest" }, "output": { - "target": "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceResponse" + "target": "com.amazonaws.licensemanager#ListReceivedLicensesResponse" }, "errors": [ { @@ -1273,28 +4270,33 @@ { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" } ], "traits": { - "smithy.api#documentation": "

                          Describes the license configurations for the specified resource.

                          " + "smithy.api#documentation": "

                          Lists received licenses.

                          " } }, - "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceRequest": { + "com.amazonaws.licensemanager#ListReceivedLicensesRequest": { "type": "structure", "members": { - "ResourceArn": { - "target": "com.amazonaws.licensemanager#String", + "LicenseArns": { + "target": "com.amazonaws.licensemanager#ArnList", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of a resource that has an associated license\n configuration.

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

                          Amazon Resource Names (ARNs) of the licenses.

                          " } }, - "MaxResults": { - "target": "com.amazonaws.licensemanager#BoxInteger", + "Filters": { + "target": "com.amazonaws.licensemanager#FilterList", "traits": { - "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + "smithy.api#documentation": "

                          Filters to scope the results. The following filters are supported:

                          \n
                            \n
                          • \n

                            \n ProductSKU\n

                            \n
                          • \n
                          • \n

                            \n Status\n

                            \n
                          • \n
                          • \n

                            \n KeyFingerprint\n

                            \n
                          • \n
                          • \n

                            \n Issuer\n

                            \n
                          • \n
                          " } }, "NextToken": { @@ -1302,16 +4304,22 @@ "traits": { "smithy.api#documentation": "

                          Token for the next set of results.

                          " } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } } } }, - "com.amazonaws.licensemanager#ListLicenseSpecificationsForResourceResponse": { + "com.amazonaws.licensemanager#ListReceivedLicensesResponse": { "type": "structure", "members": { - "LicenseSpecifications": { - "target": "com.amazonaws.licensemanager#LicenseSpecifications", + "Licenses": { + "target": "com.amazonaws.licensemanager#GrantedLicenseList", "traits": { - "smithy.api#documentation": "

                          License configurations associated with a resource.

                          " + "smithy.api#documentation": "

                          Received license details.

                          " } }, "NextToken": { @@ -1375,7 +4383,7 @@ "Filters": { "target": "com.amazonaws.licensemanager#InventoryFilterList", "traits": { - "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators are\n supported:

                          \n
                            \n
                          • \n

                            \n account_id - The ID of the AWS account that owns the resource.\n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n application_name - The name of the application. Logical operators are\n EQUALS | BEGINS_WITH.

                            \n
                          • \n
                          • \n

                            \n license_included - The type of license included. Logical operators\n are EQUALS | NOT_EQUALS. Possible values are\n sql-server-enterprise | sql-server-standard |\n sql-server-web | windows-server-datacenter.

                            \n
                          • \n
                          • \n

                            \n platform - The platform of the resource. Logical operators are\n EQUALS | BEGINS_WITH.

                            \n
                          • \n
                          • \n

                            \n resource_id - The ID of the resource. Logical operators are\n EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators\n are supported:

                          \n
                            \n
                          • \n

                            \n account_id - The ID of the AWS account that owns the resource.\n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n application_name - The name of the application. \n Logical operators are EQUALS | BEGINS_WITH.

                            \n
                          • \n
                          • \n

                            \n license_included - The type of license included. \n Logical operators are EQUALS | NOT_EQUALS.\n Possible values are sql-server-enterprise | \n sql-server-standard | \n sql-server-web | \n windows-server-datacenter.

                            \n
                          • \n
                          • \n

                            \n platform - The platform of the resource.\n Logical operators are EQUALS | BEGINS_WITH.

                            \n
                          • \n
                          • \n

                            \n resource_id - The ID of the resource. \n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n tag: - The key/value combination of a tag assigned \n to the resource. Logical operators are EQUALS (single account) or\n EQUALS | NOT_EQUALS (cross account).

                            \n
                          • \n
                          " } } } @@ -1449,6 +4457,81 @@ } } }, + "com.amazonaws.licensemanager#ListTokens": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#ListTokensRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#ListTokensResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists your tokens.

                          " + } + }, + "com.amazonaws.licensemanager#ListTokensRequest": { + "type": "structure", + "members": { + "TokenIds": { + "target": "com.amazonaws.licensemanager#StringList", + "traits": { + "smithy.api#documentation": "

                          Token IDs.

                          " + } + }, + "Filters": { + "target": "com.amazonaws.licensemanager#FilterList", + "traits": { + "smithy.api#documentation": "

                          Filters to scope the results. The following filter is supported:

                          \n
                            \n
                          • \n

                            \n licenseArns\n

                            \n
                          • \n
                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.licensemanager#MaxSize100", + "traits": { + "smithy.api#documentation": "

                          Maximum number of results to return in a single call.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#ListTokensResponse": { + "type": "structure", + "members": { + "Tokens": { + "target": "com.amazonaws.licensemanager#TokenList", + "traits": { + "smithy.api#documentation": "

                          Received token details.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token for the next set of results.

                          " + } + } + } + }, "com.amazonaws.licensemanager#ListUsageForLicenseConfiguration": { "type": "operation", "input": { @@ -1506,7 +4589,7 @@ "Filters": { "target": "com.amazonaws.licensemanager#Filters", "traits": { - "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators are\n supported:

                          \n
                            \n
                          • \n

                            \n resourceArn - The ARN of the license configuration resource. Logical\n operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI |\n SYSTEMS_MANAGER_MANAGED_INSTANCE). Logical operators are EQUALS |\n NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n resourceAccount - The ID of the account that owns the resource.\n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          Filters to scope the results. The following filters and logical operators\n are supported:

                          \n
                            \n
                          • \n

                            \n resourceArn - The ARN of the license configuration resource.\n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n resourceType - The resource type (EC2_INSTANCE | EC2_HOST | EC2_AMI | SYSTEMS_MANAGER_MANAGED_INSTANCE). \n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          • \n

                            \n resourceAccount - The ID of the account that owns the resource. \n Logical operators are EQUALS | NOT_EQUALS.

                            \n
                          • \n
                          " } } } @@ -1528,6 +4611,15 @@ } } }, + "com.amazonaws.licensemanager#Location": { + "type": "string" + }, + "com.amazonaws.licensemanager#Long": { + "type": "long", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.licensemanager#ManagedResourceSummary": { "type": "structure", "members": { @@ -1554,6 +4646,28 @@ "target": "com.amazonaws.licensemanager#ManagedResourceSummary" } }, + "com.amazonaws.licensemanager#MaxSize100": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.licensemanager#MaxSize3StringList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#String" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + }, "com.amazonaws.licensemanager#Message": { "type": "string" }, @@ -1563,18 +4677,18 @@ "Name": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Reserved.

                          " + "smithy.api#documentation": "

                          The key name.

                          " } }, "Value": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Reserved.

                          " + "smithy.api#documentation": "

                          The value.

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

                          Reserved.

                          " + "smithy.api#documentation": "

                          Describes key/value pairs.

                          " } }, "com.amazonaws.licensemanager#MetadataList": { @@ -1583,6 +4697,19 @@ "target": "com.amazonaws.licensemanager#Metadata" } }, + "com.amazonaws.licensemanager#NoEntitlementsAllowedException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          There are no entitlements found for this license, or the entitlement maximum count is reached.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.licensemanager#OrganizationConfiguration": { "type": "structure", "members": { @@ -1598,20 +4725,32 @@ "smithy.api#documentation": "

                          Configuration information for AWS Organizations.

                          " } }, + "com.amazonaws.licensemanager#PrincipalArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#Arn" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.licensemanager#ProductInformation": { "type": "structure", "members": { "ResourceType": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Resource type. The possible values are SSM_MANAGED |\n RDS.

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

                          Resource type. The possible values are SSM_MANAGED | RDS.

                          ", "smithy.api#required": {} } }, "ProductInformationFilterList": { "target": "com.amazonaws.licensemanager#ProductInformationFilterList", "traits": { - "smithy.api#documentation": "

                          Product information filters.

                          \n

                          The following filters and logical operators are supported when the resource type is\n SSM_MANAGED:

                          \n
                            \n
                          • \n

                            \n Application Name - The name of the application. Logical operator is\n EQUALS.

                            \n
                          • \n
                          • \n

                            \n Application Publisher - The publisher of the application. Logical\n operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Application Version - The version of the application. Logical\n operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Platform Name - The name of the platform. Logical operator is\n EQUALS.

                            \n
                          • \n
                          • \n

                            \n Platform Type - The platform type. Logical operator is\n EQUALS.

                            \n
                          • \n
                          • \n

                            \n License Included - The type of license included. Logical operators\n are EQUALS and NOT_EQUALS. Possible values are:\n sql-server-enterprise | sql-server-standard |\n sql-server-web | windows-server-datacenter.

                            \n
                          • \n
                          \n

                          The following filters and logical operators are supported when the resource type is\n RDS:

                          \n
                            \n
                          • \n

                            \n Engine Edition - The edition of the database engine. Logical operator\n is EQUALS. Possible values are: oracle-ee |\n oracle-se | oracle-se1 | oracle-se2.

                            \n
                          • \n
                          • \n

                            \n License Pack - The license pack. Logical operator is\n EQUALS. Possible values are: data guard |\n diagnostic pack sqlt | tuning pack sqlt |\n ols | olap.

                            \n
                          • \n
                          ", + "smithy.api#documentation": "

                          Product information filters.

                          \n

                          The following filters and logical operators are supported when the resource type \n is SSM_MANAGED:

                          \n
                            \n
                          • \n

                            \n Application Name - The name of the application.\n Logical operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Application Publisher - The publisher of the application.\n Logical operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Application Version - The version of the application.\n Logical operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Platform Name - The name of the platform.\n Logical operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n Platform Type - The platform type.\n Logical operator is EQUALS.

                            \n
                          • \n
                          • \n

                            \n License Included - The type of license included.\n Logical operators are EQUALS and NOT_EQUALS.\n Possible values are: sql-server-enterprise | \n sql-server-standard | \n sql-server-web | \n windows-server-datacenter.

                            \n
                          • \n
                          \n

                          The following filters and logical operators are supported when the resource type\n is RDS:

                          \n
                            \n
                          • \n

                            \n Engine Edition - The edition of the database engine.\n Logical operator is EQUALS.\n Possible values are: oracle-ee | oracle-se | oracle-se1 | oracle-se2.

                            \n
                          • \n
                          • \n

                            \n License Pack - The license pack.\n Logical operator is EQUALS.\n Possible values are: data guard | \n diagnostic pack sqlt | \n tuning pack sqlt | \n ols | \n olap.

                            \n
                          • \n
                          ", "smithy.api#required": {} } } @@ -1661,6 +4800,21 @@ "target": "com.amazonaws.licensemanager#ProductInformation" } }, + "com.amazonaws.licensemanager#ProvisionalConfiguration": { + "type": "structure", + "members": { + "MaxTimeToLiveInMinutes": { + "target": "com.amazonaws.licensemanager#BoxInteger", + "traits": { + "smithy.api#documentation": "

                          Maximum time for the provisional configuration, in minutes.

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

                          Details about a provisional configuration.

                          " + } + }, "com.amazonaws.licensemanager#RateLimitExceededException": { "type": "structure", "members": { @@ -1674,6 +4828,169 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.licensemanager#ReceivedMetadata": { + "type": "structure", + "members": { + "ReceivedStatus": { + "target": "com.amazonaws.licensemanager#ReceivedStatus", + "traits": { + "smithy.api#documentation": "

                          Received status.

                          " + } + }, + "AllowedOperations": { + "target": "com.amazonaws.licensemanager#AllowedOperationList", + "traits": { + "smithy.api#documentation": "

                          Allowed operations.

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

                          Metadata associated with received licenses and grants.

                          " + } + }, + "com.amazonaws.licensemanager#ReceivedStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING_WORKFLOW", + "name": "PENDING_WORKFLOW" + }, + { + "value": "PENDING_ACCEPT", + "name": "PENDING_ACCEPT" + }, + { + "value": "REJECTED", + "name": "REJECTED" + }, + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "FAILED_WORKFLOW", + "name": "FAILED_WORKFLOW" + }, + { + "value": "DELETED", + "name": "DELETED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.licensemanager#RedirectException": { + "type": "structure", + "members": { + "Location": { + "target": "com.amazonaws.licensemanager#Location", + "traits": { + "smithy.api#httpHeader": "Location" + } + }, + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          This is not the correct Region for the resource. Try again.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 308 + } + }, + "com.amazonaws.licensemanager#RejectGrant": { + "type": "operation", + "input": { + "target": "com.amazonaws.licensemanager#RejectGrantRequest" + }, + "output": { + "target": "com.amazonaws.licensemanager#RejectGrantResponse" + }, + "errors": [ + { + "target": "com.amazonaws.licensemanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.licensemanager#AuthorizationException" + }, + { + "target": "com.amazonaws.licensemanager#InvalidParameterValueException" + }, + { + "target": "com.amazonaws.licensemanager#RateLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.licensemanager#ServerInternalException" + }, + { + "target": "com.amazonaws.licensemanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Rejects the specified grant.

                          " + } + }, + "com.amazonaws.licensemanager#RejectGrantRequest": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the grant.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.licensemanager#RejectGrantResponse": { + "type": "structure", + "members": { + "GrantArn": { + "target": "com.amazonaws.licensemanager#Arn", + "traits": { + "smithy.api#documentation": "

                          Grant ARN.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#GrantStatus", + "traits": { + "smithy.api#documentation": "

                          Grant status.

                          " + } + }, + "Version": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Grant version.

                          " + } + } + } + }, + "com.amazonaws.licensemanager#RenewType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "None", + "name": "NONE" + }, + { + "value": "Weekly", + "name": "WEEKLY" + }, + { + "value": "Monthly", + "name": "MONTHLY" + } + ] + } + }, "com.amazonaws.licensemanager#ResourceInventory": { "type": "structure", "members": { @@ -1737,6 +5054,19 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.licensemanager#ResourceNotFoundException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The resource cannot be found.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.licensemanager#ResourceType": { "type": "string", "traits": { @@ -1777,6 +5107,14 @@ "smithy.api#httpError": 500 } }, + "com.amazonaws.licensemanager#SignedToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4096 + } + } + }, "com.amazonaws.licensemanager#String": { "type": "string" }, @@ -1870,6 +5208,96 @@ "type": "structure", "members": {} }, + "com.amazonaws.licensemanager#TokenData": { + "type": "structure", + "members": { + "TokenId": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token ID.

                          " + } + }, + "TokenType": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Type of token generated. The supported value is REFRESH_TOKEN.

                          " + } + }, + "LicenseArn": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the license.

                          " + } + }, + "ExpirationTime": { + "target": "com.amazonaws.licensemanager#ISO8601DateTime", + "traits": { + "smithy.api#documentation": "

                          Token expiration time, in ISO8601-UTC format.

                          " + } + }, + "TokenProperties": { + "target": "com.amazonaws.licensemanager#MaxSize3StringList", + "traits": { + "smithy.api#documentation": "

                          Data specified by the caller.

                          " + } + }, + "RoleArns": { + "target": "com.amazonaws.licensemanager#ArnList", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Names (ARN) of the roles included in the token.

                          " + } + }, + "Status": { + "target": "com.amazonaws.licensemanager#String", + "traits": { + "smithy.api#documentation": "

                          Token status. The possible values are AVAILABLE and DELETED.

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

                          Describes a token.

                          " + } + }, + "com.amazonaws.licensemanager#TokenList": { + "type": "list", + "member": { + "target": "com.amazonaws.licensemanager#TokenData" + } + }, + "com.amazonaws.licensemanager#TokenString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + }, + "smithy.api#pattern": "\\S+" + } + }, + "com.amazonaws.licensemanager#TokenType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "REFRESH_TOKEN", + "name": "REFRESH_TOKEN" + } + ] + } + }, + "com.amazonaws.licensemanager#UnsupportedDigitalSignatureMethodException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The digital signature method is unsupported. Try your request again.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.licensemanager#UntagResource": { "type": "operation", "input": { @@ -1943,6 +5371,9 @@ { "target": "com.amazonaws.licensemanager#RateLimitExceededException" }, + { + "target": "com.amazonaws.licensemanager#ResourceLimitExceededException" + }, { "target": "com.amazonaws.licensemanager#ServerInternalException" } @@ -1970,7 +5401,7 @@ "LicenseRules": { "target": "com.amazonaws.licensemanager#StringList", "traits": { - "smithy.api#documentation": "

                          New license rule. The only rule that you can add after you create a license\n configuration is licenseAffinityToHost.

                          " + "smithy.api#documentation": "

                          New license rule. The only rule that you can add after you create a license\n configuration is licenseAffinityToHost.

                          " } }, "LicenseCount": { @@ -2002,6 +5433,12 @@ "traits": { "smithy.api#documentation": "

                          New product information.

                          " } + }, + "DisassociateWhenNotFound": { + "target": "com.amazonaws.licensemanager#BoxBoolean", + "traits": { + "smithy.api#documentation": "

                          When true, disassociates a resource when software is uninstalled.

                          " + } } } }, @@ -2041,7 +5478,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Adds or removes the specified license configurations for the specified AWS\n resource.

                          \n

                          You can update the license specifications of AMIs, instances, and hosts. You cannot\n update the license specifications for launch templates and AWS CloudFormation templates, as\n they send license configurations to the operation that creates the resource.

                          " + "smithy.api#documentation": "

                          Adds or removes the specified license configurations for the specified AWS resource.

                          \n

                          You can update the license specifications of AMIs, instances, and hosts.\n You cannot update the license specifications for launch templates and AWS CloudFormation templates, \n as they send license configurations to the operation that creates the resource.

                          " } }, "com.amazonaws.licensemanager#UpdateLicenseSpecificationsForResourceRequest": { @@ -2107,7 +5544,7 @@ "S3BucketArn": { "target": "com.amazonaws.licensemanager#String", "traits": { - "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is\n stored.

                          " + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is stored.

                          " } }, "SnsTopicArn": { @@ -2133,6 +5570,19 @@ "com.amazonaws.licensemanager#UpdateServiceSettingsResponse": { "type": "structure", "members": {} + }, + "com.amazonaws.licensemanager#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.licensemanager#Message" + } + }, + "traits": { + "smithy.api#documentation": "

                          The provided input is not valid. Try your request again.

                          ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } } } } diff --git a/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json b/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json index 36569fa516536..48381cd5babe9 100644 --- a/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json +++ b/codegen/sdk-codegen/aws-models/medialive.2017-10-14.json @@ -1025,6 +1025,29 @@ "smithy.api#documentation": "Audio Selector Settings" } }, + "com.amazonaws.medialive#AudioSilenceFailoverSettings": { + "type": "structure", + "members": { + "AudioSelectorName": { + "target": "com.amazonaws.medialive#__string", + "traits": { + "smithy.api#documentation": "The name of the audio selector in the input that MediaLive should monitor to detect silence. Select your most important rendition. If you didn't create an audio selector in this input, leave blank.", + "smithy.api#jsonName": "audioSelectorName", + "smithy.api#required": {} + } + }, + "AudioSilenceThresholdMsec": { + "target": "com.amazonaws.medialive#__integerMin1000", + "traits": { + "smithy.api#documentation": "The amount of time (in milliseconds) that the active input must be silent before automatic input failover occurs. Silence is defined as audio loss or audio quieter than -50 dBFS.", + "smithy.api#jsonName": "audioSilenceThresholdMsec" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for AudioSilenceFailoverSettings" + } + }, "com.amazonaws.medialive#AudioTrack": { "type": "structure", "members": { @@ -4592,6 +4615,13 @@ "smithy.api#documentation": "The type of the input device.", "smithy.api#jsonName": "type" } + }, + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "traits": { + "smithy.api#documentation": "Settings that describe an input device that is type UHD.", + "smithy.api#jsonName": "uhdDeviceSettings" + } } }, "traits": { @@ -6710,12 +6740,26 @@ "com.amazonaws.medialive#FailoverConditionSettings": { "type": "structure", "members": { + "AudioSilenceSettings": { + "target": "com.amazonaws.medialive#AudioSilenceFailoverSettings", + "traits": { + "smithy.api#documentation": "MediaLive will perform a failover if the specified audio selector is silent for the specified period.", + "smithy.api#jsonName": "audioSilenceSettings" + } + }, "InputLossSettings": { "target": "com.amazonaws.medialive#InputLossFailoverSettings", "traits": { "smithy.api#documentation": "MediaLive will perform a failover if content is not detected in this input for the specified period.", "smithy.api#jsonName": "inputLossSettings" } + }, + "VideoBlackSettings": { + "target": "com.amazonaws.medialive#VideoBlackFailoverSettings", + "traits": { + "smithy.api#documentation": "MediaLive will perform a failover if content is considered black for the specified period.", + "smithy.api#jsonName": "videoBlackSettings" + } } }, "traits": { @@ -10278,6 +10322,13 @@ "smithy.api#documentation": "The type of the input device.", "smithy.api#jsonName": "type" } + }, + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "traits": { + "smithy.api#documentation": "Settings that describe an input device that is type UHD.", + "smithy.api#jsonName": "uhdDeviceSettings" + } } }, "traits": { @@ -10319,6 +10370,70 @@ ] } }, + "com.amazonaws.medialive#InputDeviceUhdSettings": { + "type": "structure", + "members": { + "ActiveInput": { + "target": "com.amazonaws.medialive#InputDeviceActiveInput", + "traits": { + "smithy.api#documentation": "If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).", + "smithy.api#jsonName": "activeInput" + } + }, + "ConfiguredInput": { + "target": "com.amazonaws.medialive#InputDeviceConfiguredInput", + "traits": { + "smithy.api#documentation": "The source at the input device that is currently active. You can specify this source.", + "smithy.api#jsonName": "configuredInput" + } + }, + "DeviceState": { + "target": "com.amazonaws.medialive#InputDeviceState", + "traits": { + "smithy.api#documentation": "The state of the input device.", + "smithy.api#jsonName": "deviceState" + } + }, + "Framerate": { + "target": "com.amazonaws.medialive#__double", + "traits": { + "smithy.api#documentation": "The frame rate of the video source.", + "smithy.api#jsonName": "framerate" + } + }, + "Height": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The height of the video source, in pixels.", + "smithy.api#jsonName": "height" + } + }, + "MaxBitrate": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.", + "smithy.api#jsonName": "maxBitrate" + } + }, + "ScanType": { + "target": "com.amazonaws.medialive#InputDeviceScanType", + "traits": { + "smithy.api#documentation": "The scan type of the video source.", + "smithy.api#jsonName": "scanType" + } + }, + "Width": { + "target": "com.amazonaws.medialive#__integer", + "traits": { + "smithy.api#documentation": "The width of the video source, in pixels.", + "smithy.api#jsonName": "width" + } + } + }, + "traits": { + "smithy.api#documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." + } + }, "com.amazonaws.medialive#InputFilter": { "type": "string", "traits": { @@ -18031,7 +18146,7 @@ "HdDeviceSettings": { "target": "com.amazonaws.medialive#InputDeviceConfigurableSettings", "traits": { - "smithy.api#documentation": "The settings that you want to apply to the input device.", + "smithy.api#documentation": "The settings that you want to apply to the HD input device.", "smithy.api#jsonName": "hdDeviceSettings" } }, @@ -18049,6 +18164,13 @@ "smithy.api#documentation": "The name that you assigned to this input device (not the unique ID).", "smithy.api#jsonName": "name" } + }, + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceConfigurableSettings", + "traits": { + "smithy.api#documentation": "The settings that you want to apply to the UHD input device.", + "smithy.api#jsonName": "uhdDeviceSettings" + } } }, "traits": { @@ -18134,6 +18256,13 @@ "smithy.api#documentation": "The type of the input device.", "smithy.api#jsonName": "type" } + }, + "UhdDeviceSettings": { + "target": "com.amazonaws.medialive#InputDeviceUhdSettings", + "traits": { + "smithy.api#documentation": "Settings that describe an input device that is type UHD.", + "smithy.api#jsonName": "uhdDeviceSettings" + } } }, "traits": { @@ -18582,6 +18711,28 @@ "smithy.api#documentation": "Placeholder documentation for ValidationError" } }, + "com.amazonaws.medialive#VideoBlackFailoverSettings": { + "type": "structure", + "members": { + "BlackDetectThreshold": { + "target": "com.amazonaws.medialive#__doubleMin0Max1", + "traits": { + "smithy.api#documentation": "A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'. For the input to be considered black, every pixel in a frame must be below this threshold. The threshold is calculated as a percentage (expressed as a decimal) of white. Therefore .1 means 10% white (or 90% black). Note how the formula works for any color depth. For example, if you set this field to 0.1 in 10-bit color depth: (1023*0.1=102.3), which means a pixel value of 102 or less is 'black'. If you set this field to .1 in an 8-bit color depth: (255*0.1=25.5), which means a pixel value of 25 or less is 'black'. The range is 0.0 to 1.0, with any number of decimal places.", + "smithy.api#jsonName": "blackDetectThreshold" + } + }, + "VideoBlackThresholdMsec": { + "target": "com.amazonaws.medialive#__integerMin1000", + "traits": { + "smithy.api#documentation": "The amount of time (in milliseconds) that the active input must be black before automatic input failover occurs.", + "smithy.api#jsonName": "videoBlackThresholdMsec" + } + } + }, + "traits": { + "smithy.api#documentation": "Placeholder documentation for VideoBlackFailoverSettings" + } + }, "com.amazonaws.medialive#VideoCodecSettings": { "type": "structure", "members": { @@ -18895,6 +19046,12 @@ "smithy.api#documentation": "Placeholder documentation for __doubleMin0" } }, + "com.amazonaws.medialive#__doubleMin0Max1": { + "type": "double", + "traits": { + "smithy.api#documentation": "Placeholder documentation for __doubleMin0Max1" + } + }, "com.amazonaws.medialive#__doubleMin1": { "type": "double", "traits": { diff --git a/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json b/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json index ca5ee97b7fbc3..16505f6c328cb 100644 --- a/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json +++ b/codegen/sdk-codegen/aws-models/quicksight.2018-04-01.json @@ -7963,7 +7963,7 @@ "AdditionalDashboardIds": { "target": "com.amazonaws.quicksight#AdditionalDashboardIdList", "traits": { - "smithy.api#documentation": "

                          A list of one or more dashboard ids that you want to add to a session that \n includes anonymous authorizations. IdentityType must be set to ANONYMOUS \n for this to work, because other other identity types authenticate as QuickSight users. \n For example, if you set \"--dashboard-id dash_id1 --dashboard-id dash_id2 \n dash_id3 identity-type ANONYMOUS\", the session can access all \n three dashboards.\n

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

                          A list of one or more dashboard ids that you want to add to a session that \n includes anonymous authorizations. IdentityType must be set to ANONYMOUS \n for this to work, because other identity types authenticate as QuickSight users. \n For example, if you set \"--dashboard-id dash_id1 --dashboard-id dash_id2 \n dash_id3 identity-type ANONYMOUS\", the session can access all \n three dashboards.\n

                          ", "smithy.api#httpQuery": "additional-dashboard-ids" } } @@ -8897,34 +8897,61 @@ "LeftOperand": { "target": "com.amazonaws.quicksight#LogicalTableId", "traits": { - "smithy.api#documentation": "

                          Left operand.

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

                          The operand on the left side of a join.

                          ", "smithy.api#required": {} } }, "RightOperand": { "target": "com.amazonaws.quicksight#LogicalTableId", "traits": { - "smithy.api#documentation": "

                          Right operand.

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

                          The operand on the right side of a join.

                          ", "smithy.api#required": {} } }, + "LeftJoinKeyProperties": { + "target": "com.amazonaws.quicksight#JoinKeyProperties", + "traits": { + "smithy.api#documentation": "

                          Join key properties of the left operand.

                          " + } + }, + "RightJoinKeyProperties": { + "target": "com.amazonaws.quicksight#JoinKeyProperties", + "traits": { + "smithy.api#documentation": "

                          Join key properties of the right operand.

                          " + } + }, "Type": { "target": "com.amazonaws.quicksight#JoinType", "traits": { - "smithy.api#documentation": "

                          Type.

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

                          The type of join that it is.

                          ", "smithy.api#required": {} } }, "OnClause": { "target": "com.amazonaws.quicksight#OnClause", "traits": { - "smithy.api#documentation": "

                          On Clause.

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

                          The join instructions provided in the ON clause of a join.

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

                          Join instruction.

                          " + "smithy.api#documentation": "

                          The instructions associated with a join.

                          " + } + }, + "com.amazonaws.quicksight#JoinKeyProperties": { + "type": "structure", + "members": { + "UniqueKey": { + "target": "com.amazonaws.quicksight#Boolean", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          Indicates that a row in a table is uniquely identified by the columns in a \n join key. This is used by QuickSight to optimize query performance.

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

                          Properties associated with the columns participating in a join.

                          " } }, "com.amazonaws.quicksight#JoinType": { @@ -11113,7 +11140,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 32 + "max": 64 } } }, @@ -11545,7 +11572,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 16 + "max": 32 } } }, diff --git a/codegen/sdk-codegen/aws-models/rds.2014-10-31.json b/codegen/sdk-codegen/aws-models/rds.2014-10-31.json index 5848a6e471c8e..39493d16be9ae 100644 --- a/codegen/sdk-codegen/aws-models/rds.2014-10-31.json +++ b/codegen/sdk-codegen/aws-models/rds.2014-10-31.json @@ -146,7 +146,7 @@ "RoleArn": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB\n cluster, for example arn:aws:iam::123456789012:role/AuroraAccessRole.

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

                          The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB\n cluster, for example, arn:aws:iam::123456789012:role/AuroraAccessRole.

                          ", "smithy.api#required": {} } }, @@ -687,6 +687,9 @@ { "target": "com.amazonaws.rds#StartDBInstance" }, + { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplication" + }, { "target": "com.amazonaws.rds#StartExportTask" }, @@ -698,6 +701,9 @@ }, { "target": "com.amazonaws.rds#StopDBInstance" + }, + { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplication" } ], "traits": { @@ -1403,7 +1409,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Copies a snapshot of a DB cluster.

                          \n

                          To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier\n must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

                          \n\n

                          You can copy an encrypted DB cluster snapshot from another AWS Region. In that case, the AWS Region where you call the CopyDBClusterSnapshot action \n is the destination AWS Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another AWS Region, \n you must provide the following values:

                          \n \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS Key Management System (AWS KMS) key identifier for the key to use to \n encrypt the copy of the DB cluster snapshot in the destination AWS Region.

                            \n
                          • \n
                          • \n

                            \n PreSignedUrl - A URL that contains a Signature Version 4 signed request for the \n CopyDBClusterSnapshot action to be called in the source AWS Region where the DB cluster snapshot is copied from. \n The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the \n source AWS Region that contains the encrypted DB cluster snapshot to be copied.

                            \n

                            The pre-signed URL request must contain the following parameter values:

                            \n
                              \n
                            • \n

                              \n KmsKeyId - The KMS key identifier for the key to use to encrypt the copy of the DB \n cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                              \n
                            • \n
                            • \n

                              \n DestinationRegion - The name of the AWS Region that the DB cluster snapshot is to be created in.

                              \n
                            • \n
                            • \n

                              \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster \n snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, \n if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier\n looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

                              \n
                            • \n
                            \n

                            To learn how to generate a Signature Version 4 signed request, see \n\n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                            \n \n

                            If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                            \n
                            \n
                          • \n
                          • \n

                            \n TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination AWS Region.

                            \n
                          • \n
                          • \n

                            \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. \n This identifier must be in the ARN format for the source AWS Region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL.

                            \n
                          • \n
                          \n

                          To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified\n by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

                          \n

                          For more information on copying encrypted DB cluster snapshots from one AWS Region to another, see \n \n Copying a Snapshot in the Amazon Aurora User Guide.\n

                          \n

                          For more information on Amazon Aurora, see \n \n What Is Amazon Aurora? in the Amazon Aurora User Guide.\n

                          \n \n

                          This action only applies to Aurora DB clusters.

                          \n
                          " + "smithy.api#documentation": "

                          Copies a snapshot of a DB cluster.

                          \n

                          To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier\n must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

                          \n\n

                          You can copy an encrypted DB cluster snapshot from another AWS Region. In that case, the AWS Region where you call the CopyDBClusterSnapshot action \n is the destination AWS Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another AWS Region, \n you must provide the following values:

                          \n \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS Key Management System (AWS KMS) key identifier for the key to use to \n encrypt the copy of the DB cluster snapshot in the destination AWS Region.

                            \n
                          • \n
                          • \n

                            \n PreSignedUrl - A URL that contains a Signature Version 4 signed request for the \n CopyDBClusterSnapshot action to be called in the source AWS Region where the DB cluster snapshot is copied from. \n The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the \n source AWS Region that contains the encrypted DB cluster snapshot to be copied.

                            \n

                            The pre-signed URL request must contain the following parameter values:

                            \n
                              \n
                            • \n

                              \n KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB \n cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                              \n
                            • \n
                            • \n

                              \n DestinationRegion - The name of the AWS Region that the DB cluster snapshot is to be created in.

                              \n
                            • \n
                            • \n

                              \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster \n snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, \n if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier\n looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

                              \n
                            • \n
                            \n

                            To learn how to generate a Signature Version 4 signed request, see \n\n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                            \n \n

                            If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                            \n
                            \n
                          • \n
                          • \n

                            \n TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination AWS Region.

                            \n
                          • \n
                          • \n

                            \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. \n This identifier must be in the ARN format for the source AWS Region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL.

                            \n
                          • \n
                          \n

                          To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified\n by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

                          \n

                          For more information on copying encrypted DB cluster snapshots from one AWS Region to another, see \n \n Copying a Snapshot in the Amazon Aurora User Guide.\n

                          \n

                          For more information on Amazon Aurora, see \n \n What Is Amazon Aurora? in the Amazon Aurora User Guide.\n

                          \n \n

                          This action only applies to Aurora DB clusters.

                          \n
                          " } }, "com.amazonaws.rds#CopyDBClusterSnapshotMessage": { @@ -1426,13 +1432,13 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key ID for an encrypted DB cluster snapshot. \n The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                          \n \n

                          If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new KMS encryption key. \n If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot. \n

                          \n \n

                          If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId.

                          \n \n

                          To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the KMS key ID you want to use to encrypt the copy of the DB cluster snapshot \n in the destination AWS Region. KMS encryption keys are specific to the AWS Region that they are created in, and you can't use encryption keys from one AWS Region \n in another AWS Region.

                          \n \n

                          If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, \n an error is returned.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB cluster snapshot. \n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          \n \n

                          If you copy an encrypted DB cluster snapshot from your AWS account, you can specify a value for KmsKeyId to encrypt the copy with a new AWS KMS CMK. \n If you don't specify a value for KmsKeyId, then the copy of the DB cluster snapshot is encrypted with the same AWS KMS key as the source DB cluster snapshot. \n

                          \n \n

                          If you copy an encrypted DB cluster snapshot that is shared from another AWS account, then you must specify a value for KmsKeyId.

                          \n \n

                          To copy an encrypted DB cluster snapshot to another AWS Region, you must set KmsKeyId to the AWS KMS key identifier you want to use to encrypt the copy of the DB cluster snapshot \n in the destination AWS Region. AWS KMS CMKs are specific to the AWS Region that they are created in, and you can't use CMKs from one AWS Region \n in another AWS Region.

                          \n \n

                          If you copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, \n an error is returned.

                          " } }, "PreSignedUrl": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS Region that contains the \n source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS Region. \n Don't specify PreSignedUrl when you are copying an encrypted DB cluster snapshot in the same AWS Region.

                          \n

                          The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be\n executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied. \n The pre-signed URL request must contain the following parameter values:

                          \n \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB \n cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                            \n
                          • \n
                          • \n

                            \n DestinationRegion - The name of the AWS Region that the DB cluster snapshot is to be created in.

                            \n
                          • \n
                          • \n

                            \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster \n snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, \n if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier\n looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

                            \n
                          • \n
                          \n \n

                          To learn how to generate a Signature Version 4 signed request, see \n\n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                          \n \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " + "smithy.api#documentation": "

                          The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the AWS Region that contains the \n source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another AWS Region. \n Don't specify PreSignedUrl when you are copying an encrypted DB cluster snapshot in the same AWS Region.

                          \n

                          The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be\n executed in the source AWS Region that contains the encrypted DB cluster snapshot to be copied. \n The pre-signed URL request must contain the following parameter values:

                          \n \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB \n cluster snapshot in the destination AWS Region. This is the same identifier for both the CopyDBClusterSnapshot \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                            \n
                          • \n
                          • \n

                            \n DestinationRegion - The name of the AWS Region that the DB cluster snapshot is to be created in.

                            \n
                          • \n
                          • \n

                            \n SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster \n snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, \n if you are copying an encrypted DB cluster snapshot from the us-west-2 AWS Region, then your SourceDBClusterSnapshotIdentifier\n looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

                            \n
                          • \n
                          \n \n

                          To learn how to generate a Signature Version 4 signed request, see \n\n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                          \n \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " } }, "CopyTags": { @@ -1572,7 +1578,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key ID for an encrypted DB snapshot. \n The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. \n

                          \n \n

                          If you copy an encrypted DB snapshot from your AWS account, \n you can specify a value for this parameter to encrypt the copy with a new KMS encryption key. \n If you don't specify a value for this parameter, \n then the copy of the DB snapshot is encrypted with the same KMS key as the source DB snapshot. \n

                          \n\n

                          If you copy an encrypted DB snapshot that is shared from another AWS account, \n then you must specify a value for this parameter.\n

                          \n \n

                          If you specify this parameter \n when you copy an unencrypted snapshot, \n the copy is encrypted.\n

                          \n \n

                          If you copy an encrypted snapshot to a different AWS Region, then you must specify\n a KMS key for the destination AWS Region. KMS encryption keys are specific to the AWS Region\n that they are created in, and you can't use encryption keys from one AWS Region in another\n AWS Region.\n

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB snapshot. \n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). \n

                          \n \n

                          If you copy an encrypted DB snapshot from your AWS account, \n you can specify a value for this parameter to encrypt the copy with a new AWS KMS CMK. \n If you don't specify a value for this parameter, \n then the copy of the DB snapshot is encrypted with the same AWS KMS key as the source DB snapshot. \n

                          \n\n

                          If you copy an encrypted DB snapshot that is shared from another AWS account, \n then you must specify a value for this parameter.\n

                          \n \n

                          If you specify this parameter when you copy an unencrypted snapshot, \n the copy is encrypted.\n

                          \n \n

                          If you copy an encrypted snapshot to a different AWS Region, then you must specify\n a AWS KMS key identifier for the destination AWS Region. AWS KMS CMKs are specific to the AWS Region\n that they are created in, and you can't use CMKs from one AWS Region in another\n AWS Region.\n

                          " } }, "Tags": { @@ -1587,7 +1593,7 @@ "PreSignedUrl": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The URL that contains a Signature Version 4 signed request for the\n CopyDBSnapshot API action in the source AWS Region that contains the\n source DB snapshot to copy.

                          \n \n

                          You must specify this parameter when you copy an encrypted DB snapshot from another\n AWS Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are \n copying an encrypted DB snapshot in the same AWS Region.

                          \n \n

                          The presigned URL must be a valid request for the CopyDBSnapshot API action \n that can be executed in the source AWS Region that contains the encrypted DB snapshot to be copied. \n The presigned URL request must contain the following parameter values:\n

                          \n \n
                            \n
                          • \n

                            \n DestinationRegion - The AWS Region that the encrypted DB snapshot is copied to. \n This AWS Region is the same one where the CopyDBSnapshot action is called that contains this presigned URL.\n

                            \n\n

                            For example, if you copy an encrypted DB snapshot from the us-west-2 AWS Region\n to the us-east-1 AWS Region, then you call the CopyDBSnapshot action in\n the us-east-1 AWS Region and provide a presigned URL that contains a call to the\n CopyDBSnapshot action in the us-west-2 AWS Region. For this\n example, the DestinationRegion in the presigned URL must be set to\n the us-east-1 AWS Region.

                            \n
                          • \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of the DB snapshot in the destination AWS Region. \n This is the same identifier for both the CopyDBSnapshot action that is called in the destination AWS Region, \n and the action contained in the presigned URL.\n

                            \n
                          • \n
                          • \n

                            \n SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. \n This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. \n For example, if you are copying an encrypted DB snapshot from the us-west-2 AWS Region, then your SourceDBSnapshotIdentifier looks like\n the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.\n

                            \n
                          • \n
                          \n\n\t

                          To learn how to generate a Signature Version 4 signed request, see \n\t\tAuthenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n\t\tSignature Version 4 Signing Process.\n\t

                          \n \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " + "smithy.api#documentation": "

                          The URL that contains a Signature Version 4 signed request for the\n CopyDBSnapshot API action in the source AWS Region that contains the\n source DB snapshot to copy.

                          \n \n

                          You must specify this parameter when you copy an encrypted DB snapshot from another\n AWS Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are \n copying an encrypted DB snapshot in the same AWS Region.

                          \n \n

                          The presigned URL must be a valid request for the CopyDBSnapshot API action \n that can be executed in the source AWS Region that contains the encrypted DB snapshot to be copied. \n The presigned URL request must contain the following parameter values:\n

                          \n \n
                            \n
                          • \n

                            \n DestinationRegion - The AWS Region that the encrypted DB snapshot is copied to. \n This AWS Region is the same one where the CopyDBSnapshot action is called that contains this presigned URL.\n

                            \n\n

                            For example, if you copy an encrypted DB snapshot from the us-west-2 AWS Region\n to the us-east-1 AWS Region, then you call the CopyDBSnapshot action in\n the us-east-1 AWS Region and provide a presigned URL that contains a call to the\n CopyDBSnapshot action in the us-west-2 AWS Region. For this\n example, the DestinationRegion in the presigned URL must be set to\n the us-east-1 AWS Region.

                            \n
                          • \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB snapshot in the destination AWS Region. \n This is the same identifier for both the CopyDBSnapshot action that is called in the destination AWS Region, \n and the action contained in the presigned URL.\n

                            \n
                          • \n
                          • \n

                            \n SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. \n This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. \n For example, if you are copying an encrypted DB snapshot from the us-west-2 AWS Region, then your SourceDBSnapshotIdentifier looks like\n the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.\n

                            \n
                          • \n
                          \n\n\t

                          To learn how to generate a Signature Version 4 signed request, see \n\t\tAuthenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n\t\tSignature Version 4 Signing Process.\n\t

                          \n \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " } }, "OptionGroupName": { @@ -2008,13 +2014,13 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB cluster.

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption\n key. If you are creating a DB cluster with the same AWS account that owns the KMS\n encryption key used to encrypt the new DB cluster, then you can use the KMS key alias\n instead of the ARN for the KMS encryption key.

                          \n

                          If an encryption key isn't specified in KmsKeyId:

                          \n
                            \n
                          • \n

                            If ReplicationSourceIdentifier identifies an encrypted\n source, then Amazon RDS will use the encryption key used to encrypt the\n source. Otherwise, Amazon RDS will use your default encryption key.

                            \n
                          • \n
                          • \n

                            If the StorageEncrypted parameter is enabled and\n ReplicationSourceIdentifier isn't specified, then Amazon RDS\n will use your default encryption key.

                            \n
                          • \n
                          \n

                          AWS KMS creates the default encryption key for your AWS account. Your AWS account\n has a different default encryption key for each AWS Region.

                          \n

                          If you create a read replica of an encrypted DB cluster in another AWS Region, you\n must set KmsKeyId to a KMS key ID that is valid in the destination AWS\n Region. This key is used to encrypt the read replica in that AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB cluster.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          When a CMK isn't specified in KmsKeyId:

                          \n
                            \n
                          • \n

                            If ReplicationSourceIdentifier identifies an encrypted\n source, then Amazon RDS will use the CMK used to encrypt the\n source. Otherwise, Amazon RDS will use your default CMK.

                            \n
                          • \n
                          • \n

                            If the StorageEncrypted parameter is enabled and\n ReplicationSourceIdentifier isn't specified, then Amazon RDS\n will use your default CMK.

                            \n
                          • \n
                          \n

                          There is a default CMK for your AWS account. Your AWS account\n has a different default CMK for each AWS Region.

                          \n

                          If you create a read replica of an encrypted DB cluster in another AWS Region, you\n must set KmsKeyId to a AWS KMS key identifier that is valid in the destination AWS\n Region. This CMK is used to encrypt the read replica in that AWS Region.

                          " } }, "PreSignedUrl": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          A URL that contains a Signature Version 4 signed request for \n the CreateDBCluster action to be called in the source AWS Region where the DB cluster is replicated from. \n You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster.

                          \n \n

                          The pre-signed URL must be a valid request for the CreateDBCluster API action \n that can be executed in the source AWS Region that contains the encrypted DB cluster to be copied.

                          \n

                          The pre-signed URL request must contain the following parameter values:

                          \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of \n the DB cluster in the destination AWS Region. This should refer to the same KMS key for both the CreateDBCluster \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                            \n
                          • \n
                          • \n

                            \n DestinationRegion - The name of the AWS Region that Aurora read replica will\n be created in.

                            \n
                          • \n
                          • \n

                            \n ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. \n This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an \n encrypted DB cluster from the us-west-2 AWS Region, then your ReplicationSourceIdentifier would look like\n Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

                            \n
                          • \n
                          \n \n

                          To learn how to generate a Signature Version 4 signed request, see \n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                          \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " + "smithy.api#documentation": "

                          A URL that contains a Signature Version 4 signed request for \n the CreateDBCluster action to be called in the source AWS Region where the DB cluster is replicated from. \n You only need to specify PreSignedUrl when you are performing cross-region replication from an encrypted DB cluster.

                          \n \n

                          The pre-signed URL must be a valid request for the CreateDBCluster API action \n that can be executed in the source AWS Region that contains the encrypted DB cluster to be copied.

                          \n

                          The pre-signed URL request must contain the following parameter values:

                          \n
                            \n
                          • \n

                            \n KmsKeyId - The AWS KMS key identifier for the key to use to encrypt the copy of \n the DB cluster in the destination AWS Region. This should refer to the same AWS KMS CMK for both the CreateDBCluster \n action that is called in the destination AWS Region, and the action contained in the pre-signed URL.

                            \n
                          • \n
                          • \n

                            \n DestinationRegion - The name of the AWS Region that Aurora read replica will\n be created in.

                            \n
                          • \n
                          • \n

                            \n ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. \n This identifier must be in the Amazon Resource Name (ARN) format for the source AWS Region. For example, if you are copying an \n encrypted DB cluster from the us-west-2 AWS Region, then your ReplicationSourceIdentifier would look like\n Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

                            \n
                          • \n
                          \n \n

                          To learn how to generate a Signature Version 4 signed request, see \n \n Authenticating Requests: Using Query Parameters (AWS Signature Version 4) and\n \n Signature Version 4 Signing Process.

                          \n \n

                          If you are using an AWS SDK tool or the AWS CLI, you can specify SourceRegion (or --source-region for the AWS CLI) \n instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid \n request for the operation that can be executed in the source AWS Region.

                          \n
                          " } }, "EnableIAMDatabaseAuthentication": { @@ -2496,7 +2502,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB instance.

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key.

                          \n

                          \n Amazon Aurora\n

                          \n

                          Not applicable. The KMS key identifier is managed by\n the DB cluster. For more information, see CreateDBCluster.

                          \n \n

                          If StorageEncrypted is enabled, and you do\n not specify a value for the KmsKeyId parameter, then\n Amazon RDS will use your default encryption key. AWS KMS creates the \n default encryption key for your AWS account. Your AWS account has a different\n default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB instance.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          \n Amazon Aurora\n

                          \n

                          Not applicable. The AWS KMS key identifier is managed by\n the DB cluster. For more information, see CreateDBCluster.

                          \n

                          If StorageEncrypted is enabled, and you do\n not specify a value for the KmsKeyId parameter, then\n Amazon RDS uses your default CMK. There is a \n default CMK for your AWS account. Your AWS account has a different\n default CMK for each AWS Region.

                          " } }, "Domain": { @@ -2556,7 +2562,7 @@ "PerformanceInsightsKMSKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID\n is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS\n encryption key.

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. \n Your AWS account has a different default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default CMK. There is a default CMK for your AWS account. \n Your AWS account has a different default CMK for each AWS Region.

                          " } }, "PerformanceInsightsRetentionPeriod": { @@ -2778,7 +2784,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key ID for an encrypted read replica. The KMS key ID is the Amazon\n Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                          \n \n

                          If you create an encrypted read replica in the same AWS Region as the source DB\n instance, then you do not have to specify a value for this parameter. The read replica\n is encrypted with the same KMS key as the source DB instance.

                          \n \n

                          If you create an encrypted read replica in a different AWS Region, then you must\n specify a KMS key for the destination AWS Region. KMS encryption keys are specific to\n the AWS Region that they are created in, and you can't use encryption keys from one\n AWS Region in another AWS Region.

                          \n \n

                          You can't create an encrypted read replica from an unencrypted DB instance.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted read replica.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS CMK.

                          \n

                          If you create an encrypted read replica in the same AWS Region as the source DB\n instance, then you do not have to specify a value for this parameter. The read replica\n is encrypted with the same AWS KMS CMK as the source DB instance.

                          \n

                          If you create an encrypted read replica in a different AWS Region, then you must\n specify a AWS KMS key identifier for the destination AWS Region. AWS KMS CMKs are specific to\n the AWS Region that they are created in, and you can't use CMKs from one\n AWS Region in another AWS Region.

                          \n

                          You can't create an encrypted read replica from an unencrypted DB instance.

                          " } }, "PreSignedUrl": { @@ -2802,7 +2808,7 @@ "PerformanceInsightsKMSKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID\n is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. \n Your AWS account has a different default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default CMK. There is a default CMK for your AWS account. \n Your AWS account has a different default CMK for each AWS Region.

                          " } }, "PerformanceInsightsRetentionPeriod": { @@ -3126,7 +3132,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Creates a snapshot of a DB instance. The source DB instance must be in the available or\n storage-optimizationstate.

                          " + "smithy.api#documentation": "

                          Creates a snapshot of a DB instance. The source DB instance must be in the available or\n storage-optimization state.

                          " } }, "com.amazonaws.rds#CreateDBSnapshotMessage": { @@ -3754,13 +3760,13 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          If StorageEncrypted is enabled, the AWS KMS key identifier for the encrypted DB cluster.

                          " + "smithy.api#documentation": "

                          If StorageEncrypted is enabled, the AWS KMS key identifier for the encrypted DB cluster.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "DbClusterResourceId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.

                          " + "smithy.api#documentation": "

                          The AWS Region-unique, immutable identifier for the DB cluster. This identifier is found in AWS CloudTrail log entries whenever \n the AWS KMS CMK for the DB cluster is accessed.

                          " } }, "DBClusterArn": { @@ -3859,7 +3865,7 @@ "ActivityStreamKmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier used for encrypting messages in the database activity stream.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier used for encrypting messages in the database activity stream.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "ActivityStreamKinesisStreamName": { @@ -4582,7 +4588,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot.

                          " + "smithy.api#documentation": "

                          If StorageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "DBClusterSnapshotArn": { @@ -5100,13 +5106,13 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          \n If StorageEncrypted is true, the AWS KMS key identifier \n for the encrypted DB instance.\n

                          " + "smithy.api#documentation": "

                          \n If StorageEncrypted is true, the AWS KMS key identifier \n for the encrypted DB instance.\n

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "DbiResourceId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.

                          " + "smithy.api#documentation": "

                          The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log \n entries whenever the AWS KMS customer master key (CMK) for the DB instance is accessed.

                          " } }, "CACertificateIdentifier": { @@ -5178,7 +5184,7 @@ "PerformanceInsightsKMSKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID\n is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS\n encryption key.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "PerformanceInsightsRetentionPeriod": { @@ -5225,6 +5231,12 @@ }, "TagList": { "target": "com.amazonaws.rds#TagList" + }, + "DBInstanceAutomatedBackupsReplications": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList", + "traits": { + "smithy.api#documentation": "

                          The list of replicated automated backups associated with the DB instance.

                          " + } } }, "traits": { @@ -5250,7 +5262,7 @@ "DBInstanceArn": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) for the automated backup.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) for the automated backups.

                          " } }, "DbiResourceId": { @@ -5346,7 +5358,7 @@ "OptionGroupName": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The option group the automated backup is associated with. \n If omitted, the default option group for the engine specified is used.

                          " + "smithy.api#documentation": "

                          The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.

                          " } }, "TdeCredentialArn": { @@ -5370,7 +5382,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key ID for an automated backup. \n The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

                          " + "smithy.api#documentation": "

                          The AWS KMS key ID for an automated backup.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "Timezone": { @@ -5384,10 +5396,28 @@ "traits": { "smithy.api#documentation": "

                          True if mapping of AWS Identity and Access Management (IAM) accounts to database accounts is enabled, \n and otherwise false.

                          " } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

                          The retention period for the automated backups.

                          " + } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) for the replicated automated backups.

                          " + } + }, + "DBInstanceAutomatedBackupsReplications": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList", + "traits": { + "smithy.api#documentation": "

                          The list of replications to different AWS Regions associated with the automated backup.

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

                          An automated backup of a DB instance. It it consists of\n system backups, transaction logs, and the database instance properties that\n existed at the time you deleted the source instance.

                          " + "smithy.api#documentation": "

                          An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that\n existed at the time you deleted the source instance.

                          " } }, "com.amazonaws.rds#DBInstanceAutomatedBackupList": { @@ -5445,6 +5475,29 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#DBInstanceAutomatedBackupsReplication": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the replicated automated backups.

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

                          Automated backups of a DB instance replicated to another AWS Region. They consist of system backups, transaction logs, and database instance properties.

                          " + } + }, + "com.amazonaws.rds#DBInstanceAutomatedBackupsReplicationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupsReplication", + "traits": { + "smithy.api#xmlName": "DBInstanceAutomatedBackupsReplication" + } + } + }, "com.amazonaws.rds#DBInstanceList": { "type": "list", "member": { @@ -6410,7 +6463,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          \n If Encrypted is true, the AWS KMS key identifier \n for the encrypted DB snapshot.\n

                          " + "smithy.api#documentation": "

                          \n If Encrypted is true, the AWS KMS key identifier \n for the encrypted DB snapshot.\n

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "DBSnapshotArn": { @@ -6982,7 +7035,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deletes automated backups based on the source instance's DbiResourceId\n value or the restorable instance's resource ID.

                          " + "smithy.api#documentation": "

                          Deletes automated backups using the DbiResourceId value of the source DB instance or the Amazon Resource Name (ARN) of the automated backups.

                          " } }, "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupMessage": { @@ -6991,13 +7044,18 @@ "DbiResourceId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The identifier for the source DB instance, which can't be changed and which is unique to an AWS Region.

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

                          The identifier for the source DB instance, which can't be changed and which is unique to an AWS Region.

                          " + } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the automated backups to delete, for example,\n arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

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

                          Parameter input for the DeleteDBInstanceAutomatedBackup operation.

                          " + "smithy.api#documentation": "

                          Parameter input for the DeleteDBInstanceAutomatedBackup operation.

                          " } }, "com.amazonaws.rds#DeleteDBInstanceAutomatedBackupResult": { @@ -8122,6 +8180,12 @@ "traits": { "smithy.api#documentation": "

                          The pagination token provided in the previous request. If this parameter is specified the response \n\t\t\tincludes only records beyond the marker, up to MaxRecords.

                          " } + }, + "DBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the replicated automated backups, for example,\n arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

                          " + } } }, "traits": { @@ -10465,7 +10529,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The ID of the AWS KMS key that is used to encrypt the snapshot when it's exported to\n Amazon S3. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or\n the KMS key alias for the KMS encryption key. The IAM role used for the snapshot export\n must have encryption and decryption permissions to use this KMS key.

                          " + "smithy.api#documentation": "

                          The key identifier of the AWS KMS customer master key (CMK) that is used to encrypt the snapshot when it's exported to\n Amazon S3. The AWS KMS CMK identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the snapshot export\n must have encryption and decryption permissions to use this AWS KMS CMK.

                          " } }, "Status": { @@ -10665,7 +10729,7 @@ "GlobalClusterResourceId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          \n The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in\n AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.\n

                          " + "smithy.api#documentation": "

                          \n The AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in\n AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the DB cluster is accessed.\n

                          " } }, "GlobalClusterArn": { @@ -12329,7 +12393,7 @@ "PerformanceInsightsKMSKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID\n is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS\n encryption key.

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. \n Your AWS account has a different default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default CMK. There is a default CMK for your AWS account. \n Your AWS account has a different default CMK for each AWS Region.

                          " } }, "PerformanceInsightsRetentionPeriod": { @@ -14628,7 +14692,7 @@ "RoleArn": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB instance,\n for example arn:aws:iam::123456789012:role/AccessRole.

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

                          The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB instance,\n for example, arn:aws:iam::123456789012:role/AccessRole.

                          ", "smithy.api#required": {} } }, @@ -15334,7 +15398,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB cluster.

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KM encryption key.

                          \n

                          If the StorageEncrypted parameter is enabled, and you do\n not specify a value for the KmsKeyId parameter, then\n Amazon RDS will use your default encryption key. AWS KMS creates the \n default encryption key for your AWS account. Your AWS account has a different\n default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB cluster.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          If the StorageEncrypted parameter is enabled, and you do\n not specify a value for the KmsKeyId parameter, then\n Amazon RDS will use your default CMK. There is a \n default CMK for your AWS account. Your AWS account has a different\n default CMK for each AWS Region.

                          " } }, "EnableIAMDatabaseAuthentication": { @@ -15563,7 +15627,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB\n snapshot or DB cluster snapshot.

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption\n key. If you are restoring a DB cluster with the same AWS account that owns the KMS\n encryption key used to encrypt the new DB cluster, then you can use the KMS key alias\n instead of the ARN for the KMS encryption key.

                          \n

                          If you don't specify a value for the KmsKeyId parameter, then the\n following occurs:

                          \n
                            \n
                          • \n

                            If the DB snapshot or DB cluster snapshot in\n SnapshotIdentifier is encrypted, then the restored DB cluster\n is encrypted using the KMS key that was used to encrypt the DB snapshot or DB\n cluster snapshot.

                            \n
                          • \n
                          • \n

                            If the DB snapshot or DB cluster snapshot in \n SnapshotIdentifier isn't encrypted, then the restored DB cluster\n isn't encrypted.

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier to use when restoring an encrypted DB cluster from a DB\n snapshot or DB cluster snapshot.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          When you don't specify a value for the KmsKeyId parameter, then the\n following occurs:

                          \n
                            \n
                          • \n

                            If the DB snapshot or DB cluster snapshot in\n SnapshotIdentifier is encrypted, then the restored DB cluster\n is encrypted using the AWS KMS CMK that was used to encrypt the DB snapshot or DB\n cluster snapshot.

                            \n
                          • \n
                          • \n

                            If the DB snapshot or DB cluster snapshot in \n SnapshotIdentifier isn't encrypted, then the restored DB cluster\n isn't encrypted.

                            \n
                          • \n
                          " } }, "EnableIAMDatabaseAuthentication": { @@ -15772,7 +15836,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same AWS account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.

                          \n

                          You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the\n KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key\n identified by the KmsKeyId parameter.

                          \n

                          If you don't specify a value for the KmsKeyId parameter, then the following occurs:

                          \n
                            \n
                          • \n

                            If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster.

                            \n
                          • \n
                          • \n

                            If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted.

                            \n
                          • \n
                          \n\n

                          If DBClusterIdentifier refers to a DB cluster that isn't encrypted, then the restore request\n is rejected.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          You can restore to a new DB cluster and encrypt the new DB cluster with a AWS KMS CMK that is different than the\n AWS KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the AWS KMS CMK\n identified by the KmsKeyId parameter.

                          \n

                          If you don't specify a value for the KmsKeyId parameter, then the following occurs:

                          \n
                            \n
                          • \n

                            If the DB cluster is encrypted, then the restored DB cluster is encrypted using the AWS KMS CMK that was used to encrypt the source DB cluster.

                            \n
                          • \n
                          • \n

                            If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted.

                            \n
                          • \n
                          \n\n

                          If DBClusterIdentifier refers to a DB cluster that isn't encrypted, then the restore request\n is rejected.

                          " } }, "EnableIAMDatabaseAuthentication": { @@ -15907,7 +15971,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

                          \n

                          If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

                          \n

                          If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier\n must be the ARN of the shared DB snapshot.

                          \n \n

                          This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use RestoreDBClusterFromSnapshot.

                          \n
                          " + "smithy.api#documentation": "

                          Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most\n of the source's original configuration, including the default security group and DB parameter group. By default, the new DB\n instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group\n associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment.

                          \n

                          If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance\n before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. After you\n have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as\n the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you replace the original\n DB instance with the DB instance created from the snapshot.

                          \n

                          If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier\n must be the ARN of the shared DB snapshot.

                          \n \n

                          This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use RestoreDBClusterFromSnapshot.

                          \n
                          " } }, "com.amazonaws.rds#RestoreDBInstanceFromDBSnapshotMessage": { @@ -16323,7 +16387,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB instance.\n

                          \n

                          The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. \n If you are creating a DB instance with the same AWS account that owns the KMS encryption key used to encrypt the new DB instance, \n then you can use the KMS key alias instead of the ARN for the KM encryption key.\n

                          \n

                          If the StorageEncrypted parameter is enabled, \n and you do not specify a value for the KmsKeyId parameter, \n then Amazon RDS will use your default encryption key. \n AWS KMS creates the default encryption key for your AWS account. \n Your AWS account has a different default encryption key for each AWS Region.\n

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for an encrypted DB instance.\n

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).\n To use a CMK in a different AWS account, specify the key ARN or alias ARN.

                          \n

                          If the StorageEncrypted parameter is enabled, \n and you do not specify a value for the KmsKeyId parameter, \n then Amazon RDS will use your default CMK. \n There is a default CMK for your AWS account. \n Your AWS account has a different default CMK for each AWS Region.\n

                          " } }, "CopyTagsToSnapshot": { @@ -16393,7 +16457,7 @@ "PerformanceInsightsKMSKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.\n The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, \n or the KMS key alias for the KMS encryption key.\n

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. \n Your AWS account has a different default encryption key for each AWS Region.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of Performance Insights data.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          \n

                          If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon RDS \n uses your default CMK. There is a default CMK for your AWS account. \n Your AWS account has a different default CMK for each AWS Region.

                          " } }, "PerformanceInsightsRetentionPeriod": { @@ -16714,6 +16778,12 @@ "traits": { "smithy.api#documentation": "

                          The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.

                          " } + }, + "SourceDBInstanceAutomatedBackupsArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, \n arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE.

                          " + } } }, "traits": { @@ -17001,6 +17071,12 @@ "traits": { "smithy.api#documentation": "

                          The status of the source AWS Region.

                          " } + }, + "SupportsDBInstanceAutomatedBackupsReplication": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

                          Whether the source AWS Region supports replicating automated backups to the current AWS Region.

                          " + } } }, "traits": { @@ -17099,7 +17175,7 @@ "ResourceArn": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the DB cluster,\n for example arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

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

                          The Amazon Resource Name (ARN) of the DB cluster,\n for example, arn:aws:rds:us-east-1:12345667890:cluster:das-cluster.

                          ", "smithy.api#required": {} } }, @@ -17113,7 +17189,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier for encrypting messages in the database activity stream.\n The key identifier can be either a key ID, a key ARN, or a key alias.

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

                          The AWS KMS key identifier for encrypting messages in the database activity stream.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          ", "smithy.api#required": {} } }, @@ -17250,6 +17326,73 @@ "smithy.api#documentation": "

                          \n Starts an Amazon RDS DB instance that was stopped using the AWS console, the stop-db-instance AWS CLI command, or the StopDBInstance action.\n

                          \n \n

                          For more information, see \n \n Starting an Amazon RDS DB instance That Was Previously Stopped in the \n Amazon RDS User Guide.\n

                          \n \n \n

                          \n This command doesn't apply to Aurora MySQL and Aurora PostgreSQL.\n For Aurora DB clusters, use StartDBCluster instead.\n

                          \n
                          " } }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationMessage" + }, + "output": { + "target": "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackupQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + }, + { + "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + } + ], + "traits": { + "smithy.api#documentation": "

                          Enables replication of automated backups to a different AWS Region.

                          \n

                          For more information, see \n Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide.\n

                          " + } + }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationMessage": { + "type": "structure", + "members": { + "SourceDBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, \n arn:aws:rds:us-west-2:123456789012:db:mydatabase.

                          ", + "smithy.api#required": {} + } + }, + "BackupRetentionPeriod": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

                          The retention period for the replicated automated backups.

                          " + } + }, + "KmsKeyId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the\n Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, \n arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE.

                          " + } + }, + "PreSignedUrl": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be \n called in the AWS Region of the source DB instance. The presigned URL must be a valid request for the\n StartDBInstanceAutomatedBackupsReplication API action that can be executed in the AWS Region that contains\n the source DB instance.

                          " + } + } + } + }, + "com.amazonaws.rds#StartDBInstanceAutomatedBackupsReplicationResult": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackup": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup" + } + } + }, "com.amazonaws.rds#StartDBInstanceMessage": { "type": "structure", "members": { @@ -17345,7 +17488,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The ID of the AWS KMS key to use to encrypt the snapshot exported to Amazon S3. The\n KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key\n alias for the KMS encryption key. The caller of this operation must be authorized to \n execute the following operations. These can be set in the KMS key policy:

                          \n
                            \n
                          • \n

                            GrantOperation.Encrypt

                            \n
                          • \n
                          • \n

                            GrantOperation.Decrypt

                            \n
                          • \n
                          • \n

                            GrantOperation.GenerateDataKey

                            \n
                          • \n
                          • \n

                            GrantOperation.GenerateDataKeyWithoutPlaintext

                            \n
                          • \n
                          • \n

                            GrantOperation.ReEncryptFrom

                            \n
                          • \n
                          • \n

                            GrantOperation.ReEncryptTo

                            \n
                          • \n
                          • \n

                            GrantOperation.CreateGrant

                            \n
                          • \n
                          • \n

                            GrantOperation.DescribeKey

                            \n
                          • \n
                          • \n

                            GrantOperation.RetireGrant

                            \n
                          • \n
                          ", + "smithy.api#documentation": "

                          The ID of the AWS KMS customer master key (CMK) to use to encrypt the snapshot exported to Amazon S3. The AWS KMS \n key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK). \n The caller of this operation must be authorized to \n execute the following operations. These can be set in the AWS KMS key policy:

                          \n
                            \n
                          • \n

                            GrantOperation.Encrypt

                            \n
                          • \n
                          • \n

                            GrantOperation.Decrypt

                            \n
                          • \n
                          • \n

                            GrantOperation.GenerateDataKey

                            \n
                          • \n
                          • \n

                            GrantOperation.GenerateDataKeyWithoutPlaintext

                            \n
                          • \n
                          • \n

                            GrantOperation.ReEncryptFrom

                            \n
                          • \n
                          • \n

                            GrantOperation.ReEncryptTo

                            \n
                          • \n
                          • \n

                            GrantOperation.CreateGrant

                            \n
                          • \n
                          • \n

                            GrantOperation.DescribeKey

                            \n
                          • \n
                          • \n

                            GrantOperation.RetireGrant

                            \n
                          • \n
                          ", "smithy.api#required": {} } }, @@ -17416,7 +17559,7 @@ "KmsKeyId": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

                          The AWS KMS key identifier used for encrypting messages in the database activity stream.

                          " + "smithy.api#documentation": "

                          The AWS KMS key identifier used for encrypting messages in the database activity stream.

                          \n

                          The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the AWS KMS customer master key (CMK).

                          " } }, "KinesisStreamName": { @@ -17505,6 +17648,46 @@ "smithy.api#documentation": "

                          \n Stops an Amazon RDS DB instance. When you stop a DB instance, Amazon RDS retains the DB instance's metadata, including its endpoint, \n DB parameter group, and option group membership. Amazon RDS also retains the transaction logs so you can do a point-in-time restore if \n necessary.\n

                          \n \n

                          For more information, see \n \n Stopping an Amazon RDS DB Instance Temporarily in the \n Amazon RDS User Guide.\n

                          \n \n \n

                          \n This command doesn't apply to Aurora MySQL and Aurora PostgreSQL.\n For Aurora clusters, use StopDBCluster instead.\n

                          \n
                          " } }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplication": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationMessage" + }, + "output": { + "target": "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

                          Stops automated backup replication for a DB instance.

                          \n

                          For more information, see \n Replicating Automated Backups to Another AWS Region in the Amazon RDS User Guide.\n

                          " + } + }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationMessage": { + "type": "structure", + "members": { + "SourceDBInstanceArn": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automated backups, for example, \n arn:aws:rds:us-west-2:123456789012:db:mydatabase.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.rds#StopDBInstanceAutomatedBackupsReplicationResult": { + "type": "structure", + "members": { + "DBInstanceAutomatedBackup": { + "target": "com.amazonaws.rds#DBInstanceAutomatedBackup" + } + } + }, "com.amazonaws.rds#StopDBInstanceMessage": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json b/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json index c36394bcdde42..2fe33432b5092 100644 --- a/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json +++ b/codegen/sdk-codegen/aws-models/redshift.2012-12-01.json @@ -929,6 +929,12 @@ "smithy.api#documentation": "

                          Returns the following:

                          \n
                            \n
                          • \n

                            AllowCancelResize: a boolean value indicating if the resize operation can be\n cancelled.

                            \n
                          • \n
                          • \n

                            ResizeType: Returns ClassicResize

                            \n
                          • \n
                          " } }, + "AvailabilityZoneRelocationStatus": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

                          Describes the status of the Availability Zone relocation operation.

                          " + } + }, "ClusterNamespaceArn": { "target": "com.amazonaws.redshift#String", "traits": { @@ -1968,7 +1974,7 @@ "NodeType": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

                          The node type to be provisioned for the cluster. For information about node types,\n go to Working with\n Clusters in the Amazon Redshift Cluster Management Guide.

                          \n

                          Valid Values: ds2.xlarge | ds2.8xlarge |\n dc1.large | dc1.8xlarge | \n dc2.large | dc2.8xlarge | \n ra3.4xlarge | ra3.16xlarge\n

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

                          The node type to be provisioned for the cluster. For information about node types,\n go to Working with\n Clusters in the Amazon Redshift Cluster Management Guide.

                          \n

                          Valid Values: ds2.xlarge | ds2.8xlarge |\n dc1.large | dc1.8xlarge | \n dc2.large | dc2.8xlarge | \n ra3.xlplus | ra3.4xlarge | ra3.16xlarge\n

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

                          A unique identifier for the snapshot schedule.

                          " } + }, + "AvailabilityZoneRelocation": { + "target": "com.amazonaws.redshift#BooleanOptional", + "traits": { + "smithy.api#documentation": "

                          The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.

                          " + } } }, "traits": { @@ -2858,6 +2870,9 @@ { "target": "com.amazonaws.redshift#InvalidScheduleFault" }, + { + "target": "com.amazonaws.redshift#InvalidTagFault" + }, { "target": "com.amazonaws.redshift#ScheduleDefinitionTypeUnsupportedFault" }, @@ -2922,6 +2937,9 @@ "target": "com.amazonaws.redshift#CreateTagsMessage" }, "errors": [ + { + "target": "com.amazonaws.redshift#InvalidClusterStateFault" + }, { "target": "com.amazonaws.redshift#InvalidTagFault" }, @@ -5676,6 +5694,12 @@ "traits": { "smithy.api#documentation": "

                          The port that the database engine is listening on.

                          " } + }, + "VpcEndpoints": { + "target": "com.amazonaws.redshift#SpartaProxyVpcEndpointList", + "traits": { + "smithy.api#documentation": "

                          Describes a connection endpoint.

                          " + } } }, "traits": { @@ -7167,7 +7191,7 @@ "NodeType": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

                          The new node type of the cluster. If you specify a new node type, you must also\n specify the number of nodes parameter.

                          \n

                          \nFor more information about resizing clusters, go to \nResizing Clusters in Amazon Redshift \nin the Amazon Redshift Cluster Management Guide.

                          \n \n

                          Valid Values: ds2.xlarge | ds2.8xlarge |\n dc1.large | dc1.8xlarge | \n dc2.large | dc2.8xlarge | \n ra3.4xlarge | ra3.16xlarge \n

                          " + "smithy.api#documentation": "

                          The new node type of the cluster. If you specify a new node type, you must also\n specify the number of nodes parameter.

                          \n

                          \nFor more information about resizing clusters, go to \nResizing Clusters in Amazon Redshift \nin the Amazon Redshift Cluster Management Guide.

                          \n \n

                          Valid Values: ds2.xlarge | ds2.8xlarge |\n dc1.large | dc1.8xlarge | \n dc2.large | dc2.8xlarge | \n ra3.xlplus | ra3.4xlarge | ra3.16xlarge\n

                          " } }, "NumberOfNodes": { @@ -7283,6 +7307,24 @@ "traits": { "smithy.api#documentation": "

                          The AWS Key Management Service (KMS) key ID of the encryption key that you want to use\n to encrypt data in the cluster.

                          " } + }, + "AvailabilityZoneRelocation": { + "target": "com.amazonaws.redshift#BooleanOptional", + "traits": { + "smithy.api#documentation": "

                          The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.

                          " + } + }, + "AvailabilityZone": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

                          The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.

                          " + } + }, + "Port": { + "target": "com.amazonaws.redshift#IntegerOptional", + "traits": { + "smithy.api#documentation": "

                          The option to change the port of an Amazon Redshift cluster.

                          " + } } }, "traits": { @@ -9093,7 +9135,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Changes the size of the cluster. You can change the cluster's type, or change the\n number or type of nodes. The default behavior is to use the elastic resize method. With\n an elastic resize, your cluster is available for read and write operations more quickly\n than with the classic resize method.

                          \n

                          Elastic resize operations have the following restrictions:

                          \n
                            \n
                          • \n

                            You can only resize clusters of the following types:

                            \n
                              \n
                            • \n

                              dc1.large (if your cluster is in a VPC)

                              \n
                            • \n
                            • \n

                              dc1.8xlarge (if your cluster is in a VPC)

                              \n
                            • \n
                            • \n

                              dc2.large

                              \n
                            • \n
                            • \n

                              dc2.8xlarge

                              \n
                            • \n
                            • \n

                              ds2.xlarge

                              \n
                            • \n
                            • \n

                              ds2.8xlarge

                              \n
                            • \n
                            • \n

                              ra3.4xlarge

                              \n
                            • \n
                            • \n

                              ra3.16xlarge

                              \n
                            • \n
                            \n
                          • \n
                          • \n

                            The type of nodes that you add must match the node type for the\n cluster.

                            \n
                          • \n
                          " + "smithy.api#documentation": "

                          Changes the size of the cluster. You can change the cluster's type, or change the\n number or type of nodes. The default behavior is to use the elastic resize method. With\n an elastic resize, your cluster is available for read and write operations more quickly\n than with the classic resize method.

                          \n

                          Elastic resize operations have the following restrictions:

                          \n
                            \n
                          • \n

                            You can only resize clusters of the following types:

                            \n
                              \n
                            • \n

                              dc1.large (if your cluster is in a VPC)

                              \n
                            • \n
                            • \n

                              dc1.8xlarge (if your cluster is in a VPC)

                              \n
                            • \n
                            • \n

                              dc2.large

                              \n
                            • \n
                            • \n

                              dc2.8xlarge

                              \n
                            • \n
                            • \n

                              ds2.xlarge

                              \n
                            • \n
                            • \n

                              ds2.8xlarge

                              \n
                            • \n
                            • \n

                              ra3.xlplus

                              \n
                            • \n
                            • \n

                              ra3.4xlarge

                              \n
                            • \n
                            • \n

                              ra3.16xlarge

                              \n
                            • \n
                            \n
                          • \n
                          • \n

                            The type of nodes that you add must match the node type for the\n cluster.

                            \n
                          • \n
                          " } }, "com.amazonaws.redshift#ResizeClusterMessage": { @@ -9119,7 +9161,7 @@ } }, "NumberOfNodes": { - "target": "com.amazonaws.redshift#Integer", + "target": "com.amazonaws.redshift#IntegerOptional", "traits": { "smithy.api#documentation": "

                          The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.

                          " } @@ -9551,6 +9593,12 @@ "traits": { "smithy.api#documentation": "

                          The number of nodes specified when provisioning the restored cluster.

                          " } + }, + "AvailabilityZoneRelocation": { + "target": "com.amazonaws.redshift#BooleanOptional", + "traits": { + "smithy.api#documentation": "

                          The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is restored.

                          " + } } }, "traits": { @@ -9725,6 +9773,9 @@ { "target": "com.amazonaws.redshift#ClusterNotFoundFault" }, + { + "target": "com.amazonaws.redshift#InsufficientClusterCapacityFault" + }, { "target": "com.amazonaws.redshift#InvalidClusterStateFault" } @@ -10364,6 +10415,12 @@ "smithy.api#documentation": "

                          The version ID of the Amazon Redshift engine that is running on the cluster.

                          " } }, + "EngineFullVersion": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

                          The cluster version of the cluster used to create the snapshot. For example, 1.0.15503.

                          " + } + }, "SnapshotType": { "target": "com.amazonaws.redshift#String", "traits": { @@ -10935,8 +10992,37 @@ ] } }, + "com.amazonaws.redshift#SpartaProxyVpcEndpoint": { + "type": "structure", + "members": { + "VpcEndpointId": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

                          The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.

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

                          The connection endpoint for connecting an Amazon Redshift cluster through the proxy.

                          " + } + }, + "com.amazonaws.redshift#SpartaProxyVpcEndpointList": { + "type": "list", + "member": { + "target": "com.amazonaws.redshift#SpartaProxyVpcEndpoint", + "traits": { + "smithy.api#xmlName": "SpartaProxyVpcEndpoint" + } + } + }, "com.amazonaws.redshift#String": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2147483647 + } + } }, "com.amazonaws.redshift#Subnet": { "type": "structure", diff --git a/codegen/sdk-codegen/aws-models/sagemaker-edge.2020-09-23.json b/codegen/sdk-codegen/aws-models/sagemaker-edge.2020-09-23.json new file mode 100644 index 0000000000000..f410bc96747e5 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/sagemaker-edge.2020-09-23.json @@ -0,0 +1,355 @@ +{ + "smithy": "1.0", + "metadata": { + "suppressions": [ + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "HttpResponseCodeSemantics", + "namespace": "*" + }, + { + "id": "PaginatedTrait", + "namespace": "*" + }, + { + "id": "HttpHeaderTrait", + "namespace": "*" + }, + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "Service", + "namespace": "*" + } + ] + }, + "shapes": { + "com.amazonaws.sagemakeredge#AmazonSageMakerEdge": { + "type": "service", + "version": "2020-09-23", + "operations": [ + { + "target": "com.amazonaws.sagemakeredge#GetDeviceRegistration" + }, + { + "target": "com.amazonaws.sagemakeredge#SendHeartbeat" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Sagemaker Edge", + "arnNamespace": "sagemaker", + "cloudFormationName": "SagemakerEdge", + "cloudTrailEventSource": "sagemakeredge.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "sagemaker" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

                          SageMaker Edge Manager dataplane service for communicating with active agents.

                          ", + "smithy.api#title": "Amazon Sagemaker Edge Manager" + } + }, + "com.amazonaws.sagemakeredge#CacheTTLSeconds": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.sagemakeredge#DeviceFleetName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*_*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.sagemakeredge#DeviceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*_*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.sagemakeredge#DeviceRegistration": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.sagemakeredge#Dimension": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9\\/])*$" + } + }, + "com.amazonaws.sagemakeredge#EdgeMetric": { + "type": "structure", + "members": { + "Dimension": { + "target": "com.amazonaws.sagemakeredge#Dimension", + "traits": { + "smithy.api#documentation": "

                          The dimension of metrics published.

                          " + } + }, + "MetricName": { + "target": "com.amazonaws.sagemakeredge#Metric", + "traits": { + "smithy.api#documentation": "

                          Returns the name of the metric.

                          " + } + }, + "Value": { + "target": "com.amazonaws.sagemakeredge#Value", + "traits": { + "smithy.api#documentation": "

                          Returns the value of the metric.

                          " + } + }, + "Timestamp": { + "target": "com.amazonaws.sagemakeredge#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the metric was requested.

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

                          Information required for edge device metrics.

                          " + } + }, + "com.amazonaws.sagemakeredge#EdgeMetrics": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakeredge#EdgeMetric" + } + }, + "com.amazonaws.sagemakeredge#ErrorMessage": { + "type": "string" + }, + "com.amazonaws.sagemakeredge#GetDeviceRegistration": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemakeredge#GetDeviceRegistrationRequest" + }, + "output": { + "target": "com.amazonaws.sagemakeredge#GetDeviceRegistrationResult" + }, + "errors": [ + { + "target": "com.amazonaws.sagemakeredge#InternalServiceException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Use to check if a device is registered with SageMaker Edge Manager.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/GetDeviceRegistration", + "code": 200 + } + } + }, + "com.amazonaws.sagemakeredge#GetDeviceRegistrationRequest": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.sagemakeredge#DeviceName", + "traits": { + "smithy.api#documentation": "

                          The unique name of the device you want to get the registration status from.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemakeredge#DeviceFleetName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet that the device belongs to.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemakeredge#GetDeviceRegistrationResult": { + "type": "structure", + "members": { + "DeviceRegistration": { + "target": "com.amazonaws.sagemakeredge#DeviceRegistration", + "traits": { + "smithy.api#documentation": "

                          Describes if the device is currently registered with SageMaker Edge Manager.

                          " + } + }, + "CacheTTL": { + "target": "com.amazonaws.sagemakeredge#CacheTTLSeconds", + "traits": { + "smithy.api#documentation": "

                          The amount of time, in seconds, that the registration status is stored on the device’s cache before it is refreshed.

                          " + } + } + } + }, + "com.amazonaws.sagemakeredge#InternalServiceException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.sagemakeredge#ErrorMessage" + } + }, + "traits": { + "smithy.api#documentation": "

                          An internal failure occurred. Try your request again. If the problem \n persists, contact AWS customer support.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.sagemakeredge#Metric": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 100 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.sagemakeredge#Model": { + "type": "structure", + "members": { + "ModelName": { + "target": "com.amazonaws.sagemakeredge#ModelName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          " + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemakeredge#Version", + "traits": { + "smithy.api#documentation": "

                          The version of the model.

                          " + } + }, + "LatestSampleTime": { + "target": "com.amazonaws.sagemakeredge#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last data sample taken.

                          " + } + }, + "LatestInference": { + "target": "com.amazonaws.sagemakeredge#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last inference that was made.

                          " + } + }, + "ModelMetrics": { + "target": "com.amazonaws.sagemakeredge#EdgeMetrics", + "traits": { + "smithy.api#documentation": "

                          Information required for model metrics.

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

                          Information about a model deployed on an edge device that is registered with SageMaker Edge Manager.

                          " + } + }, + "com.amazonaws.sagemakeredge#ModelName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.sagemakeredge#Models": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakeredge#Model" + } + }, + "com.amazonaws.sagemakeredge#SendHeartbeat": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemakeredge#SendHeartbeatRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemakeredge#InternalServiceException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Use to get the current status of devices registered on SageMaker Edge Manager.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/SendHeartbeat", + "code": 200 + } + } + }, + "com.amazonaws.sagemakeredge#SendHeartbeatRequest": { + "type": "structure", + "members": { + "AgentMetrics": { + "target": "com.amazonaws.sagemakeredge#EdgeMetrics", + "traits": { + "smithy.api#documentation": "

                          For internal use. Returns a list of SageMaker Edge Manager agent operating metrics.

                          " + } + }, + "Models": { + "target": "com.amazonaws.sagemakeredge#Models", + "traits": { + "smithy.api#documentation": "

                          Returns a list of models deployed on the the device.

                          " + } + }, + "AgentVersion": { + "target": "com.amazonaws.sagemakeredge#Version", + "traits": { + "smithy.api#documentation": "

                          Returns the version of the agent.

                          ", + "smithy.api#required": {} + } + }, + "DeviceName": { + "target": "com.amazonaws.sagemakeredge#DeviceName", + "traits": { + "smithy.api#documentation": "

                          The unique name of the device.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemakeredge#DeviceFleetName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet that the device belongs to.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemakeredge#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.sagemakeredge#Value": { + "type": "double" + }, + "com.amazonaws.sagemakeredge#Version": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "[a-zA-Z0-9\\ \\_\\.]+" + } + } + } +} diff --git a/codegen/sdk-codegen/aws-models/sagemaker-runtime.2017-05-13.json b/codegen/sdk-codegen/aws-models/sagemaker-runtime.2017-05-13.json index 1417655a68934..ac5c7f11f5b9b 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker-runtime.2017-05-13.json +++ b/codegen/sdk-codegen/aws-models/sagemaker-runtime.2017-05-13.json @@ -93,6 +93,16 @@ "smithy.api#pattern": "\\p{ASCII}*" } }, + "com.amazonaws.sagemakerruntime#InferenceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "\\A\\S[\\p{Print}]*\\z" + } + }, "com.amazonaws.sagemakerruntime#InternalFailure": { "type": "structure", "members": { @@ -129,7 +139,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          After you deploy a model into production using Amazon SageMaker hosting services, your\n client applications use this API to get inferences from the model hosted at the\n specified endpoint.

                          \n

                          For an overview of Amazon SageMaker, see How It Works.

                          \n

                          Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add\n additional headers. You should not rely on the behavior of headers outside those\n enumerated in the request syntax.

                          \n

                          Calls to InvokeEndpoint are authenticated by using AWS Signature Version\n 4. For information, see Authenticating Requests (AWS Signature Version 4) in the Amazon S3 API\n Reference.

                          \n

                          A customer's model containers must respond to requests within 60 seconds. The model\n itself can have a maximum processing time of 60 seconds before responding to the\n /invocations. If your model is going to take 50-60 seconds of processing time, the SDK\n socket timeout should be set to be 70 seconds.

                          \n \n

                          Endpoints are scoped to an individual account, and are not public. The URL does\n not contain the account ID, but Amazon SageMaker determines the account ID from the\n authentication token that is supplied by the caller.

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

                          After you deploy a model into production using Amazon SageMaker hosting services, your\n client applications use this API to get inferences from the model hosted at the\n specified endpoint.

                          \n

                          For an overview of Amazon SageMaker, see How It Works.

                          \n

                          Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add\n additional headers. You should not rely on the behavior of headers outside those\n enumerated in the request syntax.

                          \n

                          Calls to InvokeEndpoint are authenticated by using AWS Signature Version\n 4. For information, see Authenticating\n Requests (AWS Signature Version 4) in the Amazon S3 API\n Reference.

                          \n

                          A customer's model containers must respond to requests within 60 seconds. The model\n itself can have a maximum processing time of 60 seconds before responding to\n invocations. If your model is going to take 50-60 seconds of processing time, the SDK\n socket timeout should be set to be 70 seconds.

                          \n \n

                          Endpoints are scoped to an individual account, and are not public. The URL does\n not contain the account ID, but Amazon SageMaker determines the account ID from the\n authentication token that is supplied by the caller.

                          \n
                          ", "smithy.api#http": { "method": "POST", "uri": "/endpoints/{EndpointName}/invocations", @@ -140,18 +150,12 @@ "com.amazonaws.sagemakerruntime#InvokeEndpointInput": { "type": "structure", "members": { - "ContentType": { - "target": "com.amazonaws.sagemakerruntime#Header", - "traits": { - "smithy.api#documentation": "

                          The MIME type of the input data in the request body.

                          ", - "smithy.api#httpHeader": "Content-Type" - } - }, - "TargetModel": { - "target": "com.amazonaws.sagemakerruntime#TargetModelHeader", + "EndpointName": { + "target": "com.amazonaws.sagemakerruntime#EndpointName", "traits": { - "smithy.api#documentation": "

                          The model to request for inference when invoking a multi-model endpoint.

                          ", - "smithy.api#httpHeader": "X-Amzn-SageMaker-Target-Model" + "smithy.api#documentation": "

                          The name of the endpoint that you specified when you created the endpoint using the\n CreateEndpoint API.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, "Body": { @@ -162,33 +166,46 @@ "smithy.api#required": {} } }, + "ContentType": { + "target": "com.amazonaws.sagemakerruntime#Header", + "traits": { + "smithy.api#documentation": "

                          The MIME type of the input data in the request body.

                          ", + "smithy.api#httpHeader": "Content-Type" + } + }, + "Accept": { + "target": "com.amazonaws.sagemakerruntime#Header", + "traits": { + "smithy.api#documentation": "

                          The desired MIME type of the inference in the response.

                          ", + "smithy.api#httpHeader": "Accept" + } + }, "CustomAttributes": { "target": "com.amazonaws.sagemakerruntime#CustomAttributesHeader", "traits": { - "smithy.api#documentation": "

                          Provides additional information about a request for an inference submitted to a model\n hosted at an Amazon SageMaker endpoint. The information is an opaque value that is\n forwarded verbatim. You could use this value, for example, to provide an ID that you can\n use to track a request or to provide other metadata that a service endpoint was\n programmed to process. The value must consist of no more than 1024 visible US-ASCII\n characters as specified in Section 3.3.6. Field Value\n Components of the Hypertext Transfer Protocol (HTTP/1.1). This feature is\n currently supported in the AWS SDKs but not in the Amazon SageMaker Python SDK.

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

                          Provides additional information about a request for an inference submitted to a model\n hosted at an Amazon SageMaker endpoint. The information is an opaque value that is\n forwarded verbatim. You could use this value, for example, to provide an ID that you can\n use to track a request or to provide other metadata that a service endpoint was\n programmed to process. The value must consist of no more than 1024 visible US-ASCII\n characters as specified in Section 3.3.6. Field Value\n Components of the Hypertext Transfer Protocol (HTTP/1.1).

                          \n

                          The code in your model is responsible for setting or updating any custom attributes in\n the response. If your code does not set this value in the response, an empty value is\n returned. For example, if a custom attribute represents the trace ID, your model can\n prepend the custom attribute with Trace ID: in your post-processing\n function.

                          \n\n

                          This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python\n SDK.

                          ", "smithy.api#httpHeader": "X-Amzn-SageMaker-Custom-Attributes" } }, - "EndpointName": { - "target": "com.amazonaws.sagemakerruntime#EndpointName", + "TargetModel": { + "target": "com.amazonaws.sagemakerruntime#TargetModelHeader", "traits": { - "smithy.api#documentation": "

                          The name of the endpoint that you specified when you created the endpoint using the\n CreateEndpoint API.

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

                          The model to request for inference when invoking a multi-model endpoint.

                          ", + "smithy.api#httpHeader": "X-Amzn-SageMaker-Target-Model" } }, "TargetVariant": { "target": "com.amazonaws.sagemakerruntime#TargetVariantHeader", "traits": { - "smithy.api#documentation": "

                          Specify the production variant to send the inference request to when\n invoking an endpoint that is running two or more variants. Note that this parameter\n overrides the default behavior for the endpoint, which is to distribute the invocation\n traffic based on the variant weights.

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

                          Specify the production variant to send the inference request to when invoking an\n endpoint that is running two or more variants. Note that this parameter overrides the\n default behavior for the endpoint, which is to distribute the invocation traffic based\n on the variant weights.

                          \n

                          For information about how to use variant targeting to perform a/b testing, see Test models in\n production\n

                          ", "smithy.api#httpHeader": "X-Amzn-SageMaker-Target-Variant" } }, - "Accept": { - "target": "com.amazonaws.sagemakerruntime#Header", + "InferenceId": { + "target": "com.amazonaws.sagemakerruntime#InferenceId", "traits": { - "smithy.api#documentation": "

                          The desired MIME type of the inference in the response.

                          ", - "smithy.api#httpHeader": "Accept" + "smithy.api#documentation": "

                          If you provide a value, it is added to the captured data when you enable data capture\n on the endpoint.\n For information about data capture, see Capture Data.

                          ", + "smithy.api#httpHeader": "X-Amzn-SageMaker-Inference-Id" } } } @@ -196,13 +213,6 @@ "com.amazonaws.sagemakerruntime#InvokeEndpointOutput": { "type": "structure", "members": { - "InvokedProductionVariant": { - "target": "com.amazonaws.sagemakerruntime#Header", - "traits": { - "smithy.api#documentation": "

                          Identifies the production variant that was invoked.

                          ", - "smithy.api#httpHeader": "x-Amzn-Invoked-Production-Variant" - } - }, "Body": { "target": "com.amazonaws.sagemakerruntime#BodyBlob", "traits": { @@ -218,10 +228,17 @@ "smithy.api#httpHeader": "Content-Type" } }, + "InvokedProductionVariant": { + "target": "com.amazonaws.sagemakerruntime#Header", + "traits": { + "smithy.api#documentation": "

                          Identifies the production variant that was invoked.

                          ", + "smithy.api#httpHeader": "x-Amzn-Invoked-Production-Variant" + } + }, "CustomAttributes": { "target": "com.amazonaws.sagemakerruntime#CustomAttributesHeader", "traits": { - "smithy.api#documentation": "

                          Provides additional information in the response about the inference returned by a\n model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is\n forwarded verbatim. You could use this value, for example, to return an ID received in\n the CustomAttributes header of a request or other metadata that a service\n endpoint was programmed to produce. The value must consist of no more than 1024 visible\n US-ASCII characters as specified in Section 3.3.6. Field Value\n Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer\n wants the custom attribute returned, the model must set the custom attribute to be\n included on the way back.

                          \n

                          This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker\n Python SDK.

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

                          Provides additional information in the response about the inference returned by a\n model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is\n forwarded verbatim. You could use this value, for example, to return an ID received in\n the CustomAttributes header of a request or other metadata that a service\n endpoint was programmed to produce. The value must consist of no more than 1024 visible\n US-ASCII characters as specified in Section 3.3.6. Field Value\n Components of the Hypertext Transfer Protocol (HTTP/1.1). If the customer\n wants the custom attribute returned, the model must set the custom attribute to be\n included on the way back.

                          \n

                          The code in your model is responsible for setting or updating any custom attributes in\n the response. If your code does not set this value in the response, an empty value is\n returned. For example, if a custom attribute represents the trace ID, your model can\n prepend the custom attribute with Trace ID: in your post-processing\n function.

                          \n

                          This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python\n SDK.

                          ", "smithy.api#httpHeader": "X-Amzn-SageMaker-Custom-Attributes" } } @@ -242,10 +259,13 @@ "com.amazonaws.sagemakerruntime#ModelError": { "type": "structure", "members": { - "LogStreamArn": { - "target": "com.amazonaws.sagemakerruntime#LogStreamArn", + "Message": { + "target": "com.amazonaws.sagemakerruntime#Message" + }, + "OriginalStatusCode": { + "target": "com.amazonaws.sagemakerruntime#StatusCode", "traits": { - "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the log stream.

                          " + "smithy.api#documentation": "

                          Original status code.

                          " } }, "OriginalMessage": { @@ -254,14 +274,11 @@ "smithy.api#documentation": "

                          Original message.

                          " } }, - "OriginalStatusCode": { - "target": "com.amazonaws.sagemakerruntime#StatusCode", + "LogStreamArn": { + "target": "com.amazonaws.sagemakerruntime#LogStreamArn", "traits": { - "smithy.api#documentation": "

                          Original status code.

                          " + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the log stream.

                          " } - }, - "Message": { - "target": "com.amazonaws.sagemakerruntime#Message" } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json index 86f2abca27bcc..fc1aee3bda6b1 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.2017-07-24.json @@ -285,6 +285,34 @@ } } }, + "com.amazonaws.sagemaker#AgentVersion": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          Version of the agent.

                          ", + "smithy.api#required": {} + } + }, + "AgentCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of Edge Manager agents.

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

                          Edge Manager agent version.

                          " + } + }, + "com.amazonaws.sagemaker#AgentVersions": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#AgentVersion" + } + }, "com.amazonaws.sagemaker#Alarm": { "type": "structure", "members": { @@ -2975,7 +3003,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Configuration information for tensor collections.

                          " + "smithy.api#documentation": "

                          Configuration information for the Debugger output tensor collections.

                          " } }, "com.amazonaws.sagemaker#CollectionConfigurations": { @@ -4226,6 +4254,158 @@ } } }, + "com.amazonaws.sagemaker#CreateDataQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateDataQualityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateDataQualityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a definition for a job that monitors data quality and drift. For information\n about model monitor, see Amazon SageMaker Model Monitor.

                          " + } + }, + "com.amazonaws.sagemaker#CreateDataQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name for the monitoring job definition.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityBaselineConfig": { + "target": "com.amazonaws.sagemaker#DataQualityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          Configures the constraints and baselines for the monitoring job.

                          " + } + }, + "DataQualityAppSpecification": { + "target": "com.amazonaws.sagemaker#DataQualityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Specifies the container that runs the monitoring job.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityJobInput": { + "target": "com.amazonaws.sagemaker#DataQualityJobInput", + "traits": { + "smithy.api#documentation": "

                          A list of inputs for the monitoring job. Currently endpoints are supported as monitoring\n inputs.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Specifies networking configuration for the monitoring job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management\n User Guide.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#CreateDataQualityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the job definition.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#CreateDeviceFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateDeviceFleetRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a device fleet.

                          " + } + }, + "com.amazonaws.sagemaker#CreateDeviceFleetRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet that the device belongs to.

                          ", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that has access to AWS Internet of Things (IoT).

                          " + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceFleetDescription", + "traits": { + "smithy.api#documentation": "

                          A description of the fleet.

                          " + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          The output configuration for storing sample data collected by the fleet.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          Creates tags for the specified fleet.

                          " + } + } + } + }, "com.amazonaws.sagemaker#CreateDomain": { "type": "operation", "input": { @@ -4330,6 +4510,79 @@ } } }, + "com.amazonaws.sagemaker#CreateEdgePackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateEdgePackagingJobRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Starts a SageMaker Edge Manager model packaging job. Edge Manager will use the model artifacts from the Amazon Simple Storage Service bucket that you specify. After the model has been packaged, Amazon SageMaker saves the resulting artifacts to an S3 bucket that you specify.

                          " + } + }, + "com.amazonaws.sagemaker#CreateEdgePackagingJobRequest": { + "type": "structure", + "members": { + "EdgePackagingJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "CompilationJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the SageMaker Neo compilation job that will be used to locate model artifacts for packaging.

                          ", + "smithy.api#required": {} + } + }, + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          ", + "smithy.api#required": {} + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The version of the model.

                          ", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact SageMaker Neo.

                          ", + "smithy.api#required": {} + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          Provides information about the output location for the packaged model.

                          ", + "smithy.api#required": {} + } + }, + "ResourceKey": { + "target": "com.amazonaws.sagemaker#KmsKeyId", + "traits": { + "smithy.api#documentation": "

                          The CMK to use when encrypting the EBS volume the edge packaging job runs on.

                          " + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          Creates tags for the packaging job.

                          " + } + } + } + }, "com.amazonaws.sagemaker#CreateEndpoint": { "type": "operation", "input": { @@ -5063,6 +5316,202 @@ "smithy.api#documentation": "

                          Creates a model in Amazon SageMaker. In the request, you name the model and describe a primary\n container. For the primary container,\n you specify the Docker image that contains inference code, artifacts (from prior\n training), and a custom environment map that the inference code uses when you deploy the\n model for predictions.

                          \n

                          Use this API to create a model if you want to use Amazon SageMaker hosting services or run a batch\n transform job.

                          \n

                          To host your model, you create an endpoint configuration with the\n CreateEndpointConfig API, and then create an endpoint with the\n CreateEndpoint API. Amazon SageMaker then deploys all of the containers that you\n defined for the model in the hosting environment.

                          \n

                          For an example that calls this method when deploying a model to Amazon SageMaker hosting services,\n see Deploy the\n Model to Amazon SageMaker Hosting Services (AWS SDK for Python (Boto\n 3)).\n

                          \n

                          To run a batch transform using your model, you start a job with the\n CreateTransformJob API. Amazon SageMaker uses your model and your dataset to get\n inferences which are then saved to a specified S3 location.

                          \n

                          In the CreateModel request, you must define a container with the\n PrimaryContainer parameter.

                          \n

                          In the request, you also provide an IAM role that Amazon SageMaker can assume to access model\n artifacts and docker image for deployment on ML compute hosting instances or for batch\n transform jobs. In addition, you also use the IAM role to manage permissions the\n inference code needs. For example, if the inference code access any other AWS resources,\n you grant necessary permissions via this role.

                          " } }, + "com.amazonaws.sagemaker#CreateModelBiasJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateModelBiasJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateModelBiasJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates the definition for a model bias job.

                          " + } + }, + "com.amazonaws.sagemaker#CreateModelBiasJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the bias job definition. The name must be unique within an AWS Region in the\n AWS account.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelBiasBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The baseline configuration for a model bias job.

                          " + } + }, + "ModelBiasAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelBiasAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Configures the model bias job to run a specified Docker container image.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasJobInput": { + "target": "com.amazonaws.sagemaker#ModelBiasJobInput", + "traits": { + "smithy.api#documentation": "

                          Inputs for the model bias job.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Networking options for a model bias job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management\n User Guide.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#CreateModelBiasJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model bias job.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates the definition for a model explainability job.

                          " + } + }, + "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model explainability job definition. The name must be unique within an\n AWS Region in the AWS account.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The baseline configuration for a model explainability job.

                          " + } + }, + "ModelExplainabilityAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Configures the model explainability job to run a specified Docker container\n image.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityJobInput": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityJobInput", + "traits": { + "smithy.api#documentation": "

                          Inputs for the model explainability job.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Networking options for a model explainability job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management\n User Guide.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model explainability job.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#CreateModelInput": { "type": "structure", "members": { @@ -5284,6 +5733,104 @@ } } }, + "com.amazonaws.sagemaker#CreateModelQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#CreateModelQualityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#CreateModelQualityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + }, + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Creates a definition for a job that monitors model quality and drift. For information\n about model monitor, see Amazon SageMaker Model Monitor.

                          " + } + }, + "com.amazonaws.sagemaker#CreateModelQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the monitoring job definition.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelQualityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          Specifies the constraints and baselines for the monitoring job.

                          " + } + }, + "ModelQualityAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelQualityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          The container that runs the monitoring job.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityJobInput": { + "target": "com.amazonaws.sagemaker#ModelQualityJobInput", + "traits": { + "smithy.api#documentation": "

                          A list of the inputs that are monitored. Currently endpoints are supported.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Specifies the network configuration for the monitoring job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management\n User Guide.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#CreateModelQualityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model quality monitoring job.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#CreateMonitoringSchedule": { "type": "operation", "input": { @@ -5986,7 +6533,7 @@ "DebugRuleConfigurations": { "target": "com.amazonaws.sagemaker#DebugRuleConfigurations", "traits": { - "smithy.api#documentation": "

                          Configuration information for debugging rules.

                          " + "smithy.api#documentation": "

                          Configuration information for Debugger rules for debugging output tensors.

                          " } }, "TensorBoardOutputConfig": { @@ -5994,6 +6541,15 @@ }, "ExperimentConfig": { "target": "com.amazonaws.sagemaker#ExperimentConfig" + }, + "ProfilerConfig": { + "target": "com.amazonaws.sagemaker#ProfilerConfig" + }, + "ProfilerRuleConfigurations": { + "target": "com.amazonaws.sagemaker#ProfilerRuleConfigurations", + "traits": { + "smithy.api#documentation": "

                          Configuration information for Debugger rules for profiling system and framework\n metrics.

                          " + } } } }, @@ -6735,6 +7291,85 @@ "smithy.api#documentation": "

                          The data structure used to specify the data to be used for inference in a batch\n transform job and to associate the data that is relevant to the prediction results in\n the output. The input filter provided allows you to exclude input data that is not\n needed for inference in a batch transform job. The output filter provided allows you to\n include input data relevant to interpreting the predictions in the output from the job.\n For more information, see Associate Prediction\n Results with their Corresponding Input Records.

                          " } }, + "com.amazonaws.sagemaker#DataQualityAppSpecification": { + "type": "structure", + "members": { + "ImageUri": { + "target": "com.amazonaws.sagemaker#ImageUri", + "traits": { + "smithy.api#documentation": "

                          The container image that the data quality monitoring job runs.

                          ", + "smithy.api#required": {} + } + }, + "ContainerEntrypoint": { + "target": "com.amazonaws.sagemaker#ContainerEntrypoint", + "traits": { + "smithy.api#documentation": "

                          The entrypoint for a container used to run a monitoring job.

                          " + } + }, + "ContainerArguments": { + "target": "com.amazonaws.sagemaker#MonitoringContainerArguments", + "traits": { + "smithy.api#documentation": "

                          The arguments to send to the container that the monitoring job runs.

                          " + } + }, + "RecordPreprocessorSourceUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          An Amazon S3 URI to a script that is called per row prior to running analysis. It can\n base64 decode the payload and convert it into a flatted json so that the built-in container\n can use the converted data. Applicable only for the built-in (first party)\n containers.

                          " + } + }, + "PostAnalyticsProcessorSourceUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          An Amazon S3 URI to a script that is called after analysis has been performed.\n Applicable only for the built-in (first party) containers.

                          " + } + }, + "Environment": { + "target": "com.amazonaws.sagemaker#MonitoringEnvironmentMap", + "traits": { + "smithy.api#documentation": "

                          Sets the environment variables in the container that the monitoring job runs.

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

                          Information about the container that a data quality monitoring job runs.

                          " + } + }, + "com.amazonaws.sagemaker#DataQualityBaselineConfig": { + "type": "structure", + "members": { + "BaseliningJobName": { + "target": "com.amazonaws.sagemaker#ProcessingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of the job that performs baselining for the data quality monitoring job.

                          " + } + }, + "ConstraintsResource": { + "target": "com.amazonaws.sagemaker#MonitoringConstraintsResource" + }, + "StatisticsResource": { + "target": "com.amazonaws.sagemaker#MonitoringStatisticsResource" + } + }, + "traits": { + "smithy.api#documentation": "

                          Configuration for monitoring constraints and monitoring statistics. These baseline\n resources are compared against the results of the current job from the series of jobs\n scheduled to collect data periodically.

                          " + } + }, + "com.amazonaws.sagemaker#DataQualityJobInput": { + "type": "structure", + "members": { + "EndpointInput": { + "target": "com.amazonaws.sagemaker#EndpointInput", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

                          The input for the data quality monitoring job. Currently endpoints are supported for\n input.

                          " + } + }, "com.amazonaws.sagemaker#DataSource": { "type": "structure", "members": { @@ -6803,31 +7438,31 @@ "LocalPath": { "target": "com.amazonaws.sagemaker#DirectoryPath", "traits": { - "smithy.api#documentation": "

                          Path to local storage location for tensors. Defaults to\n /opt/ml/output/tensors/.

                          " + "smithy.api#documentation": "

                          Path to local storage location for metrics and tensors. Defaults to\n /opt/ml/output/tensors/.

                          " } }, "S3OutputPath": { "target": "com.amazonaws.sagemaker#S3Uri", "traits": { - "smithy.api#documentation": "

                          Path to Amazon S3 storage location for tensors.

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

                          Path to Amazon S3 storage location for metrics and tensors.

                          ", "smithy.api#required": {} } }, "HookParameters": { "target": "com.amazonaws.sagemaker#HookParameters", "traits": { - "smithy.api#documentation": "

                          Configuration information for the debug hook parameters.

                          " + "smithy.api#documentation": "

                          Configuration information for the Debugger hook parameters.

                          " } }, "CollectionConfigurations": { "target": "com.amazonaws.sagemaker#CollectionConfigurations", "traits": { - "smithy.api#documentation": "

                          Configuration information for tensor collections.

                          " + "smithy.api#documentation": "

                          Configuration information for Debugger tensor collections. To learn more about\n how to configure the CollectionConfiguration parameter, \n see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.\n

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

                          Configuration information for the debug hook parameters, collection configuration, and\n storage paths.

                          " + "smithy.api#documentation": "

                          Configuration information for the Debugger hook parameters, metric and tensor collections, and\n storage paths. To learn more about\n how to configure the DebugHookConfig parameter, \n see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          " } }, "com.amazonaws.sagemaker#DebugRuleConfiguration": { @@ -6862,7 +7497,7 @@ "InstanceType": { "target": "com.amazonaws.sagemaker#ProcessingInstanceType", "traits": { - "smithy.api#documentation": "

                          The instance type to deploy for a training job.

                          " + "smithy.api#documentation": "

                          The instance type to deploy a Debugger custom rule for debugging a training job.

                          " } }, "VolumeSizeInGB": { @@ -6874,12 +7509,12 @@ "RuleParameters": { "target": "com.amazonaws.sagemaker#RuleParameters", "traits": { - "smithy.api#documentation": "

                          Runtime configuration for rule container.

                          " + "smithy.api#documentation": "

                          Runtime configuration for rule container.

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

                          Configuration information for debugging rules.

                          " + "smithy.api#documentation": "

                          Configuration information for SageMaker Debugger rules for debugging. To learn more about\n how to configure the DebugRuleConfiguration parameter, \n see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

                          " } }, "com.amazonaws.sagemaker#DebugRuleConfigurations": { @@ -6900,7 +7535,7 @@ "RuleConfigurationName": { "target": "com.amazonaws.sagemaker#RuleConfigurationName", "traits": { - "smithy.api#documentation": "

                          The name of the rule configuration

                          " + "smithy.api#documentation": "

                          The name of the rule configuration.

                          " } }, "RuleEvaluationJobArn": { @@ -7258,6 +7893,58 @@ } } }, + "com.amazonaws.sagemaker#DeleteDataQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteDataQualityJobDefinitionRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a data quality monitoring job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DeleteDataQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the data quality monitoring job definition to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DeleteDeviceFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteDeviceFleetRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes a fleet.

                          " + } + }, + "com.amazonaws.sagemaker#DeleteDeviceFleetRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#DeleteDomain": { "type": "operation", "input": { @@ -7558,6 +8245,58 @@ "smithy.api#documentation": "

                          Deletes a model. The DeleteModel API deletes only the model entry that\n was created in Amazon SageMaker when you called the CreateModel API. It does not\n delete model artifacts, inference code, or the IAM role that you specified when\n creating the model.

                          " } }, + "com.amazonaws.sagemaker#DeleteModelBiasJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteModelBiasJobDefinitionRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes an Amazon SageMaker model bias job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DeleteModelBiasJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model bias job definition to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DeleteModelExplainabilityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteModelExplainabilityJobDefinitionRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes an Amazon SageMaker model explainability job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DeleteModelExplainabilityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model explainability job definition to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#DeleteModelInput": { "type": "structure", "members": { @@ -7638,6 +8377,32 @@ } } }, + "com.amazonaws.sagemaker#DeleteModelQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeleteModelQualityJobDefinitionRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Deletes the secified model quality monitoring job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DeleteModelQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model quality monitoring job definition to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#DeleteMonitoringSchedule": { "type": "operation", "input": { @@ -7720,7 +8485,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deletes a pipeline.

                          " + "smithy.api#documentation": "

                          Deletes a pipeline if there are no in-progress executions.

                          " } }, "com.amazonaws.sagemaker#DeletePipelineRequest": { @@ -8048,6 +8813,34 @@ "smithy.api#documentation": "

                          Currently, the DeploymentConfig API is not supported.

                          " } }, + "com.amazonaws.sagemaker#DeregisterDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DeregisterDevicesRequest" + }, + "traits": { + "smithy.api#documentation": "

                          Deregisters the specified devices. After you deregister a device, you will need to re-register the devices.

                          " + } + }, + "com.amazonaws.sagemaker#DeregisterDevicesRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet the devices belong to.

                          ", + "smithy.api#required": {} + } + }, + "DeviceNames": { + "target": "com.amazonaws.sagemaker#DeviceNames", + "traits": { + "smithy.api#documentation": "

                          The unique IDs of the devices.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#DescribeAction": { "type": "operation", "input": { @@ -8947,6 +9740,306 @@ } } }, + "com.amazonaws.sagemaker#DescribeDataQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeDataQualityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeDataQualityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Gets the details of a data quality monitoring job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeDataQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the data quality monitoring job definition to describe.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeDataQualityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the data quality monitoring job definition.

                          ", + "smithy.api#required": {} + } + }, + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the data quality monitoring job definition.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time that the data quality monitoring job definition was created.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityBaselineConfig": { + "target": "com.amazonaws.sagemaker#DataQualityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The constraints and baselines for the data quality monitoring job definition.

                          " + } + }, + "DataQualityAppSpecification": { + "target": "com.amazonaws.sagemaker#DataQualityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Information about the container that runs the data quality monitoring job.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityJobInput": { + "target": "com.amazonaws.sagemaker#DataQualityJobInput", + "traits": { + "smithy.api#documentation": "

                          The list of inputs for the data quality monitoring job. Currently endpoints are\n supported.

                          ", + "smithy.api#required": {} + } + }, + "DataQualityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          The networking configuration for the data quality monitoring job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + } + } + }, + "com.amazonaws.sagemaker#DescribeDevice": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeDeviceRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeDeviceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Describes the device.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeDeviceFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeDeviceFleetRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeDeviceFleetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          A description of the fleet the device belongs to.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeDeviceFleetRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeDeviceFleetResponse": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetArn": { + "target": "com.amazonaws.sagemaker#DeviceFleetArn", + "traits": { + "smithy.api#documentation": "

                          The The Amazon Resource Name (ARN) of the fleet.

                          ", + "smithy.api#required": {} + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          The output configuration for storing sampled data.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceFleetDescription", + "traits": { + "smithy.api#documentation": "

                          A description of the fleet.

                          " + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the device fleet was created.

                          ", + "smithy.api#required": {} + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the device fleet was last updated.

                          ", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) that has access to AWS Internet of Things (IoT).

                          " + } + }, + "IotRoleAlias": { + "target": "com.amazonaws.sagemaker#IotRoleAlias", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) alias created in AWS Internet of Things (IoT).

                          " + } + } + } + }, + "com.amazonaws.sagemaker#DescribeDeviceRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          Next token of device description.

                          " + } + }, + "DeviceName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The unique ID of the device.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet the devices belong to.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeDeviceResponse": { + "type": "structure", + "members": { + "DeviceArn": { + "target": "com.amazonaws.sagemaker#DeviceArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the device.

                          " + } + }, + "DeviceName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of the device.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceDescription", + "traits": { + "smithy.api#documentation": "

                          A description of the device.

                          " + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet the device belongs to.

                          ", + "smithy.api#required": {} + } + }, + "IotThingName": { + "target": "com.amazonaws.sagemaker#ThingName", + "traits": { + "smithy.api#documentation": "

                          The AWS Internet of Things (IoT) object thing name associated with the device.

                          " + } + }, + "RegistrationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last registration or de-reregistration.

                          ", + "smithy.api#required": {} + } + }, + "LatestHeartbeat": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The last heartbeat received from the device.

                          " + } + }, + "Models": { + "target": "com.amazonaws.sagemaker#EdgeModels", + "traits": { + "smithy.api#documentation": "

                          Models on the device.

                          " + } + }, + "MaxModels": { + "target": "com.amazonaws.sagemaker#Integer", + "traits": { + "smithy.api#documentation": "

                          The maximum number of models.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + } + } + }, "com.amazonaws.sagemaker#DescribeDomain": { "type": "operation", "input": { @@ -9086,6 +10179,127 @@ } } }, + "com.amazonaws.sagemaker#DescribeEdgePackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeEdgePackagingJobRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeEdgePackagingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          A description of edge packaging jobs.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeEdgePackagingJobRequest": { + "type": "structure", + "members": { + "EdgePackagingJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the edge packaging job.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeEdgePackagingJobResponse": { + "type": "structure", + "members": { + "EdgePackagingJobArn": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "EdgePackagingJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "CompilationJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.

                          " + } + }, + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          " + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The version of the model.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.

                          " + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          The output configuration for the edge packaging job.

                          " + } + }, + "ResourceKey": { + "target": "com.amazonaws.sagemaker#KmsKeyId", + "traits": { + "smithy.api#documentation": "

                          The CMK to use when encrypting the EBS volume the job run on.

                          " + } + }, + "EdgePackagingJobStatus": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobStatus", + "traits": { + "smithy.api#documentation": "

                          The current status of the packaging job.

                          ", + "smithy.api#required": {} + } + }, + "EdgePackagingJobStatusMessage": { + "target": "com.amazonaws.sagemaker#String", + "traits": { + "smithy.api#documentation": "

                          Returns a message describing the job status and error messages.

                          " + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the packaging job was created.

                          " + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the job was last updated.

                          " + } + }, + "ModelArtifact": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          The Amazon Simple Storage (S3) URI where model artifacts ares stored.

                          " + } + }, + "ModelSignature": { + "target": "com.amazonaws.sagemaker#String", + "traits": { + "smithy.api#documentation": "

                          The signature document of files in the model artifact.

                          " + } + } + } + }, "com.amazonaws.sagemaker#DescribeEndpoint": { "type": "operation", "input": { @@ -10109,6 +11323,212 @@ "smithy.api#documentation": "

                          Describes a model that you created using the CreateModel\n API.

                          " } }, + "com.amazonaws.sagemaker#DescribeModelBiasJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeModelBiasJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeModelBiasJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns a description of a model bias job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeModelBiasJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model bias job definition. The name must be unique within an AWS Region\n in the AWS account.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeModelBiasJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model bias job.

                          ", + "smithy.api#required": {} + } + }, + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the bias job definition. The name must be unique within an AWS Region in the\n AWS account.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time at which the model bias job was created.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelBiasBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The baseline configuration for a model bias job.

                          " + } + }, + "ModelBiasAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelBiasAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Configures the model bias job to run a specified Docker container image.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasJobInput": { + "target": "com.amazonaws.sagemaker#ModelBiasJobInput", + "traits": { + "smithy.api#documentation": "

                          Inputs for the model bias job.

                          ", + "smithy.api#required": {} + } + }, + "ModelBiasJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Networking options for a model bias job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n has read permission to the input data location and write permission to the output data\n location in Amazon S3.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + } + } + }, + "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns a description of a model explainability job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model explainability job definition. The name must be unique within an\n AWS Region in the AWS account.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model explainability job.

                          ", + "smithy.api#required": {} + } + }, + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the explainability job definition. The name must be unique within an AWS\n Region in the AWS account.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time at which the model explainability job was created.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The baseline configuration for a model explainability job.

                          " + } + }, + "ModelExplainabilityAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Configures the model explainability job to run a specified Docker container\n image.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityJobInput": { + "target": "com.amazonaws.sagemaker#ModelExplainabilityJobInput", + "traits": { + "smithy.api#documentation": "

                          Inputs for the model explainability job.

                          ", + "smithy.api#required": {} + } + }, + "ModelExplainabilityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Networking options for a model explainability job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n has read permission to the input data location and write permission to the output data\n location in Amazon S3.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + } + } + }, "com.amazonaws.sagemaker#DescribeModelInput": { "type": "structure", "members": { @@ -10386,6 +11806,109 @@ } } }, + "com.amazonaws.sagemaker#DescribeModelQualityJobDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#DescribeModelQualityJobDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#DescribeModelQualityJobDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Returns a description of a model quality job definition.

                          " + } + }, + "com.amazonaws.sagemaker#DescribeModelQualityJobDefinitionRequest": { + "type": "structure", + "members": { + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the model quality job. The name must be unique within an AWS Region in the\n AWS account.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#DescribeModelQualityJobDefinitionResponse": { + "type": "structure", + "members": { + "JobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the model quality job.

                          ", + "smithy.api#required": {} + } + }, + "JobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the quality job definition. The name must be unique within an AWS Region in\n the AWS account.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time at which the model quality job was created.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityBaselineConfig": { + "target": "com.amazonaws.sagemaker#ModelQualityBaselineConfig", + "traits": { + "smithy.api#documentation": "

                          The baseline configuration for a model quality job.

                          " + } + }, + "ModelQualityAppSpecification": { + "target": "com.amazonaws.sagemaker#ModelQualityAppSpecification", + "traits": { + "smithy.api#documentation": "

                          Configures the model quality job to run a specified Docker container image.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityJobInput": { + "target": "com.amazonaws.sagemaker#ModelQualityJobInput", + "traits": { + "smithy.api#documentation": "

                          Inputs for the model quality job.

                          ", + "smithy.api#required": {} + } + }, + "ModelQualityJobOutputConfig": { + "target": "com.amazonaws.sagemaker#MonitoringOutputConfig", + "traits": { + "smithy.api#required": {} + } + }, + "JobResources": { + "target": "com.amazonaws.sagemaker#MonitoringResources", + "traits": { + "smithy.api#required": {} + } + }, + "NetworkConfig": { + "target": "com.amazonaws.sagemaker#MonitoringNetworkConfig", + "traits": { + "smithy.api#documentation": "

                          Networking options for a model quality job.

                          " + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to\n perform tasks on your behalf.

                          ", + "smithy.api#required": {} + } + }, + "StoppingCondition": { + "target": "com.amazonaws.sagemaker#MonitoringStoppingCondition" + } + } + }, "com.amazonaws.sagemaker#DescribeMonitoringSchedule": { "type": "operation", "input": { @@ -10439,6 +11962,12 @@ "smithy.api#required": {} } }, + "MonitoringType": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          The type of the monitoring job that this schedule runs. This is one of the following\n values.

                          \n
                            \n
                          • \n

                            \n DATA_QUALITY - The schedule is for a data quality monitoring\n job.

                            \n
                          • \n
                          • \n

                            \n MODEL_QUALITY - The schedule is for a model quality monitoring\n job.

                            \n
                          • \n
                          • \n

                            \n MODEL_BIAS - The schedule is for a bias monitoring job.

                            \n
                          • \n
                          • \n

                            \n MODEL_EXPLAINABILITY - The schedule is for an explainability\n monitoring job.

                            \n
                          • \n
                          " + } + }, "FailureReason": { "target": "com.amazonaws.sagemaker#FailureReason", "traits": { @@ -11431,7 +12960,7 @@ "DebugRuleConfigurations": { "target": "com.amazonaws.sagemaker#DebugRuleConfigurations", "traits": { - "smithy.api#documentation": "

                          Configuration information for debugging rules.

                          " + "smithy.api#documentation": "

                          Configuration information for Debugger rules for debugging output tensors.

                          " } }, "TensorBoardOutputConfig": { @@ -11440,7 +12969,28 @@ "DebugRuleEvaluationStatuses": { "target": "com.amazonaws.sagemaker#DebugRuleEvaluationStatuses", "traits": { - "smithy.api#documentation": "

                          Status about the debug rule evaluation.

                          " + "smithy.api#documentation": "

                          Evaluation status of Debugger rules for debugging on a training job.

                          " + } + }, + "ProfilerConfig": { + "target": "com.amazonaws.sagemaker#ProfilerConfig" + }, + "ProfilerRuleConfigurations": { + "target": "com.amazonaws.sagemaker#ProfilerRuleConfigurations", + "traits": { + "smithy.api#documentation": "

                          Configuration information for Debugger rules for profiling system and framework\n metrics.

                          " + } + }, + "ProfilerRuleEvaluationStatuses": { + "target": "com.amazonaws.sagemaker#ProfilerRuleEvaluationStatuses", + "traits": { + "smithy.api#documentation": "

                          Evaluation status of Debugger rules for profiling on a training job.

                          " + } + }, + "ProfilingStatus": { + "target": "com.amazonaws.sagemaker#ProfilingStatus", + "traits": { + "smithy.api#documentation": "

                          Profiling status of a training job.

                          " } } } @@ -12100,6 +13650,217 @@ ] } }, + "com.amazonaws.sagemaker#Device": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.sagemaker#DeviceName", + "traits": { + "smithy.api#documentation": "

                          The name of the device.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceDescription", + "traits": { + "smithy.api#documentation": "

                          Description of the device.

                          " + } + }, + "IotThingName": { + "target": "com.amazonaws.sagemaker#ThingName", + "traits": { + "smithy.api#documentation": "

                          AWS Internet of Things (IoT) object name.

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

                          Information of a particular device.

                          " + } + }, + "com.amazonaws.sagemaker#DeviceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:[a-z\\-]*:[a-z\\-]*:\\d{12}:[a-z\\-]*/?[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, + "com.amazonaws.sagemaker#DeviceDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + }, + "smithy.api#pattern": "[\\S\\s]+" + } + }, + "com.amazonaws.sagemaker#DeviceFleetArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:device-fleet/?[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, + "com.amazonaws.sagemaker#DeviceFleetDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 800 + }, + "smithy.api#pattern": "[\\S\\s]+" + } + }, + "com.amazonaws.sagemaker#DeviceFleetSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#DeviceFleetSummary" + } + }, + "com.amazonaws.sagemaker#DeviceFleetSummary": { + "type": "structure", + "members": { + "DeviceFleetArn": { + "target": "com.amazonaws.sagemaker#DeviceFleetArn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the device fleet.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          Name of the device fleet.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the device fleet was created.

                          " + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the device fleet was last updated.

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

                          Summary of the device fleet.

                          " + } + }, + "com.amazonaws.sagemaker#DeviceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + } + }, + "com.amazonaws.sagemaker#DeviceNames": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#DeviceName" + } + }, + "com.amazonaws.sagemaker#DeviceStats": { + "type": "structure", + "members": { + "ConnectedDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of devices connected with a heartbeat.

                          ", + "smithy.api#required": {} + } + }, + "RegisteredDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of registered devices.

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

                          Status of devices.

                          " + } + }, + "com.amazonaws.sagemaker#DeviceSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#DeviceSummary" + } + }, + "com.amazonaws.sagemaker#DeviceSummary": { + "type": "structure", + "members": { + "DeviceName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The unique identifier of the device.

                          ", + "smithy.api#required": {} + } + }, + "DeviceArn": { + "target": "com.amazonaws.sagemaker#DeviceArn", + "traits": { + "smithy.api#documentation": "

                          Amazon Resource Name (ARN) of the device.

                          ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceDescription", + "traits": { + "smithy.api#documentation": "

                          A description of the device.

                          " + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet the device belongs to.

                          " + } + }, + "IotThingName": { + "target": "com.amazonaws.sagemaker#ThingName", + "traits": { + "smithy.api#documentation": "

                          The AWS Internet of Things (IoT) object thing name associated with the device..

                          " + } + }, + "RegistrationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last registration or de-reregistration.

                          " + } + }, + "LatestHeartbeat": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The last heartbeat received from the device.

                          " + } + }, + "Models": { + "target": "com.amazonaws.sagemaker#EdgeModelSummaries", + "traits": { + "smithy.api#documentation": "

                          Models on the device.

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

                          Summary of the device.

                          " + } + }, + "com.amazonaws.sagemaker#Devices": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#Device" + } + }, "com.amazonaws.sagemaker#DirectInternetAccess": { "type": "string", "traits": { @@ -12125,6 +13886,9 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.sagemaker#DisableProfiler": { + "type": "boolean" + }, "com.amazonaws.sagemaker#DisableSagemakerServicecatalogPortfolio": { "type": "operation", "input": { @@ -12345,6 +14109,267 @@ "smithy.api#box": {} } }, + "com.amazonaws.sagemaker#EdgeModel": { + "type": "structure", + "members": { + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          ", + "smithy.api#required": {} + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The model version.

                          ", + "smithy.api#required": {} + } + }, + "LatestSampleTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last data sample taken.

                          " + } + }, + "LatestInference": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of the last inference that was made.

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

                          The model on the edge device.

                          " + } + }, + "com.amazonaws.sagemaker#EdgeModelStat": { + "type": "structure", + "members": { + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          ", + "smithy.api#required": {} + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The model version.

                          ", + "smithy.api#required": {} + } + }, + "OfflineDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of devices that have this model version and do not have a heart beat.

                          ", + "smithy.api#required": {} + } + }, + "ConnectedDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of devices that have this model version and have a heart beat.

                          ", + "smithy.api#required": {} + } + }, + "ActiveDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of devices that have this model version, a heart beat, and are currently running.

                          ", + "smithy.api#required": {} + } + }, + "SamplingDeviceCount": { + "target": "com.amazonaws.sagemaker#Long", + "traits": { + "smithy.api#documentation": "

                          The number of devices with this model version and are producing sample data.

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

                          Status of edge devices with this model.

                          " + } + }, + "com.amazonaws.sagemaker#EdgeModelStats": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#EdgeModelStat" + } + }, + "com.amazonaws.sagemaker#EdgeModelSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#EdgeModelSummary" + } + }, + "com.amazonaws.sagemaker#EdgeModelSummary": { + "type": "structure", + "members": { + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          ", + "smithy.api#required": {} + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The version model.

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

                          Summary of model on edge device.

                          " + } + }, + "com.amazonaws.sagemaker#EdgeModels": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#EdgeModel" + } + }, + "com.amazonaws.sagemaker#EdgeOutputConfig": { + "type": "structure", + "members": { + "S3OutputLocation": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          The Amazon Simple Storage (S3) bucker URI.

                          ", + "smithy.api#required": {} + } + }, + "KmsKeyId": { + "target": "com.amazonaws.sagemaker#KmsKeyId", + "traits": { + "smithy.api#documentation": "

                          The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.

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

                          The output configuration.

                          " + } + }, + "com.amazonaws.sagemaker#EdgePackagingJobArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z\\-]*:\\d{12}:edge-packaging-job/?[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, + "com.amazonaws.sagemaker#EdgePackagingJobStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "STARTING", + "name": "Starting" + }, + { + "value": "INPROGRESS", + "name": "InProgress" + }, + { + "value": "COMPLETED", + "name": "Completed" + }, + { + "value": "FAILED", + "name": "Failed" + }, + { + "value": "STOPPING", + "name": "Stopping" + }, + { + "value": "STOPPED", + "name": "Stopped" + } + ] + } + }, + "com.amazonaws.sagemaker#EdgePackagingJobSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobSummary" + } + }, + "com.amazonaws.sagemaker#EdgePackagingJobSummary": { + "type": "structure", + "members": { + "EdgePackagingJobArn": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "EdgePackagingJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "EdgePackagingJobStatus": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobStatus", + "traits": { + "smithy.api#documentation": "

                          The status of the edge packaging job.

                          ", + "smithy.api#required": {} + } + }, + "CompilationJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the SageMaker Neo compilation job.

                          " + } + }, + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the model.

                          " + } + }, + "ModelVersion": { + "target": "com.amazonaws.sagemaker#EdgeVersion", + "traits": { + "smithy.api#documentation": "

                          The version of the model.

                          " + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the job was created.

                          " + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The timestamp of when the edge packaging job was last updated.

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

                          Summary of edge packaging job.

                          " + } + }, + "com.amazonaws.sagemaker#EdgeVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + }, + "smithy.api#pattern": "[a-zA-Z0-9\\ \\_\\.]+" + } + }, "com.amazonaws.sagemaker#EfsUid": { "type": "string", "traits": { @@ -12573,6 +14598,42 @@ "traits": { "smithy.api#documentation": "

                          Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key.\n Defauts to FullyReplicated\n

                          " } + }, + "FeaturesAttribute": { + "target": "com.amazonaws.sagemaker#String", + "traits": { + "smithy.api#documentation": "

                          The attributes of the input data that are the input features.

                          " + } + }, + "InferenceAttribute": { + "target": "com.amazonaws.sagemaker#String", + "traits": { + "smithy.api#documentation": "

                          The attribute of the input data that represents the ground truth label.

                          " + } + }, + "ProbabilityAttribute": { + "target": "com.amazonaws.sagemaker#String", + "traits": { + "smithy.api#documentation": "

                          In a classification problem, the attribute that represents the class probability.

                          " + } + }, + "ProbabilityThresholdAttribute": { + "target": "com.amazonaws.sagemaker#ProbabilityThresholdAttribute", + "traits": { + "smithy.api#documentation": "

                          The threshold for the class probability to be evaluated as a positive result.

                          " + } + }, + "StartTimeOffset": { + "target": "com.amazonaws.sagemaker#MonitoringTimeOffsetString", + "traits": { + "smithy.api#documentation": "

                          If specified, monitoring jobs substract this time from the start time. For information\n about using offsets for scheduling monitoring jobs, see Schedule Model\n Quality Monitoring Jobs.

                          " + } + }, + "EndTimeOffset": { + "target": "com.amazonaws.sagemaker#MonitoringTimeOffsetString", + "traits": { + "smithy.api#documentation": "

                          If specified, monitoring jobs substract this time from the end time. For information\n about using offsets for scheduling monitoring jobs, see Schedule Model\n Quality Monitoring Jobs.

                          " + } } }, "traits": { @@ -13770,6 +15831,85 @@ "com.amazonaws.sagemaker#GenerateCandidateDefinitionsOnly": { "type": "boolean" }, + "com.amazonaws.sagemaker#GetDeviceFleetReport": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#GetDeviceFleetReportRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#GetDeviceFleetReportResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Describes a fleet.

                          " + } + }, + "com.amazonaws.sagemaker#GetDeviceFleetReportRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#GetDeviceFleetReportResponse": { + "type": "structure", + "members": { + "DeviceFleetArn": { + "target": "com.amazonaws.sagemaker#DeviceFleetArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the device.

                          ", + "smithy.api#required": {} + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          The output configuration for storing sample data collected by the fleet.

                          " + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceFleetDescription", + "traits": { + "smithy.api#documentation": "

                          Description of the fleet.

                          " + } + }, + "ReportGenerated": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp of when the report was generated.

                          " + } + }, + "DeviceStats": { + "target": "com.amazonaws.sagemaker#DeviceStats", + "traits": { + "smithy.api#documentation": "

                          Status of devices.

                          " + } + }, + "AgentVersions": { + "target": "com.amazonaws.sagemaker#AgentVersions", + "traits": { + "smithy.api#documentation": "

                          The versions of Edge Manager agent deployed on the fleet.

                          " + } + }, + "ModelStats": { + "target": "com.amazonaws.sagemaker#EdgeModelStats", + "traits": { + "smithy.api#documentation": "

                          Status of model on device.

                          " + } + } + } + }, "com.amazonaws.sagemaker#GetModelPackageGroupPolicy": { "type": "operation", "input": { @@ -15556,6 +17696,9 @@ ] } }, + "com.amazonaws.sagemaker#Integer": { + "type": "integer" + }, "com.amazonaws.sagemaker#IntegerParameterRange": { "type": "structure", "members": { @@ -15645,6 +17788,12 @@ } } }, + "com.amazonaws.sagemaker#IotRoleAlias": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:rolealias/?[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, "com.amazonaws.sagemaker#JobReferenceCode": { "type": "string", "traits": { @@ -17378,6 +19527,279 @@ } } }, + "com.amazonaws.sagemaker#ListDataQualityJobDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListDataQualityJobDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListDataQualityJobDefinitionsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Lists the data quality job definitions in your account.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListDataQualityJobDefinitionsRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sagemaker#EndpointName", + "traits": { + "smithy.api#documentation": "

                          A filter that lists the data quality job definitions associated with the specified\n endpoint.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSortKey", + "traits": { + "smithy.api#documentation": "

                          The field to sort results by. The default is CreationTime.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          The sort order for results. The default is Descending.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the result of the previous ListDataQualityJobDefinitions request was\n truncated, the response includes a NextToken. To retrieve the next set of\n transform jobs, use the token in the next request.>

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of data quality monitoring job definitions to return in the\n response.

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          A string in the data quality monitoring job definition name. This filter returns only\n data quality monitoring job definitions whose name contains the specified string.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only data quality monitoring job definitions created before the\n specified time.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only data quality monitoring job definitions created after the\n specified time.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListDataQualityJobDefinitionsResponse": { + "type": "structure", + "members": { + "JobDefinitionSummaries": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSummaryList", + "traits": { + "smithy.api#documentation": "

                          A list of data quality monitoring job definitions.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the result of the previous ListDataQualityJobDefinitions request was\n truncated, the response includes a NextToken. To retrieve the next set of data\n quality monitoring job definitions, use the token in the next request.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListDeviceFleets": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListDeviceFleetsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListDeviceFleetsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Returns a list of devices in the fleet.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListDeviceFleetsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#ListMaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          The maximum number of results to select.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Filter fleets where packaging job was created after specified time.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Filter fleets where the edge packaging job was created before specified time.

                          " + } + }, + "LastModifiedTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select fleets where the job was updated after X

                          " + } + }, + "LastModifiedTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select fleets where the job was updated before X

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          Filter for fleets containing this name in their fleet device name.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#ListDeviceFleetsSortBy", + "traits": { + "smithy.api#documentation": "

                          The column to sort by.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          What direction to sort in.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListDeviceFleetsResponse": { + "type": "structure", + "members": { + "DeviceFleetSummaries": { + "target": "com.amazonaws.sagemaker#DeviceFleetSummaries", + "traits": { + "smithy.api#documentation": "

                          Summary of the device fleet.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListDeviceFleetsSortBy": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NAME", + "name": "Name" + }, + { + "value": "CREATION_TIME", + "name": "CreationTime" + }, + { + "value": "LAST_MODIFIED_TIME", + "name": "LastModifiedTime" + } + ] + } + }, + "com.amazonaws.sagemaker#ListDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListDevicesRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListDevicesResponse" + }, + "traits": { + "smithy.api#documentation": "

                          A list of devices.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListDevicesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#ListMaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          Maximum number of results to select.

                          " + } + }, + "LatestHeartbeatAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select fleets where the job was updated after X

                          " + } + }, + "ModelName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          A filter that searches devices that contains this name in any of their models.

                          " + } + }, + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          Filter for fleets containing this name in their device fleet name.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListDevicesResponse": { + "type": "structure", + "members": { + "DeviceSummaries": { + "target": "com.amazonaws.sagemaker#DeviceSummaries", + "traits": { + "smithy.api#documentation": "

                          Summary of devices.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + } + } + }, "com.amazonaws.sagemaker#ListDomains": { "type": "operation", "input": { @@ -17429,6 +19851,140 @@ } } }, + "com.amazonaws.sagemaker#ListEdgePackagingJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListEdgePackagingJobsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListEdgePackagingJobsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Returns a list of edge packaging jobs.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListEdgePackagingJobsRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The response from the last list when returning a list large enough to need tokening.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#ListMaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          Maximum number of results to select.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select jobs where the job was created after specified time.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select jobs where the job was created before specified time.

                          " + } + }, + "LastModifiedTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select jobs where the job was updated after specified time.

                          " + } + }, + "LastModifiedTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Select jobs where the job was updated before specified time.

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          Filter for jobs containing this name in their packaging job name.

                          " + } + }, + "ModelNameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          Filter for jobs where the model name contains this string.

                          " + } + }, + "StatusEquals": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobStatus", + "traits": { + "smithy.api#documentation": "

                          The job status to filter for.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#ListEdgePackagingJobsSortBy", + "traits": { + "smithy.api#documentation": "

                          Use to specify what column to sort by.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          What direction to sort by.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListEdgePackagingJobsResponse": { + "type": "structure", + "members": { + "EdgePackagingJobSummaries": { + "target": "com.amazonaws.sagemaker#EdgePackagingJobSummaries", + "traits": { + "smithy.api#documentation": "

                          Summaries of edge packaging jobs.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          Token to use when calling the next page of results.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListEdgePackagingJobsSortBy": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NAME", + "name": "Name" + }, + { + "value": "MODEL_NAME", + "name": "ModelName" + }, + { + "value": "CREATION_TIME", + "name": "CreationTime" + }, + { + "value": "LAST_MODIFIED_TIME", + "name": "LastModifiedTime" + }, + { + "value": "STATUS", + "name": "EdgePackagingJobStatus" + } + ] + } + }, "com.amazonaws.sagemaker#ListEndpointConfigs": { "type": "operation", "input": { @@ -18421,6 +20977,190 @@ "target": "com.amazonaws.sagemaker#StringParameterValue" } }, + "com.amazonaws.sagemaker#ListMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "max": 100 + } + } + }, + "com.amazonaws.sagemaker#ListModelBiasJobDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListModelBiasJobDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListModelBiasJobDefinitionsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Lists model bias jobs definitions that satisfy various filters.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListModelBiasJobDefinitionsRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sagemaker#EndpointName", + "traits": { + "smithy.api#documentation": "

                          Name of the endpoint to monitor for model bias.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSortKey", + "traits": { + "smithy.api#documentation": "

                          Whether to sort results by the Name or CreationTime field. The\n default is CreationTime.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          Whether to sort the results in Ascending or Descending order.\n The default is Descending.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token returned if the response is truncated. To retrieve the next set of job\n executions, use it in the next request.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of model bias jobs to return in the response. The default value is\n 10.

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          Filter for model bias jobs whose name contains a specified string.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model bias jobs created before a specified time.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model bias jobs created after a specified time.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListModelBiasJobDefinitionsResponse": { + "type": "structure", + "members": { + "JobDefinitionSummaries": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSummaryList", + "traits": { + "smithy.api#documentation": "

                          A JSON array in which each element is a summary for a model bias jobs.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs,\n use it in the subsequent request.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitionsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Lists model explainability job definitions that satisfy various filters.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitionsRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sagemaker#EndpointName", + "traits": { + "smithy.api#documentation": "

                          Name of the endpoint to monitor for model explainability.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSortKey", + "traits": { + "smithy.api#documentation": "

                          Whether to sort results by the Name or CreationTime field. The\n default is CreationTime.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          Whether to sort the results in Ascending or Descending order.\n The default is Descending.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token returned if the response is truncated. To retrieve the next set of job\n executions, use it in the next request.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of jobs to return in the response. The default value is 10.

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          Filter for model explainability jobs whose name contains a specified string.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model explainability jobs created before a specified\n time.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model explainability jobs created after a specified\n time.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitionsResponse": { + "type": "structure", + "members": { + "JobDefinitionSummaries": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSummaryList", + "traits": { + "smithy.api#documentation": "

                          A JSON array in which each element is a summary for a explainability bias jobs.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs,\n use it in the subsequent request.

                          " + } + } + } + }, "com.amazonaws.sagemaker#ListModelPackageGroups": { "type": "operation", "input": { @@ -18603,6 +21343,94 @@ } } }, + "com.amazonaws.sagemaker#ListModelQualityJobDefinitions": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#ListModelQualityJobDefinitionsRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#ListModelQualityJobDefinitionsResponse" + }, + "traits": { + "smithy.api#documentation": "

                          Gets a list of model quality monitoring job definitions in your account.

                          ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.sagemaker#ListModelQualityJobDefinitionsRequest": { + "type": "structure", + "members": { + "EndpointName": { + "target": "com.amazonaws.sagemaker#EndpointName", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model quality monitoring job definitions that are associated\n with the specified endpoint.

                          " + } + }, + "SortBy": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSortKey", + "traits": { + "smithy.api#documentation": "

                          The field to sort results by. The default is CreationTime.

                          " + } + }, + "SortOrder": { + "target": "com.amazonaws.sagemaker#SortOrder", + "traits": { + "smithy.api#documentation": "

                          The sort order for results. The default is Descending.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the result of the previous ListModelQualityJobDefinitions request was\n truncated, the response includes a NextToken. To retrieve the next set of\n model quality monitoring job definitions, use the token in the next request.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.sagemaker#MaxResults", + "traits": { + "smithy.api#documentation": "

                          The maximum number of results to return in a call to\n ListModelQualityJobDefinitions.

                          " + } + }, + "NameContains": { + "target": "com.amazonaws.sagemaker#NameContains", + "traits": { + "smithy.api#documentation": "

                          A string in the transform job name. This filter returns only model quality monitoring\n job definitions whose name contains the specified string.

                          " + } + }, + "CreationTimeBefore": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model quality monitoring job definitions created before the\n specified time.

                          " + } + }, + "CreationTimeAfter": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only model quality monitoring job definitions created after the\n specified time.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#ListModelQualityJobDefinitionsResponse": { + "type": "structure", + "members": { + "JobDefinitionSummaries": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSummaryList", + "traits": { + "smithy.api#documentation": "

                          A list of summaries of model quality monitoring job definitions.

                          ", + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.sagemaker#NextToken", + "traits": { + "smithy.api#documentation": "

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model\n quality monitoring job definitions, use it in the next request.

                          " + } + } + } + }, "com.amazonaws.sagemaker#ListModels": { "type": "operation", "input": { @@ -18782,6 +21610,18 @@ "traits": { "smithy.api#documentation": "

                          A filter that retrieves only jobs with a specific status.

                          " } + }, + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          Gets a list of the monitoring job runs of the specified monitoring job\n definitions.

                          " + } + }, + "MonitoringTypeEquals": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only the monitoring job runs of the specified monitoring\n type.

                          " + } } } }, @@ -18888,6 +21728,18 @@ "traits": { "smithy.api#documentation": "

                          A filter that returns only monitoring schedules modified before a specified time.

                          " } + }, + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          Gets a list of the monitoring schedules for the specified monitoring job\n definition.

                          " + } + }, + "MonitoringTypeEquals": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          A filter that returns only the monitoring schedules for the specified monitoring\n type.

                          " + } } } }, @@ -18904,7 +21756,7 @@ "NextToken": { "target": "com.amazonaws.sagemaker#NextToken", "traits": { - "smithy.api#documentation": "

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs,\n use it in the subsequent reques

                          " + "smithy.api#documentation": "

                          If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs,\n use it in the subsequent request.

                          " } } } @@ -19988,7 +22840,7 @@ "target": "com.amazonaws.sagemaker#MaxResults", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

                          The maximum number of\n transform\n jobs to return in the response. The default value is\n 10.

                          " + "smithy.api#documentation": "

                          The maximum number of transform jobs to return in the response. The default value is 10.

                          " } } } @@ -20454,6 +23306,9 @@ ] } }, + "com.amazonaws.sagemaker#Long": { + "type": "long" + }, "com.amazonaws.sagemaker#MaxAutoMLJobRuntimeInSeconds": { "type": "integer", "traits": { @@ -20820,6 +23675,72 @@ "smithy.api#documentation": "

                          Provides information about the location that is configured for storing model\n artifacts.

                          \n

                          Model artifacts are the output that results from training a model, and typically\n consist of trained parameters, a model defintion that desribes how to compute\n inferences, and other metadata.

                          " } }, + "com.amazonaws.sagemaker#ModelBiasAppSpecification": { + "type": "structure", + "members": { + "ImageUri": { + "target": "com.amazonaws.sagemaker#ImageUri", + "traits": { + "smithy.api#documentation": "

                          The container image to be run by the model bias job.

                          ", + "smithy.api#required": {} + } + }, + "ConfigUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          JSON formatted S3 file that defines bias parameters. For more information on this JSON\n configuration file, see Configure bias\n parameters.

                          ", + "smithy.api#required": {} + } + }, + "Environment": { + "target": "com.amazonaws.sagemaker#MonitoringEnvironmentMap", + "traits": { + "smithy.api#documentation": "

                          Sets the environment variables in the Docker container.

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

                          Docker container image configuration object for the model bias job.

                          " + } + }, + "com.amazonaws.sagemaker#ModelBiasBaselineConfig": { + "type": "structure", + "members": { + "BaseliningJobName": { + "target": "com.amazonaws.sagemaker#ProcessingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of the baseline model bias job.

                          " + } + }, + "ConstraintsResource": { + "target": "com.amazonaws.sagemaker#MonitoringConstraintsResource" + } + }, + "traits": { + "smithy.api#documentation": "

                          The configuration for a baseline model bias job.

                          " + } + }, + "com.amazonaws.sagemaker#ModelBiasJobInput": { + "type": "structure", + "members": { + "EndpointInput": { + "target": "com.amazonaws.sagemaker#EndpointInput", + "traits": { + "smithy.api#required": {} + } + }, + "GroundTruthS3Input": { + "target": "com.amazonaws.sagemaker#MonitoringGroundTruthS3Input", + "traits": { + "smithy.api#documentation": "

                          Location of ground truth labels to use in model bias job.

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

                          Inputs for the model bias job.

                          " + } + }, "com.amazonaws.sagemaker#ModelClientConfig": { "type": "structure", "members": { @@ -20874,6 +23795,65 @@ "smithy.api#documentation": "

                          Provides information to verify the integrity of stored model artifacts.

                          " } }, + "com.amazonaws.sagemaker#ModelExplainabilityAppSpecification": { + "type": "structure", + "members": { + "ImageUri": { + "target": "com.amazonaws.sagemaker#ImageUri", + "traits": { + "smithy.api#documentation": "

                          The container image to be run by the model explainability job.

                          ", + "smithy.api#required": {} + } + }, + "ConfigUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          JSON formatted S3 file that defines explainability parameters. For more information on\n this JSON configuration file, see Configure model\n explainability parameters.

                          ", + "smithy.api#required": {} + } + }, + "Environment": { + "target": "com.amazonaws.sagemaker#MonitoringEnvironmentMap", + "traits": { + "smithy.api#documentation": "

                          Sets the environment variables in the Docker container.

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

                          Docker container image configuration object for the model explainability job.

                          " + } + }, + "com.amazonaws.sagemaker#ModelExplainabilityBaselineConfig": { + "type": "structure", + "members": { + "BaseliningJobName": { + "target": "com.amazonaws.sagemaker#ProcessingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of the baseline model explainability job.

                          " + } + }, + "ConstraintsResource": { + "target": "com.amazonaws.sagemaker#MonitoringConstraintsResource" + } + }, + "traits": { + "smithy.api#documentation": "

                          The configuration for a baseline model explainability job.

                          " + } + }, + "com.amazonaws.sagemaker#ModelExplainabilityJobInput": { + "type": "structure", + "members": { + "EndpointInput": { + "target": "com.amazonaws.sagemaker#EndpointInput", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

                          Inputs for the model explainability job.

                          " + } + }, "com.amazonaws.sagemaker#ModelMetrics": { "type": "structure", "members": { @@ -21512,6 +24492,95 @@ "smithy.api#documentation": "

                          Model quality statistics and constraints.

                          " } }, + "com.amazonaws.sagemaker#ModelQualityAppSpecification": { + "type": "structure", + "members": { + "ImageUri": { + "target": "com.amazonaws.sagemaker#ImageUri", + "traits": { + "smithy.api#documentation": "

                          The address of the container image that the monitoring job runs.

                          ", + "smithy.api#required": {} + } + }, + "ContainerEntrypoint": { + "target": "com.amazonaws.sagemaker#ContainerEntrypoint", + "traits": { + "smithy.api#documentation": "

                          Specifies the entrypoint for a container that the monitoring job runs.

                          " + } + }, + "ContainerArguments": { + "target": "com.amazonaws.sagemaker#MonitoringContainerArguments", + "traits": { + "smithy.api#documentation": "

                          An array of arguments for the container used to run the monitoring job.

                          " + } + }, + "RecordPreprocessorSourceUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          An Amazon S3 URI to a script that is called per row prior to running analysis. It can\n base64 decode the payload and convert it into a flatted json so that the built-in container\n can use the converted data. Applicable only for the built-in (first party)\n containers.

                          " + } + }, + "PostAnalyticsProcessorSourceUri": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          An Amazon S3 URI to a script that is called after analysis has been performed.\n Applicable only for the built-in (first party) containers.

                          " + } + }, + "ProblemType": { + "target": "com.amazonaws.sagemaker#MonitoringProblemType", + "traits": { + "smithy.api#documentation": "

                          The machine learning problem type of the model that the monitoring job monitors.

                          " + } + }, + "Environment": { + "target": "com.amazonaws.sagemaker#MonitoringEnvironmentMap", + "traits": { + "smithy.api#documentation": "

                          Sets the environment variables in the container that the monitoring job runs.

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

                          Container image configuration object for the monitoring job.

                          " + } + }, + "com.amazonaws.sagemaker#ModelQualityBaselineConfig": { + "type": "structure", + "members": { + "BaseliningJobName": { + "target": "com.amazonaws.sagemaker#ProcessingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of the job that performs baselining for the monitoring job.

                          " + } + }, + "ConstraintsResource": { + "target": "com.amazonaws.sagemaker#MonitoringConstraintsResource" + } + }, + "traits": { + "smithy.api#documentation": "

                          Configuration for monitoring constraints and monitoring statistics. These baseline\n resources are compared against the results of the current job from the series of jobs\n scheduled to collect data periodically.

                          " + } + }, + "com.amazonaws.sagemaker#ModelQualityJobInput": { + "type": "structure", + "members": { + "EndpointInput": { + "target": "com.amazonaws.sagemaker#EndpointInput", + "traits": { + "smithy.api#required": {} + } + }, + "GroundTruthS3Input": { + "target": "com.amazonaws.sagemaker#MonitoringGroundTruthS3Input", + "traits": { + "smithy.api#documentation": "

                          The ground truth label provided for the model.

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

                          The input for the model quality monitoring job. Currently endponts are supported for\n input for model quality monitoring jobs.

                          " + } + }, "com.amazonaws.sagemaker#ModelSortKey": { "type": "string", "traits": { @@ -21618,6 +24687,12 @@ "com.amazonaws.sagemaker#MonitoringBaselineConfig": { "type": "structure", "members": { + "BaseliningJobName": { + "target": "com.amazonaws.sagemaker#ProcessingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of the job that performs baselining for the monitoring job.

                          " + } + }, "ConstraintsResource": { "target": "com.amazonaws.sagemaker#MonitoringConstraintsResource", "traits": { @@ -21777,7 +24852,7 @@ "EndpointName": { "target": "com.amazonaws.sagemaker#EndpointName", "traits": { - "smithy.api#documentation": "

                          The name of teh endpoint used to run the monitoring job.

                          " + "smithy.api#documentation": "

                          The name of the endpoint used to run the monitoring job.

                          " } }, "FailureReason": { @@ -21785,6 +24860,18 @@ "traits": { "smithy.api#documentation": "

                          Contains the reason a monitoring job failed, if it failed.

                          " } + }, + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the monitoring job.

                          " + } + }, + "MonitoringType": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          The type of the monitoring job.

                          " + } } }, "traits": { @@ -21797,6 +24884,20 @@ "target": "com.amazonaws.sagemaker#MonitoringExecutionSummary" } }, + "com.amazonaws.sagemaker#MonitoringGroundTruthS3Input": { + "type": "structure", + "members": { + "S3Uri": { + "target": "com.amazonaws.sagemaker#MonitoringS3Uri", + "traits": { + "smithy.api#documentation": "

                          The address of the Amazon S3 location of the ground truth labels.

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

                          The ground truth labels for the dataset used for the monitoring job.

                          " + } + }, "com.amazonaws.sagemaker#MonitoringInput": { "type": "structure", "members": { @@ -21891,6 +24992,83 @@ "smithy.api#documentation": "

                          Defines the monitoring job.

                          " } }, + "com.amazonaws.sagemaker#MonitoringJobDefinitionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.sagemaker#MonitoringJobDefinitionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + } + }, + "com.amazonaws.sagemaker#MonitoringJobDefinitionSortKey": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Name", + "name": "NAME" + }, + { + "value": "CreationTime", + "name": "CREATION_TIME" + } + ] + } + }, + "com.amazonaws.sagemaker#MonitoringJobDefinitionSummary": { + "type": "structure", + "members": { + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the monitoring job.

                          ", + "smithy.api#required": {} + } + }, + "MonitoringJobDefinitionArn": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the monitoring job.

                          ", + "smithy.api#required": {} + } + }, + "CreationTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The time that the monitoring job was created.

                          ", + "smithy.api#required": {} + } + }, + "EndpointName": { + "target": "com.amazonaws.sagemaker#EndpointName", + "traits": { + "smithy.api#documentation": "

                          The name of the endpoint that the job monitors.

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

                          Summary information about a monitoring job.

                          " + } + }, + "com.amazonaws.sagemaker#MonitoringJobDefinitionSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionSummary" + } + }, "com.amazonaws.sagemaker#MonitoringMaxRuntimeInSeconds": { "type": "integer", "traits": { @@ -21900,6 +25078,29 @@ } } }, + "com.amazonaws.sagemaker#MonitoringNetworkConfig": { + "type": "structure", + "members": { + "EnableInterContainerTrafficEncryption": { + "target": "com.amazonaws.sagemaker#Boolean", + "traits": { + "smithy.api#documentation": "

                          Whether to encrypt all communications between the instances used for the monitoring\n jobs. Choose True to encrypt communications. Encryption provides greater\n security for distributed jobs, but the processing might take longer.

                          " + } + }, + "EnableNetworkIsolation": { + "target": "com.amazonaws.sagemaker#Boolean", + "traits": { + "smithy.api#documentation": "

                          Whether to allow inbound and outbound network calls to and from the containers used for\n the monitoring job.

                          " + } + }, + "VpcConfig": { + "target": "com.amazonaws.sagemaker#VpcConfig" + } + }, + "traits": { + "smithy.api#documentation": "

                          The networking configuration for the monitoring job.

                          " + } + }, "com.amazonaws.sagemaker#MonitoringOutput": { "type": "structure", "members": { @@ -21948,6 +25149,25 @@ } } }, + "com.amazonaws.sagemaker#MonitoringProblemType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "BinaryClassification", + "name": "BINARY_CLASSIFICATION" + }, + { + "value": "MulticlassClassification", + "name": "MULTICLASS_CLASSIFICATION" + }, + { + "value": "Regression", + "name": "REGRESSION" + } + ] + } + }, "com.amazonaws.sagemaker#MonitoringResources": { "type": "structure", "members": { @@ -22022,6 +25242,12 @@ "smithy.api#documentation": "

                          The status of the monitoring schedule. This can be one of the following values.

                          \n
                            \n
                          • \n

                            \n PENDING - The schedule is pending being created.

                            \n
                          • \n
                          • \n

                            \n FAILED - The schedule failed.

                            \n
                          • \n
                          • \n

                            \n SCHEDULED - The schedule was successfully created.

                            \n
                          • \n
                          • \n

                            \n STOPPED - The schedule was stopped.

                            \n
                          • \n
                          " } }, + "MonitoringType": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          The type of the monitoring job definition to schedule.

                          " + } + }, "FailureReason": { "target": "com.amazonaws.sagemaker#FailureReason", "traits": { @@ -22087,6 +25313,18 @@ "traits": { "smithy.api#documentation": "

                          Defines the monitoring job.

                          " } + }, + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the monitoring job definition to schedule.

                          " + } + }, + "MonitoringType": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          The type of the monitoring job definition to schedule.

                          " + } } }, "traits": { @@ -22171,6 +25409,18 @@ "traits": { "smithy.api#documentation": "

                          The name of the endpoint using the monitoring schedule.

                          " } + }, + "MonitoringJobDefinitionName": { + "target": "com.amazonaws.sagemaker#MonitoringJobDefinitionName", + "traits": { + "smithy.api#documentation": "

                          The name of the monitoring job definition that the schedule is for.

                          " + } + }, + "MonitoringType": { + "target": "com.amazonaws.sagemaker#MonitoringType", + "traits": { + "smithy.api#documentation": "

                          The type of the monitoring job definition that the schedule is for.

                          " + } } }, "traits": { @@ -22212,6 +25462,39 @@ "smithy.api#documentation": "

                          A time limit for how long the monitoring job is allowed to run before stopping.

                          " } }, + "com.amazonaws.sagemaker#MonitoringTimeOffsetString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 15 + }, + "smithy.api#pattern": "^.?P.*" + } + }, + "com.amazonaws.sagemaker#MonitoringType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DataQuality", + "name": "DATA_QUALITY" + }, + { + "value": "ModelQuality", + "name": "MODEL_QUALITY" + }, + { + "value": "ModelBias", + "name": "MODEL_BIAS" + }, + { + "value": "ModelExplainability", + "name": "MODEL_EXPLAINABILITY" + } + ] + } + }, "com.amazonaws.sagemaker#MountPath": { "type": "string", "traits": { @@ -23849,6 +27132,12 @@ "com.amazonaws.sagemaker#PresignedDomainUrl": { "type": "string" }, + "com.amazonaws.sagemaker#ProbabilityThresholdAttribute": { + "type": "double", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.sagemaker#ProblemType": { "type": "string", "traits": { @@ -25125,6 +28414,215 @@ } } }, + "com.amazonaws.sagemaker#ProfilerConfig": { + "type": "structure", + "members": { + "S3OutputPath": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          Path to Amazon S3 storage location for system and framework metrics.

                          ", + "smithy.api#required": {} + } + }, + "ProfilingIntervalInMilliseconds": { + "target": "com.amazonaws.sagemaker#ProfilingIntervalInMilliseconds", + "traits": { + "smithy.api#documentation": "

                          A time interval for capturing system metrics in milliseconds. Available values are\n 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.

                          " + } + }, + "ProfilingParameters": { + "target": "com.amazonaws.sagemaker#ProfilingParameters", + "traits": { + "smithy.api#documentation": "

                          Configuration information for capturing framework metrics. Available key strings for different profiling options are\n DetailedProfilingConfig, PythonProfilingConfig, and DataLoaderProfilingConfig.\n The following codes are configuration structures for the ProfilingParameters parameter. To learn more about\n how to configure the ProfilingParameters parameter, \n see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.\n

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

                          Configuration information for Debugger system monitoring, framework profiling, and\n storage paths.

                          " + } + }, + "com.amazonaws.sagemaker#ProfilerConfigForUpdate": { + "type": "structure", + "members": { + "S3OutputPath": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          Path to Amazon S3 storage location for system and framework metrics.

                          " + } + }, + "ProfilingIntervalInMilliseconds": { + "target": "com.amazonaws.sagemaker#ProfilingIntervalInMilliseconds", + "traits": { + "smithy.api#documentation": "

                          A time interval for capturing system metrics in milliseconds. Available values are\n 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.

                          " + } + }, + "ProfilingParameters": { + "target": "com.amazonaws.sagemaker#ProfilingParameters", + "traits": { + "smithy.api#documentation": "

                          Configuration information for capturing framework metrics. Available key strings for different profiling options are\n DetailedProfilingConfig, PythonProfilingConfig, and DataLoaderProfilingConfig.\n The following codes are configuration structures for the ProfilingParameters parameter. To learn more about\n how to configure the ProfilingParameters parameter, \n see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.\n

                          " + } + }, + "DisableProfiler": { + "target": "com.amazonaws.sagemaker#DisableProfiler", + "traits": { + "smithy.api#documentation": "

                          To disable Debugger monitoring and profiling, set to True.

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

                          Configuration information for updating the Debugger profile parameters, system and framework metrics configurations, and\n storage paths.

                          " + } + }, + "com.amazonaws.sagemaker#ProfilerRuleConfiguration": { + "type": "structure", + "members": { + "RuleConfigurationName": { + "target": "com.amazonaws.sagemaker#RuleConfigurationName", + "traits": { + "smithy.api#documentation": "

                          The name of the rule configuration. It must be unique relative to other rule configuration names.

                          ", + "smithy.api#required": {} + } + }, + "LocalPath": { + "target": "com.amazonaws.sagemaker#DirectoryPath", + "traits": { + "smithy.api#documentation": "

                          Path to local storage location for output of rules. Defaults to /opt/ml/processing/output/rule/.

                          " + } + }, + "S3OutputPath": { + "target": "com.amazonaws.sagemaker#S3Uri", + "traits": { + "smithy.api#documentation": "

                          Path to Amazon S3 storage location for rules.

                          " + } + }, + "RuleEvaluatorImage": { + "target": "com.amazonaws.sagemaker#AlgorithmImage", + "traits": { + "smithy.api#documentation": "

                          The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

                          ", + "smithy.api#required": {} + } + }, + "InstanceType": { + "target": "com.amazonaws.sagemaker#ProcessingInstanceType", + "traits": { + "smithy.api#documentation": "

                          The instance type to deploy a Debugger custom rule for profiling a training job.

                          " + } + }, + "VolumeSizeInGB": { + "target": "com.amazonaws.sagemaker#OptionalVolumeSizeInGB", + "traits": { + "smithy.api#documentation": "

                          The size, in GB, of the ML storage volume attached to the processing instance.

                          " + } + }, + "RuleParameters": { + "target": "com.amazonaws.sagemaker#RuleParameters", + "traits": { + "smithy.api#documentation": "

                          Runtime configuration for rule container.

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

                          Configuration information for profiling rules.

                          " + } + }, + "com.amazonaws.sagemaker#ProfilerRuleConfigurations": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ProfilerRuleConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.sagemaker#ProfilerRuleEvaluationStatus": { + "type": "structure", + "members": { + "RuleConfigurationName": { + "target": "com.amazonaws.sagemaker#RuleConfigurationName", + "traits": { + "smithy.api#documentation": "

                          The name of the rule configuration.

                          " + } + }, + "RuleEvaluationJobArn": { + "target": "com.amazonaws.sagemaker#ProcessingJobArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the rule evaluation job.

                          " + } + }, + "RuleEvaluationStatus": { + "target": "com.amazonaws.sagemaker#RuleEvaluationStatus", + "traits": { + "smithy.api#documentation": "

                          Status of the rule evaluation.

                          " + } + }, + "StatusDetails": { + "target": "com.amazonaws.sagemaker#StatusDetails", + "traits": { + "smithy.api#documentation": "

                          Details from the rule evaluation.

                          " + } + }, + "LastModifiedTime": { + "target": "com.amazonaws.sagemaker#Timestamp", + "traits": { + "smithy.api#documentation": "

                          Timestamp when the rule evaluation status was last modified.

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

                          Information about the status of the rule evaluation.

                          " + } + }, + "com.amazonaws.sagemaker#ProfilerRuleEvaluationStatuses": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemaker#ProfilerRuleEvaluationStatus" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.sagemaker#ProfilingIntervalInMilliseconds": { + "type": "long", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.sagemaker#ProfilingParameters": { + "type": "map", + "key": { + "target": "com.amazonaws.sagemaker#ConfigKey" + }, + "value": { + "target": "com.amazonaws.sagemaker#ConfigValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 20 + } + } + }, + "com.amazonaws.sagemaker#ProfilingStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Enabled", + "name": "ENABLED" + }, + { + "value": "Disabled", + "name": "DISABLED" + } + ] + } + }, "com.amazonaws.sagemaker#ProjectArn": { "type": "string", "traits": { @@ -25599,6 +29097,45 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.sagemaker#RegisterDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#RegisterDevicesRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceLimitExceeded" + } + ], + "traits": { + "smithy.api#documentation": "

                          Register devices.

                          " + } + }, + "com.amazonaws.sagemaker#RegisterDevicesRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + }, + "Devices": { + "target": "com.amazonaws.sagemaker#Devices", + "traits": { + "smithy.api#documentation": "

                          A list of devices to register with SageMaker Edge Manager.

                          ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.sagemaker#TagList", + "traits": { + "smithy.api#documentation": "

                          The tags associated with devices.

                          " + } + } + } + }, "com.amazonaws.sagemaker#RegisterModelStepMetadata": { "type": "structure", "members": { @@ -26218,9 +29755,18 @@ { "target": "com.amazonaws.sagemaker#CreateContext" }, + { + "target": "com.amazonaws.sagemaker#CreateDataQualityJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#CreateDeviceFleet" + }, { "target": "com.amazonaws.sagemaker#CreateDomain" }, + { + "target": "com.amazonaws.sagemaker#CreateEdgePackagingJob" + }, { "target": "com.amazonaws.sagemaker#CreateEndpoint" }, @@ -26254,12 +29800,21 @@ { "target": "com.amazonaws.sagemaker#CreateModel" }, + { + "target": "com.amazonaws.sagemaker#CreateModelBiasJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#CreateModelExplainabilityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#CreateModelPackage" }, { "target": "com.amazonaws.sagemaker#CreateModelPackageGroup" }, + { + "target": "com.amazonaws.sagemaker#CreateModelQualityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#CreateMonitoringSchedule" }, @@ -26329,6 +29884,12 @@ { "target": "com.amazonaws.sagemaker#DeleteContext" }, + { + "target": "com.amazonaws.sagemaker#DeleteDataQualityJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#DeleteDeviceFleet" + }, { "target": "com.amazonaws.sagemaker#DeleteDomain" }, @@ -26359,6 +29920,12 @@ { "target": "com.amazonaws.sagemaker#DeleteModel" }, + { + "target": "com.amazonaws.sagemaker#DeleteModelBiasJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#DeleteModelExplainabilityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#DeleteModelPackage" }, @@ -26368,6 +29935,9 @@ { "target": "com.amazonaws.sagemaker#DeleteModelPackageGroupPolicy" }, + { + "target": "com.amazonaws.sagemaker#DeleteModelQualityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#DeleteMonitoringSchedule" }, @@ -26401,6 +29971,9 @@ { "target": "com.amazonaws.sagemaker#DeleteWorkteam" }, + { + "target": "com.amazonaws.sagemaker#DeregisterDevices" + }, { "target": "com.amazonaws.sagemaker#DescribeAction" }, @@ -26428,9 +30001,21 @@ { "target": "com.amazonaws.sagemaker#DescribeContext" }, + { + "target": "com.amazonaws.sagemaker#DescribeDataQualityJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#DescribeDevice" + }, + { + "target": "com.amazonaws.sagemaker#DescribeDeviceFleet" + }, { "target": "com.amazonaws.sagemaker#DescribeDomain" }, + { + "target": "com.amazonaws.sagemaker#DescribeEdgePackagingJob" + }, { "target": "com.amazonaws.sagemaker#DescribeEndpoint" }, @@ -26464,12 +30049,21 @@ { "target": "com.amazonaws.sagemaker#DescribeModel" }, + { + "target": "com.amazonaws.sagemaker#DescribeModelBiasJobDefinition" + }, + { + "target": "com.amazonaws.sagemaker#DescribeModelExplainabilityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#DescribeModelPackage" }, { "target": "com.amazonaws.sagemaker#DescribeModelPackageGroup" }, + { + "target": "com.amazonaws.sagemaker#DescribeModelQualityJobDefinition" + }, { "target": "com.amazonaws.sagemaker#DescribeMonitoringSchedule" }, @@ -26527,6 +30121,9 @@ { "target": "com.amazonaws.sagemaker#EnableSagemakerServicecatalogPortfolio" }, + { + "target": "com.amazonaws.sagemaker#GetDeviceFleetReport" + }, { "target": "com.amazonaws.sagemaker#GetModelPackageGroupPolicy" }, @@ -26569,9 +30166,21 @@ { "target": "com.amazonaws.sagemaker#ListContexts" }, + { + "target": "com.amazonaws.sagemaker#ListDataQualityJobDefinitions" + }, + { + "target": "com.amazonaws.sagemaker#ListDeviceFleets" + }, + { + "target": "com.amazonaws.sagemaker#ListDevices" + }, { "target": "com.amazonaws.sagemaker#ListDomains" }, + { + "target": "com.amazonaws.sagemaker#ListEdgePackagingJobs" + }, { "target": "com.amazonaws.sagemaker#ListEndpointConfigs" }, @@ -26605,12 +30214,21 @@ { "target": "com.amazonaws.sagemaker#ListLabelingJobsForWorkteam" }, + { + "target": "com.amazonaws.sagemaker#ListModelBiasJobDefinitions" + }, + { + "target": "com.amazonaws.sagemaker#ListModelExplainabilityJobDefinitions" + }, { "target": "com.amazonaws.sagemaker#ListModelPackageGroups" }, { "target": "com.amazonaws.sagemaker#ListModelPackages" }, + { + "target": "com.amazonaws.sagemaker#ListModelQualityJobDefinitions" + }, { "target": "com.amazonaws.sagemaker#ListModels" }, @@ -26677,6 +30295,9 @@ { "target": "com.amazonaws.sagemaker#PutModelPackageGroupPolicy" }, + { + "target": "com.amazonaws.sagemaker#RegisterDevices" + }, { "target": "com.amazonaws.sagemaker#RenderUiTemplate" }, @@ -26698,6 +30319,9 @@ { "target": "com.amazonaws.sagemaker#StopCompilationJob" }, + { + "target": "com.amazonaws.sagemaker#StopEdgePackagingJob" + }, { "target": "com.amazonaws.sagemaker#StopHyperParameterTuningJob" }, @@ -26737,6 +30361,12 @@ { "target": "com.amazonaws.sagemaker#UpdateContext" }, + { + "target": "com.amazonaws.sagemaker#UpdateDeviceFleet" + }, + { + "target": "com.amazonaws.sagemaker#UpdateDevices" + }, { "target": "com.amazonaws.sagemaker#UpdateDomain" }, @@ -26770,6 +30400,9 @@ { "target": "com.amazonaws.sagemaker#UpdatePipelineExecution" }, + { + "target": "com.amazonaws.sagemaker#UpdateTrainingJob" + }, { "target": "com.amazonaws.sagemaker#UpdateTrial" }, @@ -27634,7 +31267,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Starts a previously stopped monitoring schedule.

                          \n \n

                          New monitoring schedules are immediately started after creation.

                          \n
                          " + "smithy.api#documentation": "

                          Starts a previously stopped monitoring schedule.

                          \n \n

                          By default, when you successfully create a new schedule, the status of a monitoring\n schedule is scheduled.

                          \n
                          " } }, "com.amazonaws.sagemaker#StartMonitoringScheduleRequest": { @@ -27850,6 +31483,27 @@ } } }, + "com.amazonaws.sagemaker#StopEdgePackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#StopEdgePackagingJobRequest" + }, + "traits": { + "smithy.api#documentation": "

                          Request to stop an edge packaging job.

                          " + } + }, + "com.amazonaws.sagemaker#StopEdgePackagingJobRequest": { + "type": "structure", + "members": { + "EdgePackagingJobName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the edge packaging job.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#StopHyperParameterTuningJob": { "type": "operation", "input": { @@ -28687,7 +32341,7 @@ } }, "traits": { - "smithy.api#documentation": "

                          Configuration of storage locations for TensorBoard output.

                          " + "smithy.api#documentation": "

                          Configuration of storage locations for the Debugger TensorBoard output data.

                          " } }, "com.amazonaws.sagemaker#TenthFractionsOfACent": { @@ -28709,6 +32363,16 @@ } } }, + "com.amazonaws.sagemaker#ThingName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + }, + "smithy.api#pattern": "[a-zA-Z0-9:_-]+" + } + }, "com.amazonaws.sagemaker#Timestamp": { "type": "timestamp" }, @@ -31109,6 +34773,79 @@ } } }, + "com.amazonaws.sagemaker#UpdateDeviceFleet": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateDeviceFleetRequest" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceInUse" + } + ], + "traits": { + "smithy.api#documentation": "

                          Updates a fleet of devices.

                          " + } + }, + "com.amazonaws.sagemaker#UpdateDeviceFleetRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet.

                          ", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.sagemaker#RoleArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the device.

                          " + } + }, + "Description": { + "target": "com.amazonaws.sagemaker#DeviceFleetDescription", + "traits": { + "smithy.api#documentation": "

                          Description of the fleet.

                          " + } + }, + "OutputConfig": { + "target": "com.amazonaws.sagemaker#EdgeOutputConfig", + "traits": { + "smithy.api#documentation": "

                          Output configuration for storing sample data collected by the fleet.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.sagemaker#UpdateDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateDevicesRequest" + }, + "traits": { + "smithy.api#documentation": "

                          Updates one or more devices in a fleet.

                          " + } + }, + "com.amazonaws.sagemaker#UpdateDevicesRequest": { + "type": "structure", + "members": { + "DeviceFleetName": { + "target": "com.amazonaws.sagemaker#EntityName", + "traits": { + "smithy.api#documentation": "

                          The name of the fleet the devices belong to.

                          ", + "smithy.api#required": {} + } + }, + "Devices": { + "target": "com.amazonaws.sagemaker#Devices", + "traits": { + "smithy.api#documentation": "

                          List of devices to register with Edge Manager agent.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#UpdateDomain": { "type": "operation", "input": { @@ -31763,6 +35500,59 @@ } } }, + "com.amazonaws.sagemaker#UpdateTrainingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemaker#UpdateTrainingJobRequest" + }, + "output": { + "target": "com.amazonaws.sagemaker#UpdateTrainingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.sagemaker#ResourceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

                          Update a model training job to request a new Debugger profiling configuration.

                          " + } + }, + "com.amazonaws.sagemaker#UpdateTrainingJobRequest": { + "type": "structure", + "members": { + "TrainingJobName": { + "target": "com.amazonaws.sagemaker#TrainingJobName", + "traits": { + "smithy.api#documentation": "

                          The name of a training job to update the Debugger profiling configuration.

                          ", + "smithy.api#required": {} + } + }, + "ProfilerConfig": { + "target": "com.amazonaws.sagemaker#ProfilerConfigForUpdate", + "traits": { + "smithy.api#documentation": "

                          Configuration information for Debugger system monitoring, framework profiling, and\n storage paths.

                          " + } + }, + "ProfilerRuleConfigurations": { + "target": "com.amazonaws.sagemaker#ProfilerRuleConfigurations", + "traits": { + "smithy.api#documentation": "

                          Configuration information for Debugger rules for profiling system and framework\n metrics.

                          " + } + } + } + }, + "com.amazonaws.sagemaker#UpdateTrainingJobResponse": { + "type": "structure", + "members": { + "TrainingJobArn": { + "target": "com.amazonaws.sagemaker#TrainingJobArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the training job.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.sagemaker#UpdateTrial": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/service-catalog-appregistry.2020-06-24.json b/codegen/sdk-codegen/aws-models/service-catalog-appregistry.2020-06-24.json index ea124385b13cf..9c24e88e68f28 100644 --- a/codegen/sdk-codegen/aws-models/service-catalog-appregistry.2020-06-24.json +++ b/codegen/sdk-codegen/aws-models/service-catalog-appregistry.2020-06-24.json @@ -75,6 +75,15 @@ { "target": "com.amazonaws.servicecatalogappregistry#ListAttributeGroups" }, + { + "target": "com.amazonaws.servicecatalogappregistry#ListTagsForResource" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#TagResource" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#UntagResource" + }, { "target": "com.amazonaws.servicecatalogappregistry#UpdateApplication" }, @@ -1445,6 +1454,58 @@ } } }, + "com.amazonaws.servicecatalogappregistry#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicecatalogappregistry#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.servicecatalogappregistry#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicecatalogappregistry#InternalServerException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Lists all of the tags on the resource.

                          ", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.servicecatalogappregistry#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.servicecatalogappregistry#Arn", + "traits": { + "smithy.api#documentation": "

                          The Amazon resource name (ARN) that specifies the resource.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.servicecatalogappregistry#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.servicecatalogappregistry#Tags", + "traits": { + "smithy.api#documentation": "

                          The tags on the resource.

                          " + } + } + } + }, "com.amazonaws.servicecatalogappregistry#MaxResults": { "type": "integer", "traits": { @@ -1566,6 +1627,70 @@ "smithy.api#pattern": "(?!aws:)[a-zA-Z+-=._:/]+" } }, + "com.amazonaws.servicecatalogappregistry#TagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.servicecatalogappregistry#TagKey" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.servicecatalogappregistry#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicecatalogappregistry#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.servicecatalogappregistry#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicecatalogappregistry#InternalServerException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Assigns one or more tags (key-value pairs) to the specified resource.

                          \n

                          Each tag consists of a key and an optional value. If a tag with the same key is already associated with the resource, this action updates its value.

                          ", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.servicecatalogappregistry#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.servicecatalogappregistry#Arn", + "traits": { + "smithy.api#documentation": "

                          The Amazon resource name (ARN) that specifies the resource.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.servicecatalogappregistry#Tags", + "traits": { + "smithy.api#documentation": "

                          The new or modified tags for the resource.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.servicecatalogappregistry#TagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.servicecatalogappregistry#TagValue": { "type": "string", "traits": { @@ -1597,6 +1722,59 @@ "smithy.api#timestampFormat": "date-time" } }, + "com.amazonaws.servicecatalogappregistry#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicecatalogappregistry#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.servicecatalogappregistry#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicecatalogappregistry#InternalServerException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.servicecatalogappregistry#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Removes tags from a resource.

                          ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{resourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.servicecatalogappregistry#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.servicecatalogappregistry#Arn", + "traits": { + "smithy.api#documentation": "

                          The Amazon resource name (ARN) that specifies the resource.

                          ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.servicecatalogappregistry#TagKeys", + "traits": { + "smithy.api#documentation": "

                          A list of the tag keys to remove from the specified resource.

                          ", + "smithy.api#httpQuery": "tagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.servicecatalogappregistry#UntagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.servicecatalogappregistry#UpdateApplication": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json b/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json index 99ee950357f26..0df65bd15e369 100644 --- a/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json +++ b/codegen/sdk-codegen/aws-models/ssm.2014-11-06.json @@ -318,6 +318,9 @@ { "target": "com.amazonaws.ssm#CreateOpsItem" }, + { + "target": "com.amazonaws.ssm#CreateOpsMetadata" + }, { "target": "com.amazonaws.ssm#CreatePatchBaseline" }, @@ -339,6 +342,9 @@ { "target": "com.amazonaws.ssm#DeleteMaintenanceWindow" }, + { + "target": "com.amazonaws.ssm#DeleteOpsMetadata" + }, { "target": "com.amazonaws.ssm#DeleteParameter" }, @@ -504,6 +510,9 @@ { "target": "com.amazonaws.ssm#GetOpsItem" }, + { + "target": "com.amazonaws.ssm#GetOpsMetadata" + }, { "target": "com.amazonaws.ssm#GetOpsSummary" }, @@ -558,6 +567,9 @@ { "target": "com.amazonaws.ssm#ListInventoryEntries" }, + { + "target": "com.amazonaws.ssm#ListOpsMetadata" + }, { "target": "com.amazonaws.ssm#ListResourceComplianceSummaries" }, @@ -648,6 +660,9 @@ { "target": "com.amazonaws.ssm#UpdateOpsItem" }, + { + "target": "com.amazonaws.ssm#UpdateOpsMetadata" + }, { "target": "com.amazonaws.ssm#UpdatePatchBaseline" }, @@ -931,7 +946,7 @@ "ApplyOnlyAtCronInterval": { "target": "com.amazonaws.ssm#ApplyOnlyAtCronInterval", "traits": { - "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it.

                          " + "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it. This parameter is not supported for rate\n expressions.

                          " } } }, @@ -1608,7 +1623,7 @@ "ApplyOnlyAtCronInterval": { "target": "com.amazonaws.ssm#ApplyOnlyAtCronInterval", "traits": { - "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it.

                          " + "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it. This parameter is not supported for rate\n expressions.

                          " } } }, @@ -3976,7 +3991,7 @@ "ApplyOnlyAtCronInterval": { "target": "com.amazonaws.ssm#ApplyOnlyAtCronInterval", "traits": { - "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it.

                          " + "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it. This parameter is not supported for rate\n expressions.

                          " } } }, @@ -4086,7 +4101,7 @@ "ApplyOnlyAtCronInterval": { "target": "com.amazonaws.ssm#ApplyOnlyAtCronInterval", "traits": { - "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it.

                          " + "smithy.api#documentation": "

                          By default, when you create a new associations, the system runs it immediately after it is\n created and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you create it. This parameter is not supported for rate\n expressions.

                          " } } } @@ -4429,6 +4444,64 @@ } } }, + "com.amazonaws.ssm#CreateOpsMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#CreateOpsMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ssm#CreateOpsMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataAlreadyExistsException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataInvalidArgumentException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataLimitExceededException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataTooManyUpdatesException" + } + ], + "traits": { + "smithy.api#documentation": "

                          If you create a new application in AppManager, Systems Manager calls this API action to specify\n information about the new application, including the application type.

                          " + } + }, + "com.amazonaws.ssm#CreateOpsMetadataRequest": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ssm#OpsMetadataResourceId", + "traits": { + "smithy.api#documentation": "

                          A resource ID for a new AppManager application.

                          ", + "smithy.api#required": {} + } + }, + "Metadata": { + "target": "com.amazonaws.ssm#MetadataMap", + "traits": { + "smithy.api#documentation": "

                          Metadata for a new AppManager application.

                          " + } + } + } + }, + "com.amazonaws.ssm#CreateOpsMetadataResult": { + "type": "structure", + "members": { + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created by the call.

                          " + } + } + } + }, "com.amazonaws.ssm#CreatePatchBaseline": { "type": "operation", "input": { @@ -4921,6 +4994,45 @@ } } }, + "com.amazonaws.ssm#DeleteOpsMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#DeleteOpsMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ssm#DeleteOpsMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataInvalidArgumentException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Delete OpsMetadata related to an application.

                          " + } + }, + "com.amazonaws.ssm#DeleteOpsMetadataRequest": { + "type": "structure", + "members": { + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an OpsMetadata Object to delete.

                          ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.ssm#DeleteOpsMetadataResult": { + "type": "structure", + "members": {} + }, "com.amazonaws.ssm#DeleteParameter": { "type": "operation", "input": { @@ -7568,7 +7680,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Lists the properties of available patches organized by product, product family,\n classification, severity, and other properties of available patches. You can use the reported\n properties in the filters you specify in requests for actions such as CreatePatchBaseline, UpdatePatchBaseline, DescribeAvailablePatches, and DescribePatchBaselines.

                          \n

                          The following section lists the properties that can be used in filters for each major\n operating system type:

                          \n
                          \n
                          AMAZON_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          AMAZON_LINUX_2
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          CENTOS
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          DEBIAN
                          \n
                          \n

                          Valid properties: PRODUCT, PRIORITY

                          \n
                          \n
                          ORACLE_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          REDHAT_ENTERPRISE_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          SUSE
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          UBUNTU
                          \n
                          \n

                          Valid properties: PRODUCT, PRIORITY

                          \n
                          \n
                          WINDOWS
                          \n
                          \n

                          Valid properties: PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, MSRC_SEVERITY

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

                          Lists the properties of available patches organized by product, product family,\n classification, severity, and other properties of available patches. You can use the reported\n properties in the filters you specify in requests for actions such as CreatePatchBaseline, UpdatePatchBaseline, DescribeAvailablePatches, and DescribePatchBaselines.

                          \n

                          The following section lists the properties that can be used in filters for each major\n operating system type:

                          \n
                          \n
                          AMAZON_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          AMAZON_LINUX_2
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          CENTOS
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          DEBIAN
                          \n
                          \n

                          Valid properties: PRODUCT, PRIORITY

                          \n
                          \n
                          MACOS
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION

                          \n
                          \n
                          ORACLE_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          REDHAT_ENTERPRISE_LINUX
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          SUSE
                          \n
                          \n

                          Valid properties: PRODUCT, CLASSIFICATION, SEVERITY

                          \n
                          \n
                          UBUNTU
                          \n
                          \n

                          Valid properties: PRODUCT, PRIORITY

                          \n
                          \n
                          WINDOWS
                          \n
                          \n

                          Valid properties: PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, MSRC_SEVERITY

                          \n
                          \n
                          ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -7597,7 +7709,7 @@ "PatchSet": { "target": "com.amazonaws.ssm#PatchSet", "traits": { - "smithy.api#documentation": "

                          Indicates whether to list patches for the Windows operating system or for Microsoft\n applications. Not applicable for Linux operating systems.

                          " + "smithy.api#documentation": "

                          Indicates whether to list patches for the Windows operating system or for Microsoft\n applications. Not applicable for the Linux or macOS operating systems.

                          " } }, "MaxResults": { @@ -10027,6 +10139,86 @@ } } }, + "com.amazonaws.ssm#GetOpsMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#GetOpsMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ssm#GetOpsMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataInvalidArgumentException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

                          View operational metadata related to an application in AppManager.

                          " + } + }, + "com.amazonaws.ssm#GetOpsMetadataMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ssm#GetOpsMetadataRequest": { + "type": "structure", + "members": { + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of an OpsMetadata Object to view.

                          ", + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.ssm#GetOpsMetadataMaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          The maximum number of items to return for this call. The call also returns a token that you\n can specify in a subsequent call to get the next set of results.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

                          A token to start the list. Use this token to get the next set of results.

                          " + } + } + } + }, + "com.amazonaws.ssm#GetOpsMetadataResult": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ssm#OpsMetadataResourceId", + "traits": { + "smithy.api#documentation": "

                          The resource ID of the AppManager application.

                          " + } + }, + "Metadata": { + "target": "com.amazonaws.ssm#MetadataMap", + "traits": { + "smithy.api#documentation": "

                          OpsMetadata for an AppManager application.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of items to return. Use this token to get the next set of\n results.

                          " + } + } + } + }, "com.amazonaws.ssm#GetOpsSummary": { "type": "operation", "input": { @@ -12992,7 +13184,7 @@ "AssociationFilterList": { "target": "com.amazonaws.ssm#AssociationFilterList", "traits": { - "smithy.api#documentation": "

                          One or more filters. Use a filter to return a more specific list of results.

                          \n \n

                          Filtering associations using the InstanceID attribute only returns legacy associations created using the InstanceID attribute. Associations targeting the instance that are part of the Target Attributes ResourceGroup or Tags are not returned.

                          \n
                          " + "smithy.api#documentation": "

                          One or more filters. Use a filter to return a more specific list of results.

                          \n \n

                          Filtering associations using the InstanceID attribute only returns legacy\n associations created using the InstanceID attribute. Associations targeting the\n instance that are part of the Target Attributes ResourceGroup or Tags\n are not returned.

                          \n
                          " } }, "MaxResults": { @@ -13622,6 +13814,76 @@ } } }, + "com.amazonaws.ssm#ListOpsMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#ListOpsMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ssm#ListOpsMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataInvalidArgumentException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Systems Manager calls this API action when displaying all AppManager OpsMetadata objects or\n blobs.

                          " + } + }, + "com.amazonaws.ssm#ListOpsMetadataMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.ssm#ListOpsMetadataRequest": { + "type": "structure", + "members": { + "Filters": { + "target": "com.amazonaws.ssm#OpsMetadataFilterList", + "traits": { + "smithy.api#documentation": "

                          One or more filters to limit the number of OpsMetadata objects returned by the\n call.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.ssm#ListOpsMetadataMaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

                          The maximum number of items to return for this call. The call also returns a token that you\n can specify in a subsequent call to get the next set of results.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

                          A token to start the list. Use this token to get the next set of results.

                          " + } + } + } + }, + "com.amazonaws.ssm#ListOpsMetadataResult": { + "type": "structure", + "members": { + "OpsMetadataList": { + "target": "com.amazonaws.ssm#OpsMetadataList", + "traits": { + "smithy.api#documentation": "

                          Returns a list of OpsMetadata objects.

                          " + } + }, + "NextToken": { + "target": "com.amazonaws.ssm#NextToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of items to return. Use this token to get the next set of\n results.

                          " + } + } + } + }, "com.amazonaws.ssm#ListResourceComplianceSummaries": { "type": "operation", "input": { @@ -14970,6 +15232,66 @@ } } }, + "com.amazonaws.ssm#MetadataKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^(?!\\s*$).+" + } + }, + "com.amazonaws.ssm#MetadataKeysToDeleteList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#MetadataKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ssm#MetadataMap": { + "type": "map", + "key": { + "target": "com.amazonaws.ssm#MetadataKey" + }, + "value": { + "target": "com.amazonaws.ssm#MetadataValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.ssm#MetadataValue": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.ssm#MetadataValueString", + "traits": { + "smithy.api#documentation": "

                          Metadata value to assign to an AppManager application.

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

                          Metadata to assign to an AppManager application.

                          " + } + }, + "com.amazonaws.ssm#MetadataValueString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4096 + } + } + }, "com.amazonaws.ssm#ModifyDocumentPermission": { "type": "operation", "input": { @@ -15192,6 +15514,10 @@ { "value": "DEBIAN", "name": "Debian" + }, + { + "value": "MACOS", + "name": "MacOS" } ] } @@ -16086,6 +16412,213 @@ } } }, + "com.amazonaws.ssm#OpsMetadata": { + "type": "structure", + "members": { + "ResourceId": { + "target": "com.amazonaws.ssm#OpsMetadataResourceId", + "traits": { + "smithy.api#documentation": "

                          The ID of the AppManager application.

                          " + } + }, + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the OpsMetadata Object or blob.

                          " + } + }, + "LastModifiedDate": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

                          The date the OpsMetadata object was last updated.

                          " + } + }, + "LastModifiedUser": { + "target": "com.amazonaws.ssm#String", + "traits": { + "smithy.api#documentation": "

                          The user name who last updated the OpsMetadata object.

                          " + } + }, + "CreationDate": { + "target": "com.amazonaws.ssm#DateTime", + "traits": { + "smithy.api#documentation": "

                          The date the OpsMetadata objects was created.

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

                          Operational metadata for an application in AppManager.

                          " + } + }, + "com.amazonaws.ssm#OpsMetadataAlreadyExistsException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          An OpsMetadata object already exists for the selected resource.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ssm#OpsMetadataArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1011 + }, + "smithy.api#pattern": "arn:(aws[a-zA-Z-]*)?:ssm:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:opsmetadata\\/([a-zA-Z0-9-_\\.\\/]*)" + } + }, + "com.amazonaws.ssm#OpsMetadataFilter": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.ssm#OpsMetadataFilterKey", + "traits": { + "smithy.api#documentation": "

                          A filter key.

                          ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.ssm#OpsMetadataFilterValueList", + "traits": { + "smithy.api#documentation": "

                          A filter value.

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

                          A filter to limit the number of OpsMetadata objects displayed.

                          " + } + }, + "com.amazonaws.ssm#OpsMetadataFilterKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(?!\\s*$).+" + } + }, + "com.amazonaws.ssm#OpsMetadataFilterList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#OpsMetadataFilter" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, + "com.amazonaws.ssm#OpsMetadataFilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.ssm#OpsMetadataFilterValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#OpsMetadataFilterValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.ssm#OpsMetadataInvalidArgumentException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          One of the arguments passed is invalid.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ssm#OpsMetadataKeyLimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The OpsMetadata object exceeds the maximum number of OpsMetadata keys that you can assign to an application in AppManager.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ssm#OpsMetadataLimitExceededException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          Your account reached the maximum number of OpsMetadata objects allowed by AppManager. The\n maximum is 200 OpsMetadata objects. Delete one or more OpsMetadata object and try again.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ssm#OpsMetadataList": { + "type": "list", + "member": { + "target": "com.amazonaws.ssm#OpsMetadata" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.ssm#OpsMetadataNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The OpsMetadata object does not exist.

                          ", + "smithy.api#error": "client" + } + }, + "com.amazonaws.ssm#OpsMetadataResourceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^(?!\\s*$).+" + } + }, + "com.amazonaws.ssm#OpsMetadataTooManyUpdatesException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ssm#String" + } + }, + "traits": { + "smithy.api#documentation": "

                          The system is processing too many concurrent updates. Wait a few moments and try\n again.

                          ", + "smithy.api#error": "client" + } + }, "com.amazonaws.ssm#OpsResultAttribute": { "type": "structure", "members": { @@ -16906,7 +17439,7 @@ "CVEIds": { "target": "com.amazonaws.ssm#PatchCVEIdList", "traits": { - "smithy.api#documentation": "

                          The Common Vulnerabilities and Exposures (CVE) ID of the patch. For example,\n CVE-1999-0067. Applies to Linux-based instances only.

                          " + "smithy.api#documentation": "

                          The Common Vulnerabilities and Exposures (CVE) ID of the patch. For example,\n CVE-2011-3192. Applies to Linux-based instances only.

                          " } }, "Name": { @@ -21484,7 +22017,7 @@ "ApplyOnlyAtCronInterval": { "target": "com.amazonaws.ssm#ApplyOnlyAtCronInterval", "traits": { - "smithy.api#documentation": "

                          By default, when you update an association, the system runs it immediately after it is\n updated and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you update it.

                          \n

                          Also, if you specified this option when you created the association, you can reset it. To do\n so, specify the no-apply-only-at-cron-interval parameter when you update the\n association from the command line. This parameter forces the association to run immediately after\n updating it and according to the interval specified.

                          " + "smithy.api#documentation": "

                          By default, when you update an association, the system runs it immediately after it is\n updated and then according to the schedule you specified. Specify this option if you don't want\n an association to run immediately after you update it. This parameter is not supported for rate\n expressions.

                          \n

                          Also, if you specified this option when you created the association, you can reset it. To do\n so, specify the no-apply-only-at-cron-interval parameter when you update the\n association from the command line. This parameter forces the association to run immediately after\n updating it and according to the interval specified.

                          " } } } @@ -22372,6 +22905,70 @@ "type": "structure", "members": {} }, + "com.amazonaws.ssm#UpdateOpsMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.ssm#UpdateOpsMetadataRequest" + }, + "output": { + "target": "com.amazonaws.ssm#UpdateOpsMetadataResult" + }, + "errors": [ + { + "target": "com.amazonaws.ssm#InternalServerError" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataInvalidArgumentException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataKeyLimitExceededException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataNotFoundException" + }, + { + "target": "com.amazonaws.ssm#OpsMetadataTooManyUpdatesException" + } + ], + "traits": { + "smithy.api#documentation": "

                          Systems Manager calls this API action when you edit OpsMetadata in AppManager.

                          " + } + }, + "com.amazonaws.ssm#UpdateOpsMetadataRequest": { + "type": "structure", + "members": { + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resoure Name (ARN) of the OpsMetadata Object to update.

                          ", + "smithy.api#required": {} + } + }, + "MetadataToUpdate": { + "target": "com.amazonaws.ssm#MetadataMap", + "traits": { + "smithy.api#documentation": "

                          Metadata to add to an OpsMetadata object.

                          " + } + }, + "KeysToDelete": { + "target": "com.amazonaws.ssm#MetadataKeysToDeleteList", + "traits": { + "smithy.api#documentation": "

                          The metadata keys to delete from the OpsMetadata object.

                          " + } + } + } + }, + "com.amazonaws.ssm#UpdateOpsMetadataResult": { + "type": "structure", + "members": { + "OpsMetadataArn": { + "target": "com.amazonaws.ssm#OpsMetadataArn", + "traits": { + "smithy.api#documentation": "

                          The Amazon Resource Name (ARN) of the OpsMetadata Object that was updated.

                          " + } + } + } + }, "com.amazonaws.ssm#UpdatePatchBaseline": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/workspaces.2015-04-08.json b/codegen/sdk-codegen/aws-models/workspaces.2015-04-08.json index 6d9e11cffe63d..8147047f96691 100644 --- a/codegen/sdk-codegen/aws-models/workspaces.2015-04-08.json +++ b/codegen/sdk-codegen/aws-models/workspaces.2015-04-08.json @@ -65,16 +65,22 @@ "com.amazonaws.workspaces#AccountModification": { "type": "structure", "members": { + "ModificationState": { + "target": "com.amazonaws.workspaces#DedicatedTenancyModificationStateEnum", + "traits": { + "smithy.api#documentation": "

                          The state of the modification to the configuration of BYOL.

                          " + } + }, "DedicatedTenancySupport": { "target": "com.amazonaws.workspaces#DedicatedTenancySupportResultEnum", "traits": { "smithy.api#documentation": "

                          The status of BYOL (whether BYOL is being enabled or disabled).

                          " } }, - "ErrorCode": { - "target": "com.amazonaws.workspaces#WorkspaceErrorCode", + "DedicatedTenancyManagementCidrRange": { + "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", "traits": { - "smithy.api#documentation": "

                          The error code that is returned if the configuration of BYOL cannot be modified.

                          " + "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, for the management network\n interface used for the account.

                          " } }, "StartTime": { @@ -83,22 +89,16 @@ "smithy.api#documentation": "

                          The timestamp when the modification of the BYOL configuration was started.

                          " } }, - "ErrorMessage": { - "target": "com.amazonaws.workspaces#Description", - "traits": { - "smithy.api#documentation": "

                          The text of the error message that is returned if the configuration of BYOL cannot be\n modified.

                          " - } - }, - "DedicatedTenancyManagementCidrRange": { - "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", + "ErrorCode": { + "target": "com.amazonaws.workspaces#WorkspaceErrorCode", "traits": { - "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, for the management network\n interface used for the account.

                          " + "smithy.api#documentation": "

                          The error code that is returned if the configuration of BYOL cannot be modified.

                          " } }, - "ModificationState": { - "target": "com.amazonaws.workspaces#DedicatedTenancyModificationStateEnum", + "ErrorMessage": { + "target": "com.amazonaws.workspaces#Description", "traits": { - "smithy.api#documentation": "

                          The state of the modification to the configuration of BYOL.

                          " + "smithy.api#documentation": "

                          The text of the error message that is returned if the configuration of BYOL cannot be\n modified.

                          " } } }, @@ -472,10 +472,10 @@ "com.amazonaws.workspaces#ConnectionAlias": { "type": "structure", "members": { - "Associations": { - "target": "com.amazonaws.workspaces#ConnectionAliasAssociationList", + "ConnectionString": { + "target": "com.amazonaws.workspaces#ConnectionString", "traits": { - "smithy.api#documentation": "

                          The association status of the connection alias.

                          " + "smithy.api#documentation": "

                          The connection string specified for the connection alias. The connection string must be in the form of \n a fully qualified domain name (FQDN), such as www.example.com.

                          " } }, "AliasId": { @@ -484,22 +484,22 @@ "smithy.api#documentation": "

                          The identifier of the connection alias.

                          " } }, - "OwnerAccountId": { - "target": "com.amazonaws.workspaces#AwsAccount", + "State": { + "target": "com.amazonaws.workspaces#ConnectionAliasState", "traits": { - "smithy.api#documentation": "

                          The identifier of the AWS account that owns the connection alias.

                          " + "smithy.api#documentation": "

                          The current state of the connection alias.

                          " } }, - "ConnectionString": { - "target": "com.amazonaws.workspaces#ConnectionString", + "OwnerAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", "traits": { - "smithy.api#documentation": "

                          The connection string specified for the connection alias. The connection string must be in the form of \n a fully qualified domain name (FQDN), such as www.example.com.

                          " + "smithy.api#documentation": "

                          The identifier of the AWS account that owns the connection alias.

                          " } }, - "State": { - "target": "com.amazonaws.workspaces#ConnectionAliasState", + "Associations": { + "target": "com.amazonaws.workspaces#ConnectionAliasAssociationList", "traits": { - "smithy.api#documentation": "

                          The current state of the connection alias.

                          " + "smithy.api#documentation": "

                          The association status of the connection alias.

                          " } } }, @@ -516,18 +516,18 @@ "smithy.api#documentation": "

                          The association status of the connection alias.

                          " } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#NonEmptyString", - "traits": { - "smithy.api#documentation": "

                          The identifier of the directory associated with a connection alias.

                          " - } - }, "AssociatedAccountId": { "target": "com.amazonaws.workspaces#AwsAccount", "traits": { "smithy.api#documentation": "

                          The identifier of the AWS account that associated the connection alias with a directory.

                          " } }, + "ResourceId": { + "target": "com.amazonaws.workspaces#NonEmptyString", + "traits": { + "smithy.api#documentation": "

                          The identifier of the directory associated with a connection alias.

                          " + } + }, "ConnectionIdentifier": { "target": "com.amazonaws.workspaces#ConnectionIdentifier", "traits": { @@ -709,19 +709,25 @@ } ], "traits": { - "smithy.api#documentation": "

                          Copies the specified image from the specified Region to the current Region. \n For more information about copying images, see \n \n Copy a Custom WorkSpaces Image.

                          \n \n \n

                          Before copying a shared image, be sure to verify that it has been shared from the\n correct AWS account. To determine if an image has been shared and to see the AWS \n account ID that owns an image, use the DescribeWorkSpaceImages and DescribeWorkspaceImagePermissions API operations.

                          \n
                          " + "smithy.api#documentation": "

                          Copies the specified image from the specified Region to the current Region. \n For more information about copying images, see \n \n Copy a Custom WorkSpaces Image.

                          \n \n \n

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          \n \n

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, \n contact AWS Support.

                          \n
                          \n \n \n

                          Before copying a shared image, be sure to verify that it has been shared from the\n correct AWS account. To determine if an image has been shared and to see the AWS \n account ID that owns an image, use the DescribeWorkSpaceImages and DescribeWorkspaceImagePermissions API operations.

                          \n
                          " } }, "com.amazonaws.workspaces#CopyWorkspaceImageRequest": { "type": "structure", "members": { - "SourceRegion": { - "target": "com.amazonaws.workspaces#Region", + "Name": { + "target": "com.amazonaws.workspaces#WorkspaceImageName", "traits": { - "smithy.api#documentation": "

                          The identifier of the source Region.

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

                          The name of the image.

                          ", "smithy.api#required": {} } }, + "Description": { + "target": "com.amazonaws.workspaces#WorkspaceImageDescription", + "traits": { + "smithy.api#documentation": "

                          A description of the image.

                          " + } + }, "SourceImageId": { "target": "com.amazonaws.workspaces#WorkspaceImageId", "traits": { @@ -729,10 +735,10 @@ "smithy.api#required": {} } }, - "Name": { - "target": "com.amazonaws.workspaces#WorkspaceImageName", + "SourceRegion": { + "target": "com.amazonaws.workspaces#Region", "traits": { - "smithy.api#documentation": "

                          The name of the image.

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

                          The identifier of the source Region.

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

                          The tags for the image.

                          " } - }, - "Description": { - "target": "com.amazonaws.workspaces#WorkspaceImageDescription", - "traits": { - "smithy.api#documentation": "

                          A description of the image.

                          " - } } } }, @@ -854,10 +854,11 @@ "com.amazonaws.workspaces#CreateIpGroupRequest": { "type": "structure", "members": { - "Tags": { - "target": "com.amazonaws.workspaces#TagList", + "GroupName": { + "target": "com.amazonaws.workspaces#IpGroupName", "traits": { - "smithy.api#documentation": "

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          " + "smithy.api#documentation": "

                          The name of the group.

                          ", + "smithy.api#required": {} } }, "GroupDesc": { @@ -872,11 +873,10 @@ "smithy.api#documentation": "

                          The rules to add to the group.

                          " } }, - "GroupName": { - "target": "com.amazonaws.workspaces#IpGroupName", + "Tags": { + "target": "com.amazonaws.workspaces#TagList", "traits": { - "smithy.api#documentation": "

                          The name of the group.

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

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          " } } } @@ -918,17 +918,17 @@ "com.amazonaws.workspaces#CreateTagsRequest": { "type": "structure", "members": { - "Tags": { - "target": "com.amazonaws.workspaces#TagList", + "ResourceId": { + "target": "com.amazonaws.workspaces#NonEmptyString", "traits": { - "smithy.api#documentation": "

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

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

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces,\n registered directories, images, custom bundles, IP access control groups, and connection aliases.

                          ", "smithy.api#required": {} } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#NonEmptyString", + "Tags": { + "target": "com.amazonaws.workspaces#TagList", "traits": { - "smithy.api#documentation": "

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces,\n registered directories, images, custom bundles, IP access control groups, and connection aliases.

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

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          ", "smithy.api#required": {} } } @@ -973,17 +973,17 @@ "com.amazonaws.workspaces#CreateWorkspacesResult": { "type": "structure", "members": { - "PendingRequests": { - "target": "com.amazonaws.workspaces#WorkspaceList", - "traits": { - "smithy.api#documentation": "

                          Information about the WorkSpaces that were created.

                          \n

                          Because this operation is asynchronous, the identifier returned is not immediately\n available for use with other operations. For example, if you call DescribeWorkspaces before the WorkSpace is created, the information returned\n can be incomplete.

                          " - } - }, "FailedRequests": { "target": "com.amazonaws.workspaces#FailedCreateWorkspaceRequests", "traits": { "smithy.api#documentation": "

                          Information about the WorkSpaces that could not be created.

                          " } + }, + "PendingRequests": { + "target": "com.amazonaws.workspaces#WorkspaceList", + "traits": { + "smithy.api#documentation": "

                          Information about the WorkSpaces that were created.

                          \n

                          Because this operation is asynchronous, the identifier returned is not immediately\n available for use with other operations. For example, if you call DescribeWorkspaces before the WorkSpace is created, the information returned\n can be incomplete.

                          " + } } } }, @@ -1050,18 +1050,6 @@ "com.amazonaws.workspaces#DefaultWorkspaceCreationProperties": { "type": "structure", "members": { - "UserEnabledAsLocalAdministrator": { - "target": "com.amazonaws.workspaces#BooleanObject", - "traits": { - "smithy.api#documentation": "

                          Specifies whether WorkSpace users are local administrators on their WorkSpaces.

                          " - } - }, - "DefaultOu": { - "target": "com.amazonaws.workspaces#DefaultOu", - "traits": { - "smithy.api#documentation": "

                          The organizational unit (OU) in the directory for the WorkSpace machine accounts.

                          " - } - }, "EnableWorkDocs": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { @@ -1074,12 +1062,24 @@ "smithy.api#documentation": "

                          Specifies whether to automatically assign an Elastic public IP address to WorkSpaces in this directory by default. \n If enabled, the Elastic public IP address allows outbound internet access from your WorkSpaces when you’re using an \n internet gateway in the Amazon VPC in which your WorkSpaces are located. If you're using a Network Address \n Translation (NAT) gateway for outbound internet access from your VPC, or if your WorkSpaces are in public \n subnets and you manually assign them Elastic IP addresses, you should disable this setting. This setting \n applies to new WorkSpaces that you launch or to existing WorkSpaces that you rebuild. For more information, \n see \n Configure a VPC for Amazon WorkSpaces.

                          " } }, + "DefaultOu": { + "target": "com.amazonaws.workspaces#DefaultOu", + "traits": { + "smithy.api#documentation": "

                          The organizational unit (OU) in the directory for the WorkSpace machine accounts.

                          " + } + }, "CustomSecurityGroupId": { "target": "com.amazonaws.workspaces#SecurityGroupId", "traits": { "smithy.api#documentation": "

                          The identifier of the default security group to apply to WorkSpaces when they are created. \n For more information, see \n \n Security Groups for Your WorkSpaces.

                          " } }, + "UserEnabledAsLocalAdministrator": { + "target": "com.amazonaws.workspaces#BooleanObject", + "traits": { + "smithy.api#documentation": "

                          Specifies whether WorkSpace users are local administrators on their WorkSpaces.

                          " + } + }, "EnableMaintenanceMode": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { @@ -1204,17 +1204,17 @@ "com.amazonaws.workspaces#DeleteTagsRequest": { "type": "structure", "members": { - "TagKeys": { - "target": "com.amazonaws.workspaces#TagKeyList", + "ResourceId": { + "target": "com.amazonaws.workspaces#NonEmptyString", "traits": { - "smithy.api#documentation": "

                          The tag keys.

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

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces,\n registered directories, images, custom bundles, IP access control groups, and connection aliases.

                          ", "smithy.api#required": {} } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#NonEmptyString", + "TagKeys": { + "target": "com.amazonaws.workspaces#TagKeyList", "traits": { - "smithy.api#documentation": "

                          The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces,\n registered directories, images, custom bundles, IP access control groups, and connection aliases.

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

                          The tag keys.

                          ", "smithy.api#required": {} } } @@ -1289,7 +1289,7 @@ } ], "traits": { - "smithy.api#documentation": "

                          Deregisters the specified directory. This operation is asynchronous \n and returns before the WorkSpace directory is deregistered. If any WorkSpaces are\n registered to this directory, you must remove them before you can deregister the directory.

                          " + "smithy.api#documentation": "

                          Deregisters the specified directory. This operation is asynchronous \n and returns before the WorkSpace directory is deregistered. If any WorkSpaces are\n registered to this directory, you must remove them before you can deregister the directory.

                          \n \n \n

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. \n If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 \n consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, \n and you will be charged for this directory as per the \n AWS Directory Services pricing terms.

                          \n \n

                          To delete empty directories, see \n \n Delete the Directory for Your WorkSpaces. If you delete your \n Simple AD or AD Connector directory, you can always create a new one when you want to start using \n WorkSpaces again.

                          \n
                          " } }, "com.amazonaws.workspaces#DeregisterWorkspaceDirectoryRequest": { @@ -1356,17 +1356,17 @@ "com.amazonaws.workspaces#DescribeAccountModificationsResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "AccountModifications": { "target": "com.amazonaws.workspaces#AccountModificationList", "traits": { "smithy.api#documentation": "

                          The list of modifications to the configuration of BYOL.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -1377,17 +1377,17 @@ "com.amazonaws.workspaces#DescribeAccountResult": { "type": "structure", "members": { - "DedicatedTenancyManagementCidrRange": { - "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", - "traits": { - "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, used for the management network\n interface.

                          \n

                          The management network interface is connected to a secure Amazon WorkSpaces management\n network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces\n clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

                          " - } - }, "DedicatedTenancySupport": { "target": "com.amazonaws.workspaces#DedicatedTenancySupportResultEnum", "traits": { "smithy.api#documentation": "

                          The status of BYOL (whether BYOL is enabled or disabled).

                          " } + }, + "DedicatedTenancyManagementCidrRange": { + "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", + "traits": { + "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, used for the management network\n interface.

                          \n

                          The management network interface is connected to a secure Amazon WorkSpaces management\n network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces\n clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

                          " + } } } }, @@ -1466,6 +1466,13 @@ "com.amazonaws.workspaces#DescribeConnectionAliasPermissionsRequest": { "type": "structure", "members": { + "AliasId": { + "target": "com.amazonaws.workspaces#ConnectionAliasId", + "traits": { + "smithy.api#documentation": "

                          The identifier of the connection alias.

                          ", + "smithy.api#required": {} + } + }, "NextToken": { "target": "com.amazonaws.workspaces#PaginationToken", "traits": { @@ -1477,25 +1484,12 @@ "traits": { "smithy.api#documentation": "

                          The maximum number of results to return.

                          " } - }, - "AliasId": { - "target": "com.amazonaws.workspaces#ConnectionAliasId", - "traits": { - "smithy.api#documentation": "

                          The identifier of the connection alias.

                          ", - "smithy.api#required": {} - } } } }, "com.amazonaws.workspaces#DescribeConnectionAliasPermissionsResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          " - } - }, "AliasId": { "target": "com.amazonaws.workspaces#ConnectionAliasId", "traits": { @@ -1507,6 +1501,12 @@ "traits": { "smithy.api#documentation": "

                          The permissions associated with a connection alias.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          " + } } } }, @@ -1536,10 +1536,10 @@ "com.amazonaws.workspaces#DescribeConnectionAliasesRequest": { "type": "structure", "members": { - "Limit": { - "target": "com.amazonaws.workspaces#Limit", + "AliasIds": { + "target": "com.amazonaws.workspaces#ConnectionAliasIdList", "traits": { - "smithy.api#documentation": "

                          The maximum number of connection aliases to return.

                          " + "smithy.api#documentation": "

                          The identifiers of the connection aliases to describe.

                          " } }, "ResourceId": { @@ -1548,16 +1548,16 @@ "smithy.api#documentation": "

                          The identifier of the directory associated with the connection alias.

                          " } }, - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", + "Limit": { + "target": "com.amazonaws.workspaces#Limit", "traits": { - "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated, provide this token to receive the \n next set of results.

                          " + "smithy.api#documentation": "

                          The maximum number of connection aliases to return.

                          " } }, - "AliasIds": { - "target": "com.amazonaws.workspaces#ConnectionAliasIdList", + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", "traits": { - "smithy.api#documentation": "

                          The identifiers of the connection aliases to describe.

                          " + "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated, provide this token to receive the \n next set of results.

                          " } } } @@ -1565,17 +1565,17 @@ "com.amazonaws.workspaces#DescribeConnectionAliasesResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          " - } - }, "ConnectionAliases": { "target": "com.amazonaws.workspaces#ConnectionAliasList", "traits": { "smithy.api#documentation": "

                          Information about the specified connection aliases.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are available.

                          " + } } } }, @@ -1602,18 +1602,18 @@ "com.amazonaws.workspaces#DescribeIpGroupsRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " - } - }, "GroupIds": { "target": "com.amazonaws.workspaces#IpGroupIdList", "traits": { "smithy.api#documentation": "

                          The identifiers of one or more IP access control groups.

                          " } }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " + } + }, "MaxResults": { "target": "com.amazonaws.workspaces#Limit", "traits": { @@ -1625,17 +1625,17 @@ "com.amazonaws.workspaces#DescribeIpGroupsResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "Result": { "target": "com.amazonaws.workspaces#WorkspacesIpGroupsList", "traits": { "smithy.api#documentation": "

                          Information about the IP access control groups.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -1704,12 +1704,6 @@ "com.amazonaws.workspaces#DescribeWorkspaceBundlesRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token for the next set of results. (You received this token from a previous call.)

                          " - } - }, "BundleIds": { "target": "com.amazonaws.workspaces#BundleIdList", "traits": { @@ -1721,6 +1715,12 @@ "traits": { "smithy.api#documentation": "

                          The owner of the bundles. You cannot combine this parameter with any other filter.

                          \n

                          Specify AMAZON to describe the bundles provided by AWS or null \n to describe the bundles that belong to your account.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token for the next set of results. (You received this token from a previous call.)

                          " + } } } }, @@ -1766,10 +1766,10 @@ "com.amazonaws.workspaces#DescribeWorkspaceDirectoriesRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", + "DirectoryIds": { + "target": "com.amazonaws.workspaces#DirectoryIdList", "traits": { - "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " + "smithy.api#documentation": "

                          The identifiers of the directories. If the value is null, all directories are\n retrieved.

                          " } }, "Limit": { @@ -1778,10 +1778,10 @@ "smithy.api#documentation": "

                          The maximum number of directories to return.

                          " } }, - "DirectoryIds": { - "target": "com.amazonaws.workspaces#DirectoryIdList", + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", "traits": { - "smithy.api#documentation": "

                          The identifiers of the directories. If the value is null, all directories are\n retrieved.

                          " + "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " } } } @@ -1789,17 +1789,17 @@ "com.amazonaws.workspaces#DescribeWorkspaceDirectoriesResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "Directories": { "target": "com.amazonaws.workspaces#DirectoryList", "traits": { "smithy.api#documentation": "

                          Information about the directories.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -1829,6 +1829,13 @@ "com.amazonaws.workspaces#DescribeWorkspaceImagePermissionsRequest": { "type": "structure", "members": { + "ImageId": { + "target": "com.amazonaws.workspaces#WorkspaceImageId", + "traits": { + "smithy.api#documentation": "

                          The identifier of the image.

                          ", + "smithy.api#required": {} + } + }, "NextToken": { "target": "com.amazonaws.workspaces#PaginationToken", "traits": { @@ -1840,13 +1847,6 @@ "traits": { "smithy.api#documentation": "

                          The maximum number of items to return.

                          " } - }, - "ImageId": { - "target": "com.amazonaws.workspaces#WorkspaceImageId", - "traits": { - "smithy.api#documentation": "

                          The identifier of the image.

                          ", - "smithy.api#required": {} - } } } }, @@ -1893,46 +1893,46 @@ "com.amazonaws.workspaces#DescribeWorkspaceImagesRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " - } - }, "ImageIds": { "target": "com.amazonaws.workspaces#WorkspaceImageIdList", "traits": { "smithy.api#documentation": "

                          The identifier of the image.

                          " } }, - "MaxResults": { - "target": "com.amazonaws.workspaces#Limit", - "traits": { - "smithy.api#documentation": "

                          The maximum number of items to return.

                          " - } - }, "ImageType": { "target": "com.amazonaws.workspaces#ImageType", "traits": { "smithy.api#documentation": "

                          The type (owned or shared) of the image.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " + } + }, + "MaxResults": { + "target": "com.amazonaws.workspaces#Limit", + "traits": { + "smithy.api#documentation": "

                          The maximum number of items to return.

                          " + } } } }, "com.amazonaws.workspaces#DescribeWorkspaceImagesResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "Images": { "target": "com.amazonaws.workspaces#WorkspaceImageList", "traits": { "smithy.api#documentation": "

                          Information about the images.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -1974,16 +1974,16 @@ "com.amazonaws.workspaces#DescribeWorkspaceSnapshotsResult": { "type": "structure", "members": { - "RestoreSnapshots": { + "RebuildSnapshots": { "target": "com.amazonaws.workspaces#SnapshotList", "traits": { - "smithy.api#documentation": "

                          Information about the snapshots that can be used to restore a WorkSpace. These snapshots\n include both the root volume and the user volume.

                          " + "smithy.api#documentation": "

                          Information about the snapshots that can be used to rebuild a WorkSpace. These snapshots include\n the user volume.

                          " } }, - "RebuildSnapshots": { + "RestoreSnapshots": { "target": "com.amazonaws.workspaces#SnapshotList", "traits": { - "smithy.api#documentation": "

                          Information about the snapshots that can be used to rebuild a WorkSpace. These snapshots include\n the user volume.

                          " + "smithy.api#documentation": "

                          Information about the snapshots that can be used to restore a WorkSpace. These snapshots\n include both the root volume and the user volume.

                          " } } } @@ -2034,44 +2034,50 @@ "com.amazonaws.workspaces#DescribeWorkspacesConnectionStatusRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " - } - }, "WorkspaceIds": { "target": "com.amazonaws.workspaces#WorkspaceIdList", "traits": { "smithy.api#documentation": "

                          The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          If you received a NextToken from a previous call that was paginated,\n provide this token to receive the next set of results.

                          " + } } } }, "com.amazonaws.workspaces#DescribeWorkspacesConnectionStatusResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "WorkspacesConnectionStatus": { "target": "com.amazonaws.workspaces#WorkspaceConnectionStatusList", "traits": { "smithy.api#documentation": "

                          Information about the connection status of the WorkSpace.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, "com.amazonaws.workspaces#DescribeWorkspacesRequest": { "type": "structure", "members": { - "BundleId": { - "target": "com.amazonaws.workspaces#BundleId", + "WorkspaceIds": { + "target": "com.amazonaws.workspaces#WorkspaceIdList", "traits": { - "smithy.api#documentation": "

                          The identifier of the bundle. All WorkSpaces that are created from this bundle are\n retrieved. You cannot combine this parameter with any other filter.

                          " + "smithy.api#documentation": "

                          The identifiers of the WorkSpaces. You cannot combine this parameter with any other\n filter.

                          \n

                          Because the CreateWorkspaces operation is asynchronous, the identifier\n it returns is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information is returned.

                          " + } + }, + "DirectoryId": { + "target": "com.amazonaws.workspaces#DirectoryId", + "traits": { + "smithy.api#documentation": "

                          The identifier of the directory. In addition, you can optionally specify a specific\n directory user (see UserName). You cannot combine this parameter with any\n other filter.

                          " } }, "UserName": { @@ -2080,10 +2086,10 @@ "smithy.api#documentation": "

                          The name of the directory user. You must specify this parameter with\n DirectoryId.

                          " } }, - "DirectoryId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "BundleId": { + "target": "com.amazonaws.workspaces#BundleId", "traits": { - "smithy.api#documentation": "

                          The identifier of the directory. In addition, you can optionally specify a specific\n directory user (see UserName). You cannot combine this parameter with any\n other filter.

                          " + "smithy.api#documentation": "

                          The identifier of the bundle. All WorkSpaces that are created from this bundle are\n retrieved. You cannot combine this parameter with any other filter.

                          " } }, "Limit": { @@ -2092,12 +2098,6 @@ "smithy.api#documentation": "

                          The maximum number of items to return.

                          " } }, - "WorkspaceIds": { - "target": "com.amazonaws.workspaces#WorkspaceIdList", - "traits": { - "smithy.api#documentation": "

                          The identifiers of the WorkSpaces. You cannot combine this parameter with any other\n filter.

                          \n

                          Because the CreateWorkspaces operation is asynchronous, the identifier\n it returns is not immediately available. If you immediately call DescribeWorkspaces with this identifier, no information is returned.

                          " - } - }, "NextToken": { "target": "com.amazonaws.workspaces#PaginationToken", "traits": { @@ -2109,17 +2109,17 @@ "com.amazonaws.workspaces#DescribeWorkspacesResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "Workspaces": { "target": "com.amazonaws.workspaces#WorkspaceList", "traits": { "smithy.api#documentation": "

                          Information about the WorkSpaces.

                          \n

                          Because CreateWorkspaces is an asynchronous operation, some of the\n returned information could be incomplete.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -2272,6 +2272,12 @@ "com.amazonaws.workspaces#FailedCreateWorkspaceRequest": { "type": "structure", "members": { + "WorkspaceRequest": { + "target": "com.amazonaws.workspaces#WorkspaceRequest", + "traits": { + "smithy.api#documentation": "

                          Information about the WorkSpace.

                          " + } + }, "ErrorCode": { "target": "com.amazonaws.workspaces#ErrorType", "traits": { @@ -2283,12 +2289,6 @@ "traits": { "smithy.api#documentation": "

                          The text of the error message that is returned if the WorkSpace cannot be\n created.

                          " } - }, - "WorkspaceRequest": { - "target": "com.amazonaws.workspaces#WorkspaceRequest", - "traits": { - "smithy.api#documentation": "

                          Information about the WorkSpace.

                          " - } } }, "traits": { @@ -2427,17 +2427,25 @@ "com.amazonaws.workspaces#ImportWorkspaceImageRequest": { "type": "structure", "members": { - "ImageName": { - "target": "com.amazonaws.workspaces#WorkspaceImageName", + "Ec2ImageId": { + "target": "com.amazonaws.workspaces#Ec2ImageId", "traits": { - "smithy.api#documentation": "

                          The name of the WorkSpace image.

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

                          The identifier of the EC2 image.

                          ", "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.workspaces#TagList", + "IngestionProcess": { + "target": "com.amazonaws.workspaces#WorkspaceImageIngestionProcess", "traits": { - "smithy.api#documentation": "

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          " + "smithy.api#documentation": "

                          The ingestion process to be used when importing the image, depending on which protocol \n you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces Streaming Protocol \n (WSP). To use WSP, specify a value that ends in _WSP. To use PCoIP, specify a value \n that does not end in _WSP.

                          \n \n

                          For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify \n BYOL_REGULAR or BYOL_REGULAR_WSP, depending on the protocol.

                          ", + "smithy.api#required": {} + } + }, + "ImageName": { + "target": "com.amazonaws.workspaces#WorkspaceImageName", + "traits": { + "smithy.api#documentation": "

                          The name of the WorkSpace image.

                          ", + "smithy.api#required": {} } }, "ImageDescription": { @@ -2447,11 +2455,10 @@ "smithy.api#required": {} } }, - "Ec2ImageId": { - "target": "com.amazonaws.workspaces#Ec2ImageId", + "Tags": { + "target": "com.amazonaws.workspaces#TagList", "traits": { - "smithy.api#documentation": "

                          The identifier of the EC2 image.

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

                          The tags. Each WorkSpaces resource can have a maximum of 50 tags.

                          " } }, "Applications": { @@ -2459,13 +2466,6 @@ "traits": { "smithy.api#documentation": "

                          If specified, the version of Microsoft Office to subscribe to. Valid only for Windows 10 \n BYOL images. For more information about subscribing to Office for BYOL images, see \n \n Bring Your Own Windows Desktop Licenses.

                          \n \n \n

                          Although this parameter is an array, only one item is allowed at this time.

                          \n
                          " } - }, - "IngestionProcess": { - "target": "com.amazonaws.workspaces#WorkspaceImageIngestionProcess", - "traits": { - "smithy.api#documentation": "

                          The ingestion process to be used when importing the image. For non-GPU-enabled bundles \n (bundles other than Graphics or GraphicsPro), specify BYOL_REGULAR.

                          ", - "smithy.api#required": {} - } } } }, @@ -2623,17 +2623,17 @@ "com.amazonaws.workspaces#ListAvailableManagementCidrRangesResult": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.workspaces#PaginationToken", - "traits": { - "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " - } - }, "ManagementCidrRanges": { "target": "com.amazonaws.workspaces#DedicatedTenancyCidrRangeList", "traits": { "smithy.api#documentation": "

                          The list of available IP address ranges, specified as IPv4 CIDR blocks.

                          " } + }, + "NextToken": { + "target": "com.amazonaws.workspaces#PaginationToken", + "traits": { + "smithy.api#documentation": "

                          The token to use to retrieve the next set of results, or null if no more results are\n available.

                          " + } } } }, @@ -2743,17 +2743,17 @@ "com.amazonaws.workspaces#ModificationState": { "type": "structure", "members": { - "State": { - "target": "com.amazonaws.workspaces#ModificationStateEnum", - "traits": { - "smithy.api#documentation": "

                          The modification state.

                          " - } - }, "Resource": { "target": "com.amazonaws.workspaces#ModificationResourceEnum", "traits": { "smithy.api#documentation": "

                          The resource.

                          " } + }, + "State": { + "target": "com.amazonaws.workspaces#ModificationStateEnum", + "traits": { + "smithy.api#documentation": "

                          The modification state.

                          " + } } }, "traits": { @@ -2813,17 +2813,17 @@ "com.amazonaws.workspaces#ModifyAccountRequest": { "type": "structure", "members": { - "DedicatedTenancyManagementCidrRange": { - "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", - "traits": { - "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, for the management network\n interface. Specify an IP address range that is compatible with your network and in CIDR\n notation (that is, specify the range as an IPv4 CIDR block). The CIDR block size must be\n /16 (for example, 203.0.113.25/16). It must also be specified as available by the\n ListAvailableManagementCidrRanges operation.

                          " - } - }, "DedicatedTenancySupport": { "target": "com.amazonaws.workspaces#DedicatedTenancySupportEnum", "traits": { "smithy.api#documentation": "

                          The status of BYOL.

                          " } + }, + "DedicatedTenancyManagementCidrRange": { + "target": "com.amazonaws.workspaces#DedicatedTenancyManagementCidrRange", + "traits": { + "smithy.api#documentation": "

                          The IP address range, specified as an IPv4 CIDR block, for the management network\n interface. Specify an IP address range that is compatible with your network and in CIDR\n notation (that is, specify the range as an IPv4 CIDR block). The CIDR block size must be\n /16 (for example, 203.0.113.25/16). It must also be specified as available by the\n ListAvailableManagementCidrRanges operation.

                          " + } } } }, @@ -2857,22 +2857,22 @@ "com.amazonaws.workspaces#ModifyClientPropertiesRequest": { "type": "structure", "members": { - "ClientProperties": { - "target": "com.amazonaws.workspaces#ClientProperties", - "traits": { - "smithy.api#documentation": "

                          Information about the Amazon WorkSpaces client.

                          ", - "smithy.api#required": {} - } - }, "ResourceId": { "target": "com.amazonaws.workspaces#NonEmptyString", "traits": { "smithy.api#documentation": "

                          The resource identifiers, in the form of directory IDs.

                          ", "smithy.api#required": {} } - } - } - }, + }, + "ClientProperties": { + "target": "com.amazonaws.workspaces#ClientProperties", + "traits": { + "smithy.api#documentation": "

                          Information about the Amazon WorkSpaces client.

                          ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.workspaces#ModifyClientPropertiesResult": { "type": "structure", "members": {} @@ -2903,17 +2903,17 @@ "com.amazonaws.workspaces#ModifySelfservicePermissionsRequest": { "type": "structure", "members": { - "SelfservicePermissions": { - "target": "com.amazonaws.workspaces#SelfservicePermissions", + "ResourceId": { + "target": "com.amazonaws.workspaces#DirectoryId", "traits": { - "smithy.api#documentation": "

                          The permissions to enable or disable self-service capabilities.

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

                          The identifier of the directory.

                          ", "smithy.api#required": {} } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "SelfservicePermissions": { + "target": "com.amazonaws.workspaces#SelfservicePermissions", "traits": { - "smithy.api#documentation": "

                          The identifier of the directory.

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

                          The permissions to enable or disable self-service capabilities.

                          ", "smithy.api#required": {} } } @@ -2946,17 +2946,17 @@ "com.amazonaws.workspaces#ModifyWorkspaceAccessPropertiesRequest": { "type": "structure", "members": { - "WorkspaceAccessProperties": { - "target": "com.amazonaws.workspaces#WorkspaceAccessProperties", + "ResourceId": { + "target": "com.amazonaws.workspaces#DirectoryId", "traits": { - "smithy.api#documentation": "

                          The device types and operating systems to enable or disable for access.

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

                          The identifier of the directory.

                          ", "smithy.api#required": {} } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "WorkspaceAccessProperties": { + "target": "com.amazonaws.workspaces#WorkspaceAccessProperties", "traits": { - "smithy.api#documentation": "

                          The identifier of the directory.

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

                          The device types and operating systems to enable or disable for access.

                          ", "smithy.api#required": {} } } @@ -2995,17 +2995,17 @@ "com.amazonaws.workspaces#ModifyWorkspaceCreationPropertiesRequest": { "type": "structure", "members": { - "WorkspaceCreationProperties": { - "target": "com.amazonaws.workspaces#WorkspaceCreationProperties", + "ResourceId": { + "target": "com.amazonaws.workspaces#DirectoryId", "traits": { - "smithy.api#documentation": "

                          The default properties for creating WorkSpaces.

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

                          The identifier of the directory.

                          ", "smithy.api#required": {} } }, - "ResourceId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "WorkspaceCreationProperties": { + "target": "com.amazonaws.workspaces#WorkspaceCreationProperties", "traits": { - "smithy.api#documentation": "

                          The identifier of the directory.

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

                          The default properties for creating WorkSpaces.

                          ", "smithy.api#required": {} } } @@ -3379,13 +3379,6 @@ "com.amazonaws.workspaces#RegisterWorkspaceDirectoryRequest": { "type": "structure", "members": { - "EnableWorkDocs": { - "target": "com.amazonaws.workspaces#BooleanObject", - "traits": { - "smithy.api#documentation": "

                          Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and \n WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set \n EnableWorkDocs to disabled, and try again.

                          ", - "smithy.api#required": {} - } - }, "DirectoryId": { "target": "com.amazonaws.workspaces#DirectoryId", "traits": { @@ -3393,22 +3386,23 @@ "smithy.api#required": {} } }, - "EnableSelfService": { - "target": "com.amazonaws.workspaces#BooleanObject", + "SubnetIds": { + "target": "com.amazonaws.workspaces#SubnetIds", "traits": { - "smithy.api#documentation": "

                          Indicates whether self-service capabilities are enabled or disabled.

                          " + "smithy.api#documentation": "

                          The identifiers of the subnets for your virtual private cloud (VPC). Make sure that the subnets \n are in supported Availability Zones. The subnets must also be in separate Availability Zones. If these \n conditions are not met, you will receive an OperationNotSupportedException error.

                          " } }, - "Tags": { - "target": "com.amazonaws.workspaces#TagList", + "EnableWorkDocs": { + "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          The tags associated with the directory.

                          " + "smithy.api#documentation": "

                          Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and \n WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set \n EnableWorkDocs to disabled, and try again.

                          ", + "smithy.api#required": {} } }, - "SubnetIds": { - "target": "com.amazonaws.workspaces#SubnetIds", + "EnableSelfService": { + "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          The identifiers of the subnets for your virtual private cloud (VPC). Make sure that the subnets \n are in supported Availability Zones. The subnets must also be in separate Availability Zones. If these \n conditions are not met, you will receive an OperationNotSupportedException error.

                          " + "smithy.api#documentation": "

                          Indicates whether self-service capabilities are enabled or disabled.

                          " } }, "Tenancy": { @@ -3416,6 +3410,12 @@ "traits": { "smithy.api#documentation": "

                          Indicates whether your WorkSpace directory is dedicated or shared. To use Bring Your Own\n License (BYOL) images, this value must be set to DEDICATED and your AWS account must be \n enabled for BYOL. If your account has not been enabled for BYOL, you will receive an \n InvalidParameterValuesException error. For more information about BYOL images, see\n Bring Your Own Windows Desktop Images.

                          " } + }, + "Tags": { + "target": "com.amazonaws.workspaces#TagList", + "traits": { + "smithy.api#documentation": "

                          The tags associated with the directory.

                          " + } } } }, @@ -3679,16 +3679,16 @@ "com.amazonaws.workspaces#SelfservicePermissions": { "type": "structure", "members": { - "IncreaseVolumeSize": { + "RestartWorkspace": { "target": "com.amazonaws.workspaces#ReconnectEnum", "traits": { - "smithy.api#documentation": "

                          Specifies whether users can increase the volume size of the drives on their\n WorkSpace.

                          " + "smithy.api#documentation": "

                          Specifies whether users can restart their WorkSpace.

                          " } }, - "RebuildWorkspace": { + "IncreaseVolumeSize": { "target": "com.amazonaws.workspaces#ReconnectEnum", "traits": { - "smithy.api#documentation": "

                          Specifies whether users can rebuild the operating system of a WorkSpace to its original\n state.

                          " + "smithy.api#documentation": "

                          Specifies whether users can increase the volume size of the drives on their\n WorkSpace.

                          " } }, "ChangeComputeType": { @@ -3703,10 +3703,10 @@ "smithy.api#documentation": "

                          Specifies whether users can switch the running mode of their WorkSpace.

                          " } }, - "RestartWorkspace": { + "RebuildWorkspace": { "target": "com.amazonaws.workspaces#ReconnectEnum", "traits": { - "smithy.api#documentation": "

                          Specifies whether users can restart their WorkSpace.

                          " + "smithy.api#documentation": "

                          Specifies whether users can rebuild the operating system of a WorkSpace to its original\n state.

                          " } } }, @@ -3995,7 +3995,7 @@ "target": "com.amazonaws.workspaces#TerminateWorkspacesResult" }, "traits": { - "smithy.api#documentation": "

                          Terminates the specified WorkSpaces.

                          \n \n \n

                          Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is\n destroyed. If you need to archive any user data, contact AWS Support before\n terminating the WorkSpace.

                          \n
                          \n\n

                          You can terminate a WorkSpace that is in any state except SUSPENDED.

                          \n

                          This operation is asynchronous and returns before the WorkSpaces have been completely\n terminated. After a WorkSpace is terminated, the TERMINATED state is returned \n only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely \n returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using \n \n DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has \n been successfully terminated.

                          " + "smithy.api#documentation": "

                          Terminates the specified WorkSpaces.

                          \n \n \n

                          Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is\n destroyed. If you need to archive any user data, contact AWS Support before\n terminating the WorkSpace.

                          \n
                          \n\n

                          You can terminate a WorkSpace that is in any state except SUSPENDED.

                          \n

                          This operation is asynchronous and returns before the WorkSpaces have been completely\n terminated. After a WorkSpace is terminated, the TERMINATED state is returned \n only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely \n returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using \n \n DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has \n been successfully terminated.

                          \n \n \n

                          Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. \n If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 \n consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, \n and you will be charged for this directory as per the \n AWS Directory Services pricing terms.

                          \n \n

                          To delete empty directories, see \n \n Delete the Directory for Your WorkSpaces. If you delete your \n Simple AD or AD Connector directory, you can always create a new one when you want to start using \n WorkSpaces again.

                          \n
                          " } }, "com.amazonaws.workspaces#TerminateWorkspacesRequest": { @@ -4138,17 +4138,17 @@ "com.amazonaws.workspaces#UpdateRulesOfIpGroupRequest": { "type": "structure", "members": { - "UserRules": { - "target": "com.amazonaws.workspaces#IpRuleList", + "GroupId": { + "target": "com.amazonaws.workspaces#IpGroupId", "traits": { - "smithy.api#documentation": "

                          One or more rules.

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

                          The identifier of the group.

                          ", "smithy.api#required": {} } }, - "GroupId": { - "target": "com.amazonaws.workspaces#IpGroupId", + "UserRules": { + "target": "com.amazonaws.workspaces#IpRuleList", "traits": { - "smithy.api#documentation": "

                          The identifier of the group.

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

                          One or more rules.

                          ", "smithy.api#required": {} } } @@ -4184,12 +4184,19 @@ } ], "traits": { - "smithy.api#documentation": "

                          Shares or unshares an image with one account by specifying whether that account has permission to copy \n the image. If the copy image permission is granted, the image is shared with that account. If the copy image \n permission is revoked, the image is unshared with the account. For more information about sharing images, see \n \n Share or Unshare a Custom WorkSpaces Image.

                          \n \n \n
                            \n
                          • \n

                            To delete an image that has been shared, you must unshare the image before you delete it.

                            \n
                          • \n
                          • \n

                            Sharing Bring Your Own License (BYOL) images across AWS accounts isn't supported at \n this time in the AWS GovCloud (US-West) Region. To share BYOL images across accounts in \n the AWS GovCloud (US-West) Region, contact AWS Support.

                            \n
                          • \n
                          \n
                          " + "smithy.api#documentation": "

                          Shares or unshares an image with one account in the same AWS Region by specifying whether that account has \n permission to copy the image. If the copy image permission is granted, the image is shared with that account. \n If the copy image permission is revoked, the image is unshared with the account.

                          \n \n

                          After an image has been shared, the recipient account can copy the image to other AWS Regions as needed.

                          \n \n \n

                          In the China (Ningxia) Region, you can copy images only within the same Region.

                          \n \n

                          In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, \n contact AWS Support.

                          \n
                          \n \n

                          For more information about sharing images, see \n \n Share or Unshare a Custom WorkSpaces Image.

                          \n \n \n
                            \n
                          • \n

                            To delete an image that has been shared, you must unshare the image before you delete it.

                            \n
                          • \n
                          • \n

                            Sharing Bring Your Own License (BYOL) images across AWS accounts isn't supported at \n this time in the AWS GovCloud (US-West) Region. To share BYOL images across accounts in \n the AWS GovCloud (US-West) Region, contact AWS Support.

                            \n
                          • \n
                          \n
                          " } }, "com.amazonaws.workspaces#UpdateWorkspaceImagePermissionRequest": { "type": "structure", "members": { + "ImageId": { + "target": "com.amazonaws.workspaces#WorkspaceImageId", + "traits": { + "smithy.api#documentation": "

                          The identifier of the image.

                          ", + "smithy.api#required": {} + } + }, "AllowCopyImage": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { @@ -4203,13 +4210,6 @@ "smithy.api#documentation": "

                          The identifier of the AWS account to share or unshare the image with.

                          \n \n \n

                          Before sharing the image, confirm that you are sharing to the correct AWS account ID.

                          \n
                          ", "smithy.api#required": {} } - }, - "ImageId": { - "target": "com.amazonaws.workspaces#WorkspaceImageId", - "traits": { - "smithy.api#documentation": "

                          The identifier of the image.

                          ", - "smithy.api#required": {} - } } } }, @@ -4252,52 +4252,40 @@ "com.amazonaws.workspaces#Workspace": { "type": "structure", "members": { - "ErrorMessage": { - "target": "com.amazonaws.workspaces#Description", - "traits": { - "smithy.api#documentation": "

                          The text of the error message that is returned if the WorkSpace cannot be\n created.

                          " - } - }, - "UserVolumeEncryptionEnabled": { - "target": "com.amazonaws.workspaces#BooleanObject", - "traits": { - "smithy.api#documentation": "

                          Indicates whether the data stored on the user volume is encrypted.

                          " - } - }, - "State": { - "target": "com.amazonaws.workspaces#WorkspaceState", + "WorkspaceId": { + "target": "com.amazonaws.workspaces#WorkspaceId", "traits": { - "smithy.api#documentation": "

                          The operational state of the WorkSpace.

                          \n \n \n

                          After a WorkSpace is terminated, the TERMINATED state is returned \n only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely \n returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using \n \n DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has \n been successfully terminated.

                          \n
                          " + "smithy.api#documentation": "

                          The identifier of the WorkSpace.

                          " } }, - "WorkspaceProperties": { - "target": "com.amazonaws.workspaces#WorkspaceProperties", + "DirectoryId": { + "target": "com.amazonaws.workspaces#DirectoryId", "traits": { - "smithy.api#documentation": "

                          The properties of the WorkSpace.

                          " + "smithy.api#documentation": "

                          The identifier of the AWS Directory Service directory for the WorkSpace.

                          " } }, - "BundleId": { - "target": "com.amazonaws.workspaces#BundleId", + "UserName": { + "target": "com.amazonaws.workspaces#UserName", "traits": { - "smithy.api#documentation": "

                          The identifier of the bundle used to create the WorkSpace.

                          " + "smithy.api#documentation": "

                          The user for the WorkSpace.

                          " } }, - "VolumeEncryptionKey": { - "target": "com.amazonaws.workspaces#VolumeEncryptionKey", + "IpAddress": { + "target": "com.amazonaws.workspaces#IpAddress", "traits": { - "smithy.api#documentation": "

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. \n Amazon WorkSpaces does not support asymmetric CMKs.

                          " + "smithy.api#documentation": "

                          The IP address of the WorkSpace.

                          " } }, - "DirectoryId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "State": { + "target": "com.amazonaws.workspaces#WorkspaceState", "traits": { - "smithy.api#documentation": "

                          The identifier of the AWS Directory Service directory for the WorkSpace.

                          " + "smithy.api#documentation": "

                          The operational state of the WorkSpace.

                          \n \n \n

                          After a WorkSpace is terminated, the TERMINATED state is returned \n only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely \n returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using \n \n DescribeWorkSpaces. If the WorkSpace ID isn't returned, then the WorkSpace has \n been successfully terminated.

                          \n
                          " } }, - "ModificationStates": { - "target": "com.amazonaws.workspaces#ModificationStateList", + "BundleId": { + "target": "com.amazonaws.workspaces#BundleId", "traits": { - "smithy.api#documentation": "

                          The modification states of the WorkSpace.

                          " + "smithy.api#documentation": "

                          The identifier of the bundle used to create the WorkSpace.

                          " } }, "SubnetId": { @@ -4306,16 +4294,16 @@ "smithy.api#documentation": "

                          The identifier of the subnet for the WorkSpace.

                          " } }, - "ErrorCode": { - "target": "com.amazonaws.workspaces#WorkspaceErrorCode", + "ErrorMessage": { + "target": "com.amazonaws.workspaces#Description", "traits": { - "smithy.api#documentation": "

                          The error code that is returned if the WorkSpace cannot be created.

                          " + "smithy.api#documentation": "

                          The text of the error message that is returned if the WorkSpace cannot be\n created.

                          " } }, - "IpAddress": { - "target": "com.amazonaws.workspaces#IpAddress", + "ErrorCode": { + "target": "com.amazonaws.workspaces#WorkspaceErrorCode", "traits": { - "smithy.api#documentation": "

                          The IP address of the WorkSpace.

                          " + "smithy.api#documentation": "

                          The error code that is returned if the WorkSpace cannot be created.

                          " } }, "ComputerName": { @@ -4324,10 +4312,16 @@ "smithy.api#documentation": "

                          The name of the WorkSpace, as seen by the operating system. The format of this name varies. \n For more information, see \n Launch a WorkSpace.

                          " } }, - "UserName": { - "target": "com.amazonaws.workspaces#UserName", + "VolumeEncryptionKey": { + "target": "com.amazonaws.workspaces#VolumeEncryptionKey", "traits": { - "smithy.api#documentation": "

                          The user for the WorkSpace.

                          " + "smithy.api#documentation": "

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. \n Amazon WorkSpaces does not support asymmetric CMKs.

                          " + } + }, + "UserVolumeEncryptionEnabled": { + "target": "com.amazonaws.workspaces#BooleanObject", + "traits": { + "smithy.api#documentation": "

                          Indicates whether the data stored on the user volume is encrypted.

                          " } }, "RootVolumeEncryptionEnabled": { @@ -4336,10 +4330,16 @@ "smithy.api#documentation": "

                          Indicates whether the data stored on the root volume is encrypted.

                          " } }, - "WorkspaceId": { - "target": "com.amazonaws.workspaces#WorkspaceId", + "WorkspaceProperties": { + "target": "com.amazonaws.workspaces#WorkspaceProperties", "traits": { - "smithy.api#documentation": "

                          The identifier of the WorkSpace.

                          " + "smithy.api#documentation": "

                          The properties of the WorkSpace.

                          " + } + }, + "ModificationStates": { + "target": "com.amazonaws.workspaces#ModificationStateList", + "traits": { + "smithy.api#documentation": "

                          The modification states of the WorkSpace.

                          " } } }, @@ -4356,16 +4356,16 @@ "smithy.api#documentation": "

                          Indicates whether users can use Windows clients to access their WorkSpaces. To restrict\n WorkSpaces access to trusted devices (also known as managed devices) with valid\n certificates, specify a value of TRUST. For more information, see Restrict\n WorkSpaces Access to Trusted Devices.

                          " } }, - "DeviceTypeZeroClient": { + "DeviceTypeOsx": { "target": "com.amazonaws.workspaces#AccessPropertyValue", "traits": { - "smithy.api#documentation": "

                          Indicates whether users can use zero client devices to access their WorkSpaces.

                          " + "smithy.api#documentation": "

                          Indicates whether users can use macOS clients to access their WorkSpaces. To restrict\n WorkSpaces access to trusted devices (also known as managed devices) with valid\n certificates, specify a value of TRUST. For more information, see Restrict\n WorkSpaces Access to Trusted Devices.

                          " } }, - "DeviceTypeChromeOs": { + "DeviceTypeWeb": { "target": "com.amazonaws.workspaces#AccessPropertyValue", "traits": { - "smithy.api#documentation": "

                          Indicates whether users can use Chromebooks to access their WorkSpaces.

                          " + "smithy.api#documentation": "

                          Indicates whether users can access their WorkSpaces through a web browser.

                          " } }, "DeviceTypeIos": { @@ -4380,16 +4380,16 @@ "smithy.api#documentation": "

                          Indicates whether users can use Android devices to access their WorkSpaces.

                          " } }, - "DeviceTypeWeb": { + "DeviceTypeChromeOs": { "target": "com.amazonaws.workspaces#AccessPropertyValue", "traits": { - "smithy.api#documentation": "

                          Indicates whether users can access their WorkSpaces through a web browser.

                          " + "smithy.api#documentation": "

                          Indicates whether users can use Chromebooks to access their WorkSpaces.

                          " } }, - "DeviceTypeOsx": { + "DeviceTypeZeroClient": { "target": "com.amazonaws.workspaces#AccessPropertyValue", "traits": { - "smithy.api#documentation": "

                          Indicates whether users can use macOS clients to access their WorkSpaces. To restrict\n WorkSpaces access to trusted devices (also known as managed devices) with valid\n certificates, specify a value of TRUST. For more information, see Restrict\n WorkSpaces Access to Trusted Devices.

                          " + "smithy.api#documentation": "

                          Indicates whether users can use zero client devices to access their WorkSpaces.

                          " } } }, @@ -4400,28 +4400,22 @@ "com.amazonaws.workspaces#WorkspaceBundle": { "type": "structure", "members": { - "RootStorage": { - "target": "com.amazonaws.workspaces#RootStorage", - "traits": { - "smithy.api#documentation": "

                          The size of the root volume.

                          " - } - }, - "Owner": { - "target": "com.amazonaws.workspaces#BundleOwner", + "BundleId": { + "target": "com.amazonaws.workspaces#BundleId", "traits": { - "smithy.api#documentation": "

                          The owner of the bundle. This is the account identifier of the owner, or\n AMAZON if the bundle is provided by AWS.

                          " + "smithy.api#documentation": "

                          The bundle identifier.

                          " } }, - "UserStorage": { - "target": "com.amazonaws.workspaces#UserStorage", + "Name": { + "target": "com.amazonaws.workspaces#NonEmptyString", "traits": { - "smithy.api#documentation": "

                          The size of the user storage.

                          " + "smithy.api#documentation": "

                          The name of the bundle.

                          " } }, - "ComputeType": { - "target": "com.amazonaws.workspaces#ComputeType", + "Owner": { + "target": "com.amazonaws.workspaces#BundleOwner", "traits": { - "smithy.api#documentation": "

                          The compute type. For more information, see Amazon WorkSpaces Bundles.

                          " + "smithy.api#documentation": "

                          The owner of the bundle. This is the account identifier of the owner, or\n AMAZON if the bundle is provided by AWS.

                          " } }, "Description": { @@ -4436,16 +4430,22 @@ "smithy.api#documentation": "

                          The image identifier of the bundle.

                          " } }, - "BundleId": { - "target": "com.amazonaws.workspaces#BundleId", + "RootStorage": { + "target": "com.amazonaws.workspaces#RootStorage", "traits": { - "smithy.api#documentation": "

                          The bundle identifier.

                          " + "smithy.api#documentation": "

                          The size of the root volume.

                          " } }, - "Name": { - "target": "com.amazonaws.workspaces#NonEmptyString", + "UserStorage": { + "target": "com.amazonaws.workspaces#UserStorage", "traits": { - "smithy.api#documentation": "

                          The name of the bundle.

                          " + "smithy.api#documentation": "

                          The size of the user storage.

                          " + } + }, + "ComputeType": { + "target": "com.amazonaws.workspaces#ComputeType", + "traits": { + "smithy.api#documentation": "

                          The compute type. For more information, see Amazon WorkSpaces Bundles.

                          " } }, "LastUpdatedTime": { @@ -4462,18 +4462,18 @@ "com.amazonaws.workspaces#WorkspaceConnectionStatus": { "type": "structure", "members": { - "ConnectionState": { - "target": "com.amazonaws.workspaces#ConnectionState", - "traits": { - "smithy.api#documentation": "

                          The connection state of the WorkSpace. The connection state is unknown if the WorkSpace\n is stopped.

                          " - } - }, "WorkspaceId": { "target": "com.amazonaws.workspaces#WorkspaceId", "traits": { "smithy.api#documentation": "

                          The identifier of the WorkSpace.

                          " } }, + "ConnectionState": { + "target": "com.amazonaws.workspaces#ConnectionState", + "traits": { + "smithy.api#documentation": "

                          The connection state of the WorkSpace. The connection state is unknown if the WorkSpace\n is stopped.

                          " + } + }, "ConnectionStateCheckTimestamp": { "target": "com.amazonaws.workspaces#Timestamp", "traits": { @@ -4500,16 +4500,22 @@ "com.amazonaws.workspaces#WorkspaceCreationProperties": { "type": "structure", "members": { - "UserEnabledAsLocalAdministrator": { + "EnableWorkDocs": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          Indicates whether users are local administrators of their WorkSpaces.

                          " + "smithy.api#documentation": "

                          Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.

                          \n \n \n

                          If WorkDocs is already enabled for a WorkSpaces directory and you disable it, new WorkSpaces launched in the \n directory will not have WorkDocs enabled. However, WorkDocs remains enabled for any existing WorkSpaces, unless \n you either disable users' access to WorkDocs or you delete the WorkDocs site. To disable users' access to WorkDocs, \n see Disabling Users in the \n Amazon WorkDocs Administration Guide. To delete a WorkDocs site, see \n Deleting a Site in the \n Amazon WorkDocs Administration Guide.

                          \n \n

                          If you enable WorkDocs on a directory that already has existing WorkSpaces, the existing WorkSpaces and any \n new WorkSpaces that are launched in the directory will have WorkDocs enabled.

                          \n
                          " } }, - "EnableMaintenanceMode": { + "EnableInternetAccess": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          Indicates whether maintenance mode is enabled for your WorkSpaces. For more information,\n see WorkSpace\n Maintenance.

                          " + "smithy.api#documentation": "

                          Indicates whether internet access is enabled for your WorkSpaces.

                          " + } + }, + "DefaultOu": { + "target": "com.amazonaws.workspaces#DefaultOu", + "traits": { + "smithy.api#documentation": "

                          The default organizational unit (OU) for your WorkSpaces directories. This string must be the full Lightweight \n Directory Access Protocol (LDAP) distinguished name for the target domain and OU. It must be in the form \n \"OU=value,DC=value,DC=value\", \n where value is any string of characters, and the number of domain components (DCs) is \n two or more. For example, OU=WorkSpaces_machines,DC=machines,DC=example,DC=com.

                          \n \n \n
                            \n
                          • \n

                            To avoid errors, certain characters in the distinguished name must be escaped. For more information, \n see \n Distinguished Names in the Microsoft documentation.

                            \n
                          • \n
                          • \n

                            The API doesn't validate whether the OU exists.

                            \n
                          • \n
                          \n
                          " } }, "CustomSecurityGroupId": { @@ -4518,22 +4524,16 @@ "smithy.api#documentation": "

                          The identifier of your custom security group.

                          " } }, - "EnableInternetAccess": { + "UserEnabledAsLocalAdministrator": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          Indicates whether internet access is enabled for your WorkSpaces.

                          " + "smithy.api#documentation": "

                          Indicates whether users are local administrators of their WorkSpaces.

                          " } }, - "EnableWorkDocs": { + "EnableMaintenanceMode": { "target": "com.amazonaws.workspaces#BooleanObject", "traits": { - "smithy.api#documentation": "

                          Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.

                          \n \n \n

                          If WorkDocs is already enabled for a WorkSpaces directory and you disable it, new WorkSpaces launched in the \n directory will not have WorkDocs enabled. However, WorkDocs remains enabled for any existing WorkSpaces, unless \n you either disable users' access to WorkDocs or you delete the WorkDocs site. To disable users' access to WorkDocs, \n see Disabling Users in the \n Amazon WorkDocs Administration Guide. To delete a WorkDocs site, see \n Deleting a Site in the \n Amazon WorkDocs Administration Guide.

                          \n \n

                          If you enable WorkDocs on a directory that already has existing WorkSpaces, the existing WorkSpaces and any \n new WorkSpaces that are launched in the directory will have WorkDocs enabled.

                          \n
                          " - } - }, - "DefaultOu": { - "target": "com.amazonaws.workspaces#DefaultOu", - "traits": { - "smithy.api#documentation": "

                          The default organizational unit (OU) for your WorkSpaces directories. This string must be the full Lightweight \n Directory Access Protocol (LDAP) distinguished name for the target domain and OU. It must be in the form \n \"OU=value,DC=value,DC=value\", \n where value is any string of characters, and the number of domain components (DCs) is \n two or more. For example, OU=WorkSpaces_machines,DC=machines,DC=example,DC=com.

                          \n \n \n
                            \n
                          • \n

                            To avoid errors, certain characters in the distinguished name must be escaped. For more information, \n see \n Distinguished Names in the Microsoft documentation.

                            \n
                          • \n
                          • \n

                            The API doesn't validate whether the OU exists.

                            \n
                          • \n
                          \n
                          " + "smithy.api#documentation": "

                          Indicates whether maintenance mode is enabled for your WorkSpaces. For more information,\n see WorkSpace\n Maintenance.

                          " } } }, @@ -4550,16 +4550,10 @@ "smithy.api#documentation": "

                          The directory identifier.

                          " } }, - "IamRoleId": { - "target": "com.amazonaws.workspaces#ARN", - "traits": { - "smithy.api#documentation": "

                          The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make\n calls to other services, such as Amazon EC2, on your behalf.

                          " - } - }, - "State": { - "target": "com.amazonaws.workspaces#WorkspaceDirectoryState", + "Alias": { + "target": "com.amazonaws.workspaces#Alias", "traits": { - "smithy.api#documentation": "

                          The state of the directory's registration with Amazon WorkSpaces. After a directory is \n deregistered, the DEREGISTERED state is returned very briefly before the directory \n metadata is cleaned up, so this state is rarely returned. To confirm that a directory is deregistered, \n check for the directory ID by using \n \n DescribeWorkspaceDirectories. If the directory ID isn't returned, then the directory has been \n successfully deregistered.

                          " + "smithy.api#documentation": "

                          The directory alias.

                          " } }, "DirectoryName": { @@ -4568,40 +4562,34 @@ "smithy.api#documentation": "

                          The name of the directory.

                          " } }, - "WorkspaceAccessProperties": { - "target": "com.amazonaws.workspaces#WorkspaceAccessProperties", - "traits": { - "smithy.api#documentation": "

                          The devices and operating systems that users can use to access WorkSpaces.

                          " - } - }, - "DnsIpAddresses": { - "target": "com.amazonaws.workspaces#DnsIpAddresses", - "traits": { - "smithy.api#documentation": "

                          The IP addresses of the DNS servers for the directory.

                          " - } - }, "RegistrationCode": { "target": "com.amazonaws.workspaces#RegistrationCode", "traits": { "smithy.api#documentation": "

                          The registration code for the directory. This is the code that users enter in their\n Amazon WorkSpaces client application to connect to the directory.

                          " } }, - "WorkspaceSecurityGroupId": { - "target": "com.amazonaws.workspaces#SecurityGroupId", + "SubnetIds": { + "target": "com.amazonaws.workspaces#SubnetIds", "traits": { - "smithy.api#documentation": "

                          The identifier of the security group that is assigned to new WorkSpaces.

                          " + "smithy.api#documentation": "

                          The identifiers of the subnets used with the directory.

                          " } }, - "Tenancy": { - "target": "com.amazonaws.workspaces#Tenancy", + "DnsIpAddresses": { + "target": "com.amazonaws.workspaces#DnsIpAddresses", "traits": { - "smithy.api#documentation": "

                          Specifies whether the directory is dedicated or shared. To use Bring Your Own License\n (BYOL), this value must be set to DEDICATED. For more information, see Bring\n Your Own Windows Desktop Images.

                          " + "smithy.api#documentation": "

                          The IP addresses of the DNS servers for the directory.

                          " } }, - "WorkspaceCreationProperties": { - "target": "com.amazonaws.workspaces#DefaultWorkspaceCreationProperties", + "CustomerUserName": { + "target": "com.amazonaws.workspaces#UserName", "traits": { - "smithy.api#documentation": "

                          The default creation properties for all WorkSpaces in the directory.

                          " + "smithy.api#documentation": "

                          The user name for the service account.

                          " + } + }, + "IamRoleId": { + "target": "com.amazonaws.workspaces#ARN", + "traits": { + "smithy.api#documentation": "

                          The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make\n calls to other services, such as Amazon EC2, on your behalf.

                          " } }, "DirectoryType": { @@ -4610,16 +4598,22 @@ "smithy.api#documentation": "

                          The directory type.

                          " } }, - "SubnetIds": { - "target": "com.amazonaws.workspaces#SubnetIds", + "WorkspaceSecurityGroupId": { + "target": "com.amazonaws.workspaces#SecurityGroupId", "traits": { - "smithy.api#documentation": "

                          The identifiers of the subnets used with the directory.

                          " + "smithy.api#documentation": "

                          The identifier of the security group that is assigned to new WorkSpaces.

                          " } }, - "CustomerUserName": { - "target": "com.amazonaws.workspaces#UserName", + "State": { + "target": "com.amazonaws.workspaces#WorkspaceDirectoryState", "traits": { - "smithy.api#documentation": "

                          The user name for the service account.

                          " + "smithy.api#documentation": "

                          The state of the directory's registration with Amazon WorkSpaces. After a directory is \n deregistered, the DEREGISTERED state is returned very briefly before the directory \n metadata is cleaned up, so this state is rarely returned. To confirm that a directory is deregistered, \n check for the directory ID by using \n \n DescribeWorkspaceDirectories. If the directory ID isn't returned, then the directory has been \n successfully deregistered.

                          " + } + }, + "WorkspaceCreationProperties": { + "target": "com.amazonaws.workspaces#DefaultWorkspaceCreationProperties", + "traits": { + "smithy.api#documentation": "

                          The default creation properties for all WorkSpaces in the directory.

                          " } }, "ipGroupIds": { @@ -4628,10 +4622,16 @@ "smithy.api#documentation": "

                          The identifiers of the IP access control groups associated with the directory.

                          " } }, - "Alias": { - "target": "com.amazonaws.workspaces#Alias", + "WorkspaceAccessProperties": { + "target": "com.amazonaws.workspaces#WorkspaceAccessProperties", "traits": { - "smithy.api#documentation": "

                          The directory alias.

                          " + "smithy.api#documentation": "

                          The devices and operating systems that users can use to access WorkSpaces.

                          " + } + }, + "Tenancy": { + "target": "com.amazonaws.workspaces#Tenancy", + "traits": { + "smithy.api#documentation": "

                          Specifies whether the directory is dedicated or shared. To use Bring Your Own License\n (BYOL), this value must be set to DEDICATED. For more information, see Bring\n Your Own Windows Desktop Images.

                          " } }, "SelfservicePermissions": { @@ -4711,22 +4711,16 @@ "com.amazonaws.workspaces#WorkspaceImage": { "type": "structure", "members": { - "OperatingSystem": { - "target": "com.amazonaws.workspaces#OperatingSystem", - "traits": { - "smithy.api#documentation": "

                          The operating system that the image is running.

                          " - } - }, - "Created": { - "target": "com.amazonaws.workspaces#Timestamp", + "ImageId": { + "target": "com.amazonaws.workspaces#WorkspaceImageId", "traits": { - "smithy.api#documentation": "

                          The date when the image was created. If the image has been shared, the AWS account \n that the image has been shared with sees the original creation date of the image.

                          " + "smithy.api#documentation": "

                          The identifier of the image.

                          " } }, - "OwnerAccountId": { - "target": "com.amazonaws.workspaces#AwsAccount", + "Name": { + "target": "com.amazonaws.workspaces#WorkspaceImageName", "traits": { - "smithy.api#documentation": "

                          The identifier of the AWS account that owns the image.

                          " + "smithy.api#documentation": "

                          The name of the image.

                          " } }, "Description": { @@ -4735,16 +4729,10 @@ "smithy.api#documentation": "

                          The description of the image.

                          " } }, - "RequiredTenancy": { - "target": "com.amazonaws.workspaces#WorkspaceImageRequiredTenancy", - "traits": { - "smithy.api#documentation": "

                          Specifies whether the image is running on dedicated hardware. When Bring Your Own\n License (BYOL) is enabled, this value is set to DEDICATED. For more\n information, see Bring Your Own Windows\n Desktop Images.

                          " - } - }, - "Name": { - "target": "com.amazonaws.workspaces#WorkspaceImageName", + "OperatingSystem": { + "target": "com.amazonaws.workspaces#OperatingSystem", "traits": { - "smithy.api#documentation": "

                          The name of the image.

                          " + "smithy.api#documentation": "

                          The operating system that the image is running.

                          " } }, "State": { @@ -4753,10 +4741,10 @@ "smithy.api#documentation": "

                          The status of the image.

                          " } }, - "ErrorMessage": { - "target": "com.amazonaws.workspaces#Description", + "RequiredTenancy": { + "target": "com.amazonaws.workspaces#WorkspaceImageRequiredTenancy", "traits": { - "smithy.api#documentation": "

                          The text of the error message that is returned for the image.

                          " + "smithy.api#documentation": "

                          Specifies whether the image is running on dedicated hardware. When Bring Your Own\n License (BYOL) is enabled, this value is set to DEDICATED. For more\n information, see Bring Your Own Windows\n Desktop Images.

                          " } }, "ErrorCode": { @@ -4765,10 +4753,22 @@ "smithy.api#documentation": "

                          The error code that is returned for the image.

                          " } }, - "ImageId": { - "target": "com.amazonaws.workspaces#WorkspaceImageId", + "ErrorMessage": { + "target": "com.amazonaws.workspaces#Description", "traits": { - "smithy.api#documentation": "

                          The identifier of the image.

                          " + "smithy.api#documentation": "

                          The text of the error message that is returned for the image.

                          " + } + }, + "Created": { + "target": "com.amazonaws.workspaces#Timestamp", + "traits": { + "smithy.api#documentation": "

                          The date when the image was created. If the image has been shared, the AWS account \n that the image has been shared with sees the original creation date of the image.

                          " + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.workspaces#AwsAccount", + "traits": { + "smithy.api#documentation": "

                          The identifier of the AWS account that owns the image.

                          " } } }, @@ -4822,6 +4822,10 @@ { "value": "BYOL_GRAPHICSPRO", "name": "BYOL_GRAPHICSPRO" + }, + { + "value": "BYOL_REGULAR_WSP", + "name": "BYOL_REGULAR_WSP" } ] } @@ -4885,16 +4889,22 @@ "com.amazonaws.workspaces#WorkspaceProperties": { "type": "structure", "members": { + "RunningMode": { + "target": "com.amazonaws.workspaces#RunningMode", + "traits": { + "smithy.api#documentation": "

                          The running mode. For more information, see Manage the WorkSpace Running\n Mode.

                          " + } + }, "RunningModeAutoStopTimeoutInMinutes": { "target": "com.amazonaws.workspaces#RunningModeAutoStopTimeoutInMinutes", "traits": { "smithy.api#documentation": "

                          The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals.

                          " } }, - "ComputeTypeName": { - "target": "com.amazonaws.workspaces#Compute", + "RootVolumeSizeGib": { + "target": "com.amazonaws.workspaces#RootVolumeSizeGib", "traits": { - "smithy.api#documentation": "

                          The compute type. For more information, see Amazon WorkSpaces\n Bundles.

                          " + "smithy.api#documentation": "

                          The size of the root volume. For important information about how to modify the size of the root and user volumes, see \n Modify a WorkSpace.

                          " } }, "UserVolumeSizeGib": { @@ -4903,16 +4913,10 @@ "smithy.api#documentation": "

                          The size of the user storage. For important information about how to modify the size of the root and user volumes, see \n Modify a WorkSpace.

                          " } }, - "RootVolumeSizeGib": { - "target": "com.amazonaws.workspaces#RootVolumeSizeGib", - "traits": { - "smithy.api#documentation": "

                          The size of the root volume. For important information about how to modify the size of the root and user volumes, see \n Modify a WorkSpace.

                          " - } - }, - "RunningMode": { - "target": "com.amazonaws.workspaces#RunningMode", + "ComputeTypeName": { + "target": "com.amazonaws.workspaces#Compute", "traits": { - "smithy.api#documentation": "

                          The running mode. For more information, see Manage the WorkSpace Running\n Mode.

                          " + "smithy.api#documentation": "

                          The compute type. For more information, see Amazon WorkSpaces\n Bundles.

                          " } } }, @@ -4923,16 +4927,18 @@ "com.amazonaws.workspaces#WorkspaceRequest": { "type": "structure", "members": { - "WorkspaceProperties": { - "target": "com.amazonaws.workspaces#WorkspaceProperties", + "DirectoryId": { + "target": "com.amazonaws.workspaces#DirectoryId", "traits": { - "smithy.api#documentation": "

                          The WorkSpace properties.

                          " + "smithy.api#documentation": "

                          The identifier of the AWS Directory Service directory for the WorkSpace. You can use\n DescribeWorkspaceDirectories to list the available directories.

                          ", + "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.workspaces#TagList", + "UserName": { + "target": "com.amazonaws.workspaces#UserName", "traits": { - "smithy.api#documentation": "

                          The tags for the WorkSpace.

                          " + "smithy.api#documentation": "

                          The user name of the user for the WorkSpace. This user name must exist in the AWS\n Directory Service directory for the WorkSpace.

                          ", + "smithy.api#required": {} } }, "BundleId": { @@ -4942,11 +4948,10 @@ "smithy.api#required": {} } }, - "UserName": { - "target": "com.amazonaws.workspaces#UserName", + "VolumeEncryptionKey": { + "target": "com.amazonaws.workspaces#VolumeEncryptionKey", "traits": { - "smithy.api#documentation": "

                          The user name of the user for the WorkSpace. This user name must exist in the AWS\n Directory Service directory for the WorkSpace.

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

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. \n Amazon WorkSpaces does not support asymmetric CMKs.

                          " } }, "UserVolumeEncryptionEnabled": { @@ -4961,17 +4966,16 @@ "smithy.api#documentation": "

                          Indicates whether the data stored on the root volume is encrypted.

                          " } }, - "DirectoryId": { - "target": "com.amazonaws.workspaces#DirectoryId", + "WorkspaceProperties": { + "target": "com.amazonaws.workspaces#WorkspaceProperties", "traits": { - "smithy.api#documentation": "

                          The identifier of the AWS Directory Service directory for the WorkSpace. You can use\n DescribeWorkspaceDirectories to list the available directories.

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

                          The WorkSpace properties.

                          " } }, - "VolumeEncryptionKey": { - "target": "com.amazonaws.workspaces#VolumeEncryptionKey", + "Tags": { + "target": "com.amazonaws.workspaces#TagList", "traits": { - "smithy.api#documentation": "

                          The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. \n Amazon WorkSpaces does not support asymmetric CMKs.

                          " + "smithy.api#documentation": "

                          The tags for the WorkSpace.

                          " } } }, @@ -5081,10 +5085,10 @@ "com.amazonaws.workspaces#WorkspacesIpGroup": { "type": "structure", "members": { - "userRules": { - "target": "com.amazonaws.workspaces#IpRuleList", + "groupId": { + "target": "com.amazonaws.workspaces#IpGroupId", "traits": { - "smithy.api#documentation": "

                          The rules.

                          " + "smithy.api#documentation": "

                          The identifier of the group.

                          " } }, "groupName": { @@ -5099,10 +5103,10 @@ "smithy.api#documentation": "

                          The description of the group.

                          " } }, - "groupId": { - "target": "com.amazonaws.workspaces#IpGroupId", + "userRules": { + "target": "com.amazonaws.workspaces#IpRuleList", "traits": { - "smithy.api#documentation": "

                          The identifier of the group.

                          " + "smithy.api#documentation": "

                          The rules.

                          " } } },